From 5617e5b1120d9b27ae7d2cd38cd637cad4e6d9e6 Mon Sep 17 00:00:00 2001 From: "2569718930@qq.com" <2569718930@qq.com> Date: Thu, 14 May 2026 18:39:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=86=E5=88=86=20FutureForecastModalContent?= =?UTF-8?q?=EF=BC=9A=E6=8F=90=E5=8F=96=20TodayLayout=20=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新建 FutureForecastTodayLayout:封装今日视图双栏布局(左侧卡片+右侧图表) - FutureForecastModalContent 从 1098 行降至 999 行 - 纯 JSX 提取,不修改任何业务逻辑、状态或数据流 Tested: npx tsc --noEmit ✓ --- .../dashboard/FutureForecastModalContent.tsx | 155 +++----------- .../dashboard/FutureForecastTodayLayout.tsx | 196 ++++++++++++++++++ 2 files changed, 224 insertions(+), 127 deletions(-) create mode 100644 frontend/components/dashboard/FutureForecastTodayLayout.tsx diff --git a/frontend/components/dashboard/FutureForecastModalContent.tsx b/frontend/components/dashboard/FutureForecastModalContent.tsx index b42313d9..f50e7f24 100644 --- a/frontend/components/dashboard/FutureForecastModalContent.tsx +++ b/frontend/components/dashboard/FutureForecastModalContent.tsx @@ -21,25 +21,15 @@ import type { ProAccessState, } from "@/lib/dashboard-types"; import { FutureForecastForwardView } from "./FutureForecastForwardView"; -import { - FutureModelForecastPanel, - FutureProbabilityPanel, - FutureTemperaturePathChart, -} from "./FutureForecastModalPanels"; import { FutureForecastTodayDecisionBrief } from "./FutureForecastTodayDecisionBrief"; -import { FutureForecastTodayEvidenceGrid } from "./FutureForecastTodayEvidenceGrid"; +import { FutureForecastTodayLayout } from "./FutureForecastTodayLayout"; import { FutureForecastModalHeader } from "./FutureForecastModalHeader"; import { FutureRefreshLock, FutureSyncStatusStrip, type FutureSyncStatusItem, } from "./FutureForecastModalStatus"; -import { - FutureAnchorStatusCard, - FuturePaceCard, - FuturePaceLoadingCard, - type FuturePaceSignalItem, -} from "./FutureForecastTodayCards"; +import { type FuturePaceSignalItem } from "./FutureForecastTodayCards"; import { TODAY_MARKET_SCAN_AUTO_REFRESH_MS, clamp, @@ -966,121 +956,32 @@ export function FutureForecastModalContent({ )} {isToday ? ( -
- - -
-
-
-
- {locale === "en-US" ? "Primary view" : "主视图"} -
-

- {locale === "en-US" - ? "Today's temperature path (anchor obs + models)" - : "今日气温路径(锚点观测 + 模型)"} -

-
- -
- - {locale === "en-US" ? "Base" : "基准"} ·{" "} - {baseCaseBucket || "--"} - - - {locale === "en-US" ? "Upside" : "上修"} ·{" "} - {intradayMeteorology.upside_bucket || "--"} - - - {locale === "en-US" ? "Invalidates at" : "失效观察"} ·{" "} - {nextObservationTime} - -
-
- - - -
-
-
-
- {locale === "en-US" ? "Probability read" : "概率判断"} -
-

{probabilityTitle}

-
-
- {probabilitySummary} -
-
- -
-
-
-
-
- {locale === "en-US" ? "Model layer" : "模型层"} -
-

- {locale === "en-US" - ? "Model Range & Spread" - : "模型区间与分歧"} -

-
-
- {modelSummary} -
- -
-
-
-
+ ) : ( + + +
+
+
+
+ {locale === "en-US" ? "Primary view" : "主视图"} +
+

+ {locale === "en-US" + ? "Today's temperature path (anchor obs + models)" + : "今日气温路径(锚点观测 + 模型)"} +

+
+ +
+ + {locale === "en-US" ? "Base" : "基准"} ·{" "} + {baseCaseBucket || "--"} + + + {locale === "en-US" ? "Upside" : "上修"} ·{" "} + {upsideBucket || "--"} + + + {locale === "en-US" ? "Invalidates at" : "失效观察"} ·{" "} + {nextObservationTime} + +
+
+ + + +
+
+
+
+ {locale === "en-US" ? "Probability read" : "概率判断"} +
+

{probabilityTitle}

+
+
+ {probabilitySummary} +
+
+ +
+
+
+
+
+ {locale === "en-US" ? "Model layer" : "模型层"} +
+

+ {locale === "en-US" + ? "Model Range & Spread" + : "模型区间与分歧"} +

+
+
+ {modelSummary} +
+ +
+
+
+ + ); +}