feat: add AI city forecast terminal and integration components

This commit is contained in:
2569718930@qq.com
2026-04-26 10:43:14 +08:00
parent 312b366a50
commit e374ad4bf0
6 changed files with 155 additions and 34 deletions
+3
View File
@@ -64,6 +64,7 @@ export type AssistantChatResponse = {
const CACHE_KEY = "polyWeather_v1";
const CACHE_TTL_MS = 30 * 60 * 1000;
const SCAN_TERMINAL_CLIENT_TIMEOUT_MS = 35_000;
const CITY_DETAIL_CLIENT_TIMEOUT_MS = 35_000;
const pendingCityDetailRequests = new Map<string, Promise<CityDetail>>();
const pendingHistoryRequests = new Map<string, Promise<HistoryPayload>>();
const pendingCitySummaryRequests = new Map<string, Promise<CitySummary>>();
@@ -320,6 +321,7 @@ export const dashboardClient = {
const request = fetchJson<CityDetail>(
`/api/city/${normalizeCityName(cityName)}?force_refresh=false&depth=${depth}`,
{ timeoutMs: CITY_DETAIL_CLIENT_TIMEOUT_MS },
).finally(() => {
pendingCityDetailRequests.delete(requestKey);
});
@@ -335,6 +337,7 @@ export const dashboardClient = {
});
return fetchJson<CityDetail>(
`/api/city/${normalizeCityName(cityName)}?${params.toString()}`,
{ timeoutMs: CITY_DETAIL_CLIENT_TIMEOUT_MS },
);
},