feat: Implement core data models, backend services for weather and market data, and initial dashboard components.

This commit is contained in:
2569718930@qq.com
2026-03-17 13:21:14 +08:00
parent 609fc8914a
commit 54544e40b9
11 changed files with 574 additions and 54 deletions
+54
View File
@@ -63,6 +63,7 @@ CITY_REGISTRY = {
"lat": 22.3080,
"lon": 113.9185,
"icao": "VHHH",
"settlement_source": "hko",
"tz_offset": 28800,
"use_fahrenheit": False,
"is_major": True,
@@ -72,6 +73,21 @@ CITY_REGISTRY = {
"distance_km": 31.0,
"warning": "海风与地形共同作用,午后对流触发后温度回落可能偏快。",
},
"taipei": {
"name": "Taipei",
"lat": 25.0694,
"lon": 121.5526,
"icao": "RCSS",
"settlement_source": "cwa",
"tz_offset": 28800,
"use_fahrenheit": False,
"is_major": True,
"risk_level": "low",
"risk_emoji": "🟢",
"airport_name": "台北松山机场",
"distance_km": 4.0,
"warning": "盆地地形叠加都市热岛,夏季午后对流前后温度波动较快。",
},
"shanghai": {
"name": "Shanghai",
"lat": 31.1434,
@@ -296,6 +312,36 @@ CITY_REGISTRY = {
"distance_km": 28.5,
"warning": "距离非常远,空旷机场夜间降温快,冬季易生大雾压制气温。",
},
"milan": {
"name": "Milan",
"lat": 45.6306,
"lon": 8.7281,
"icao": "LIMC",
"settlement_source": "metar",
"tz_offset": 3600,
"use_fahrenheit": False,
"is_major": True,
"risk_level": "medium",
"risk_emoji": "🟡",
"airport_name": "马尔彭萨机场",
"distance_km": 49.0,
"warning": "机场距市区较远,午后峰值与夜间降温节奏需优先看机场站。",
},
"warsaw": {
"name": "Warsaw",
"lat": 52.1657,
"lon": 20.9671,
"icao": "EPWA",
"settlement_source": "metar",
"tz_offset": 3600,
"use_fahrenheit": False,
"is_major": True,
"risk_level": "medium",
"risk_emoji": "🟡",
"airport_name": "肖邦机场",
"distance_km": 10.0,
"warning": "平原地形下辐射冷却显著,清晨与夜间温度回落可能偏快。",
},
}
ALIASES = {
@@ -305,11 +351,13 @@ ALIASES = {
"dal": "dallas", "mia": "miami", "atl": "atlanta",
"sea": "seattle", "tor": "toronto", "sel": "seoul",
"seo": "seoul", "hkg": "hong kong", "hk": "hong kong",
"tpe": "taipei", "tp": "taipei", "taipei": "taipei",
"sha": "shanghai", "sh": "shanghai", "sin": "singapore",
"sg": "singapore", "tok": "tokyo", "tyo": "tokyo",
"tlv": "tel aviv", "telaviv": "tel aviv",
"ba": "buenos aires", "wel": "wellington",
"luc": "lucknow", "sp": "sao paulo", "mun": "munich",
"mil": "milan", "mxp": "milan", "waw": "warsaw", "war": "warsaw",
# Chinese names
"安卡拉": "ankara",
@@ -324,6 +372,8 @@ ALIASES = {
"多伦多": "toronto",
"首尔": "seoul",
"香港": "hong kong",
"台北": "taipei",
"臺北": "taipei",
"上海": "shanghai",
"新加坡": "singapore",
"东京": "tokyo",
@@ -334,4 +384,8 @@ ALIASES = {
"勒克瑙": "lucknow",
"圣保罗": "sao paulo",
"慕尼黑": "munich",
"米兰": "milan",
"米蘭": "milan",
"华沙": "warsaw",
"華沙": "warsaw",
}