import { useEffect, useState } from "react"; import { api, type DashboardSummary } from "./api"; import { L, confidenceLabel, scenarioLabel, statusLabel } from "./labels"; export default function Dashboard() { const [data, setData] = useState(null); const [err, setErr] = useState(""); useEffect(() => { api.summary().then(setData).catch((e) => setErr(String(e))); }, []); if (err) return
加载失败:{err}(请确认后端已启动)
; if (!data) return
加载中…
; const wan = (data.total_amount_involved / 10000).toFixed(1); return (
线索总数
{data.total}
高置信
{data.by_confidence.high ?? 0}
涉及金额(万元)
{wan}
场景数
{Object.keys(data.by_scenario).length}

按状态分布

{Object.entries(data.by_status).map(([k, v]) => ( {L(statusLabel, k)}: {v} ))}

按场景分布

{Object.entries(data.by_scenario).map(([k, v]) => ( {k} {L(scenarioLabel, k)}: {v} ))}

按置信度分布

{Object.entries(data.by_confidence).map(([k, v]) => ( {L(confidenceLabel, k)}: {v} ))}
); }