Make dashboard decision cards feel product-ready

Users needed reassurance that unavailable quotes and long AI evidence are normal states, not broken systems. This adds a v1.5.5 upgrade announcement, softens market-unavailable copy, surfaces a one-line recommendation reason, and makes mobile cards prioritize observed temperature, expected high, peak timing, AI expansion, and a separate market line.

Constraint: Keep existing dashboard data contracts and avoid backend schema changes.
Rejected: Hide unavailable market rows entirely | users still need to know weather evidence remains usable without a quote.
Confidence: high
Scope-risk: moderate
Reversibility: clean
Tested: npm run build
Not-tested: Browser visual QA on physical mobile devices.
This commit is contained in:
2569718930@qq.com
2026-04-28 07:48:47 +08:00
parent 326bfe258e
commit 1543207ced
5 changed files with 452 additions and 87 deletions
@@ -701,6 +701,26 @@ function ScanTerminalScreen() {
</div>
</div>
<section className="scan-upgrade-announcement" aria-label={isEn ? "Upgrade announcement" : "升级公告"}>
<div className="scan-upgrade-announcement-copy">
<span>{isEn ? "v1.5.5 upgrade" : "v1.5.5 升级公告"}</span>
<strong>
{isEn ? "PolyWeather is now upgraded to v1.5.5" : "网站已升级到 v1.5.5"}
</strong>
<p>
{isEn
? "All members received an extra 7 days. The decision terminal now explains more evidence without making unavailable quotes look like a system failure."
: "所有会员已额外延长 7 天。新版会把证据讲得更清楚,也不会让暂无报价看起来像系统故障。"}
</p>
</div>
<ul>
<li>{isEn ? "DeepSeek airport bulletin read" : "DeepSeek 机场报文解读"}</li>
<li>{isEn ? "Action calendar view" : "日历行动视图"}</li>
<li>{isEn ? "Local-time peak window" : "本地时间峰值窗口"}</li>
<li>{isEn ? "AI evidence guardrails" : "AI 证据护栏"}</li>
</ul>
</section>
<AiForecastKPIBar
pinnedCount={aiPinnedCities.length}
activeCityName={kpiCityName}