From dc1f0326fcc0c140dbebd187a2380db9759e1dda Mon Sep 17 00:00:00 2001 From: kkfluous Date: Tue, 28 Apr 2026 11:27:38 +0800 Subject: [PATCH] feat(energy): hydrogen overview Top5 bar + region donut Co-Authored-By: Claude Opus 4.7 (1M context) --- src/modules/energy/HydrogenOverview.tsx | 79 ++++++++++++++++++++++++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/src/modules/energy/HydrogenOverview.tsx b/src/modules/energy/HydrogenOverview.tsx index f0fc22c..8cc2443 100644 --- a/src/modules/energy/HydrogenOverview.tsx +++ b/src/modules/energy/HydrogenOverview.tsx @@ -1,5 +1,12 @@ import { Fuel, Wallet, Coins, CalendarClock } from 'lucide-react'; -import { HYDROGEN_KPI } from './mock'; +import { BarChart, Bar, XAxis, YAxis, ResponsiveContainer, Cell, PieChart, Pie, Tooltip } from 'recharts'; +import { HYDROGEN_KPI, HYDROGEN_STATIONS_TOP5, HYDROGEN_REGION_SHARE } from './mock'; + +const REGION_COLORS = [ + '#3b82f6', '#22d3ee', '#a855f7', '#f59e0b', + '#10b981', '#ef4444', '#6366f1', '#14b8a6', + '#94a3b8', +]; function fmtKg(kg: number) { if (kg >= 1000) return `${(kg / 1000).toFixed(2)}T`; @@ -70,6 +77,76 @@ export default function HydrogenOverview() { +
+ {/* Top5 加氢站 */} +
+
+ 加氢站加注量 Top5 + 单位 Kg +
+ + + + + `${Number(v ?? 0).toLocaleString('zh-CN')} Kg`} + contentStyle={{ borderRadius: 12, fontSize: 12 }} + /> + + {HYDROGEN_STATIONS_TOP5.map((_, i) => ( + + ))} + + + + + + + + + +
+ {/* 区域占比环 */} +
+ 各区域加氢占比 +
+ + + + {HYDROGEN_REGION_SHARE.map((_, i) => ( + + ))} + + `${(Number(v ?? 0) / 1000).toFixed(2)}T`} contentStyle={{ borderRadius: 12, fontSize: 12 }} /> + + +
+ {HYDROGEN_REGION_SHARE.map((r, i) => ( +
+ + {r.region} + {(r.share * 100).toFixed(1)}% +
+ ))} +
+
+
年合计 {(HYDROGEN_KPI.yearKg / 1000).toFixed(2)}T
+
+
); }