From 30a6ff79861cfcd3bd8f291723148396120a78ba Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Wed, 6 May 2026 18:59:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20v1.5.6=20=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E5=85=AC=E5=91=8A=EF=BC=8C3=20=E5=A4=A9=E5=90=8E?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E6=B6=88=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 公告展示决策终端 hero 重设计、DEB 统一、亮色补全等变更摘要。 localStorage 记录首次访问时间,超过 3 天自动隐藏。 补全 scan-upgrade-announcement 暗色主题基础样式。 Tested: tsc 全过 --- .../dashboard/ScanTerminalBoard.module.css | 56 +++++++++++++++++++ .../dashboard/ScanTerminalDashboard.tsx | 37 ++++++++++++ 2 files changed, 93 insertions(+) diff --git a/frontend/components/dashboard/ScanTerminalBoard.module.css b/frontend/components/dashboard/ScanTerminalBoard.module.css index 89032ffc..6f987fbd 100644 --- a/frontend/components/dashboard/ScanTerminalBoard.module.css +++ b/frontend/components/dashboard/ScanTerminalBoard.module.css @@ -29,6 +29,62 @@ background: rgba(8, 17, 30, 0.8); } +.root :global(.scan-upgrade-announcement) { + display: grid; + grid-template-columns: 1fr; + gap: 12px; + padding: 16px 20px; + border: 1px solid rgba(77, 163, 255, 0.18); + border-radius: 16px; + background: + radial-gradient(circle at top left, rgba(77, 163, 255, 0.08), transparent 36%), + rgba(11, 18, 32, 0.66); + backdrop-filter: blur(8px); +} + +.root :global(.scan-upgrade-announcement-copy) { + display: grid; + gap: 6px; +} + +.root :global(.scan-upgrade-announcement-copy span) { + color: #4da3ff; + font-size: 11px; + font-weight: 800; + text-transform: uppercase; + letter-spacing: 0.04em; +} + +.root :global(.scan-upgrade-announcement-copy strong) { + color: #e6edf3; + font-size: 18px; + font-weight: 900; +} + +.root :global(.scan-upgrade-announcement-copy p) { + color: #9fb2c7; + font-size: 13px; + line-height: 1.55; +} + +.root :global(.scan-upgrade-announcement ul) { + display: flex; + flex-wrap: wrap; + gap: 8px; + padding: 0; + list-style: none; +} + +.root :global(.scan-upgrade-announcement li) { + padding: 5px 10px; + border: 1px solid rgba(77, 163, 255, 0.14); + border-radius: 999px; + background: rgba(77, 163, 255, 0.08); + color: #cfe5ff; + font-size: 12px; + font-weight: 800; +} + .root :global(.scan-terminal.focus-view-active .scan-upgrade-announcement), .root :global(.scan-terminal.focus-view-active .scan-kpi-bar) { display: none; diff --git a/frontend/components/dashboard/ScanTerminalDashboard.tsx b/frontend/components/dashboard/ScanTerminalDashboard.tsx index 10228b34..162b2283 100644 --- a/frontend/components/dashboard/ScanTerminalDashboard.tsx +++ b/frontend/components/dashboard/ScanTerminalDashboard.tsx @@ -115,6 +115,20 @@ function ScanTerminalScreen() { const [activeView, setActiveView] = useState("map"); const [mapSelectedCityName, setMapSelectedCityName] = useState(null); const [showScanPaywall, setShowScanPaywall] = useState(false); + const [showAnnouncement, setShowAnnouncement] = useState(false); + + useEffect(() => { + const key = "polyweather_v156_announcement_seen_at"; + const seen = localStorage.getItem(key); + const now = Date.now(); + if (!seen) { + localStorage.setItem(key, String(now)); + setShowAnnouncement(true); + return; + } + const elapsed = now - Number(seen); + setShowAnnouncement(elapsed < 3 * 24 * 60 * 60 * 1000); + }, []); const userLocalTime = useUserLocalClock(); const { setThemeMode, themeMode } = useScanTerminalTheme(); const lastMapSelectedCityRef = useRef(""); @@ -508,6 +522,29 @@ function ScanTerminalScreen() { locale={locale} /> + {showAnnouncement ? ( +
+
+ {isEn ? "v1.5.6 upgrade" : "v1.5.6 升级公告"} + + {isEn ? "Scan terminal is upgraded to v1.5.6" : "决策终端已升级到 v1.5.6"} + +

+ {isEn + ? "City decision cards have been redesigned with a compact hero layout and consistent DEB data source. Sticky headers are removed for smoother scrolling." + : "城市决策卡 hero 布局重新设计,三指标并列对比更直观;DEB 数据源统一不再出现不一致;去除顶部固定效果滚动更流畅。"} +

+
+
    +
  • {isEn ? "Redesigned decision card hero" : "重设计城市决策卡 hero 布局"}
  • +
  • {isEn ? "Unified DEB data source" : "统一 DEB 数据源"}
  • +
  • {isEn ? "Light theme coverage" : "亮色主题补全覆盖"}
  • +
  • {isEn ? "HKO observatory AI read" : "香港天文台观测 AI 解读"}
  • +
  • {isEn ? "Smoother scrolling experience" : "滚动体验优化"}
  • +
+
+ ) : null} +