From d2472fa0c22c5696253f5659612709d6f2fa1423 Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Thu, 14 May 2026 01:13:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=82=E5=9C=BA=E7=9B=91=E6=8E=A7=201=20?= =?UTF-8?q?=E5=88=86=E9=92=9F=E5=BC=BA=E5=88=B6=E5=88=B7=E6=96=B0=2011=20?= =?UTF-8?q?=E5=9F=8E=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dashboard/monitoring/MonitorPanel.tsx | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/frontend/components/dashboard/monitoring/MonitorPanel.tsx b/frontend/components/dashboard/monitoring/MonitorPanel.tsx index 4a0c3bba..15e4d6d5 100644 --- a/frontend/components/dashboard/monitoring/MonitorPanel.tsx +++ b/frontend/components/dashboard/monitoring/MonitorPanel.tsx @@ -44,22 +44,21 @@ export default function MonitorPanel() { return localStorage.getItem("monitor_notify") !== "off"; }); - // Trigger loading for monitoring cities not yet in store + // 1 min force-refresh all 11 monitoring cities useEffect(() => { - const missing = MONITOR_KEYS.filter((k) => !details[k]); - if (missing.length === 0) return; let cancelled = false; - async function load() { - for (const k of missing) { + async function refreshAll() { + for (const k of MONITOR_KEYS) { if (cancelled) break; try { - await store.ensureCityDetail(k, false, "panel"); + await store.ensureCityDetail(k, true, "panel"); } catch {} } } - load(); - return () => { cancelled = true; }; - }, [store.ensureCityDetail, Object.keys(details).length > 0]); + refreshAll(); + const t = setInterval(refreshAll, 60_000); + return () => { cancelled = true; clearInterval(t); }; + }, [store.ensureCityDetail]); const cities: MonitorCity[] = useMemo(() => { return MONITOR_KEYS.map((k) => ({ key: k, detail: details[k] }));