feat(frontend): add weather icons and redesign calendar header

Backend changes:
- Add LOCATION configuration option to Settings
- Add /api/system/config endpoint to expose public config
- Implement location priority: config > geolocation > default

Frontend changes:
- Install and integrate weather-icons npm package (Erik Flowers)
- Redesign calendar header with date/time on left, weather/location on right
- Display weather icon using CSS classes instead of SVG components
- Fetch location from backend API on component mount
- Use configured location name (from .env) instead of geocoded result

Layout:
- Left: month/year + current time
- Right: city name + weather description + weather icon
This commit is contained in:
2026-04-06 22:18:44 +08:00
parent ff042cd932
commit 712d9e1652
9 changed files with 133 additions and 22 deletions

View File

@@ -18,7 +18,8 @@
"pinia": "^3.0.4",
"three": "^0.180.0",
"vue": "^3.5.30",
"vue-router": "^4.6.4"
"vue-router": "^4.6.4",
"weather-icons": "^1.3.2"
},
"devDependencies": {
"@types/node": "^25.5.0",
@@ -3853,6 +3854,12 @@
"node": ">=18"
}
},
"node_modules/weather-icons": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/weather-icons/-/weather-icons-1.3.2.tgz",
"integrity": "sha512-EW/i0gFzlPpyBK29iXtruDw1v9txI4Gjp7q6ikbFTsL6O9gt3yH64/fuMf7wxpj92v5I08JhajBra/wMn715Eg==",
"license": "MIT"
},
"node_modules/webidl-conversions": {
"version": "8.0.1",
"resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-8.0.1.tgz",