恢复城市决策卡温度曲线图
- AiPinnedCityCard: 重新引入 AiCityTemperatureChart 渲染 - MobileDecisionCard: 恢复温度走势图折叠区
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
import clsx from "clsx";
|
import clsx from "clsx";
|
||||||
import type { MouseEvent } from "react";
|
import type { MouseEvent } from "react";
|
||||||
import { useEffect, useState } from "react";
|
import { useEffect, useState } from "react";
|
||||||
|
import { AiCityTemperatureChart } from "@/components/dashboard/scan-terminal/AiCityTemperatureChart";
|
||||||
import { AiEvidencePanel } from "@/components/dashboard/scan-terminal/AiEvidencePanel";
|
import { AiEvidencePanel } from "@/components/dashboard/scan-terminal/AiEvidencePanel";
|
||||||
import { CityCardHeader } from "@/components/dashboard/scan-terminal/CityCardHeader";
|
import { CityCardHeader } from "@/components/dashboard/scan-terminal/CityCardHeader";
|
||||||
import { MobileDecisionCard } from "@/components/dashboard/scan-terminal/MobileDecisionCard";
|
import { MobileDecisionCard } from "@/components/dashboard/scan-terminal/MobileDecisionCard";
|
||||||
@@ -569,6 +570,7 @@ export function AiPinnedCityCard({
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="scan-ai-city-analysis-grid">
|
<div className="scan-ai-city-analysis-grid">
|
||||||
|
<AiCityTemperatureChart detail={detail} />
|
||||||
<AiEvidencePanel
|
<AiEvidencePanel
|
||||||
aiBullets={aiBullets}
|
aiBullets={aiBullets}
|
||||||
aiCityForecast={aiCityForecast}
|
aiCityForecast={aiCityForecast}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
import { RefreshCw, X } from "lucide-react";
|
import { RefreshCw, X } from "lucide-react";
|
||||||
import type { MouseEvent } from "react";
|
import type { MouseEvent } from "react";
|
||||||
import { useState } from "react";
|
import { useState } from "react";
|
||||||
|
import { AiCityTemperatureChart } from "@/components/dashboard/scan-terminal/AiCityTemperatureChart";
|
||||||
import { AiEvidencePanel } from "@/components/dashboard/scan-terminal/AiEvidencePanel";
|
import { AiEvidencePanel } from "@/components/dashboard/scan-terminal/AiEvidencePanel";
|
||||||
import {
|
import {
|
||||||
CityStatusTags,
|
CityStatusTags,
|
||||||
@@ -88,6 +89,7 @@ export function MobileDecisionCard({
|
|||||||
const copy = getMobileDecisionCopy(isEn);
|
const copy = getMobileDecisionCopy(isEn);
|
||||||
const loadingCopy = getCityLoadingCopy({ isEn, isHkoObservation });
|
const loadingCopy = getCityLoadingCopy({ isEn, isHkoObservation });
|
||||||
const [modelOpen, setModelOpen] = useState(false);
|
const [modelOpen, setModelOpen] = useState(false);
|
||||||
|
const [chartOpen, setChartOpen] = useState(false);
|
||||||
const statusTags: CityStatusTag[] = decisionState.badges.length
|
const statusTags: CityStatusTag[] = decisionState.badges.length
|
||||||
? decisionState.badges
|
? decisionState.badges
|
||||||
: [{ label: decisionState.aiStatusLabel, tone: decisionState.aiStatusTone as StatusTone }];
|
: [{ label: decisionState.aiStatusLabel, tone: decisionState.aiStatusTone as StatusTone }];
|
||||||
@@ -183,6 +185,15 @@ export function MobileDecisionCard({
|
|||||||
<summary className="scan-ai-city-section-title">{copy.modelEvidence}</summary>
|
<summary className="scan-ai-city-section-title">{copy.modelEvidence}</summary>
|
||||||
{modelOpen ? <ModelEvidencePanel detail={detail} isEn={isEn} /> : null}
|
{modelOpen ? <ModelEvidencePanel detail={detail} isEn={isEn} /> : null}
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
|
<details
|
||||||
|
className="scan-ai-city-section scan-mobile-fold"
|
||||||
|
open={chartOpen}
|
||||||
|
onToggle={(event) => setChartOpen(event.currentTarget.open)}
|
||||||
|
>
|
||||||
|
<summary className="scan-ai-city-section-title">{copy.chart}</summary>
|
||||||
|
{chartOpen ? <AiCityTemperatureChart detail={detail} /> : null}
|
||||||
|
</details>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
|
|||||||
Reference in New Issue
Block a user