import { Bar, BarChart, Cell, LabelList, Pie, PieChart, ResponsiveContainer, Tooltip, XAxis, YAxis, } from 'recharts'; import type { HydrogenRegionShare, HydrogenStationTop } from '../../types'; const REGION_COLORS = [ '#3b82f6', '#22d3ee', '#a855f7', '#f59e0b', '#10b981', '#ef4444', '#6366f1', '#14b8a6', '#94a3b8', ]; interface YAxisTickProps { x?: number; y?: number; index?: number; payload?: { value: string }; } function RankYAxisTick({ x = 0, y = 0, index = 0, payload }: YAxisTickProps) { return ( {index + 1} {payload?.value} ); } interface DistributionChartsProps { top5: HydrogenStationTop[]; regions: HydrogenRegionShare[]; yearKg: number; } export function DistributionCharts({ top5, regions, yearKg }: DistributionChartsProps) { return (
加氢站加注量 Top5 单位 Kg
} tickLine={false} axisLine={false} /> `${Number(v ?? 0).toLocaleString('zh-CN')} Kg`} contentStyle={{ borderRadius: 12, fontSize: 12 }} /> {top5.map((_, i) => ( ))} `${Number(v ?? 0).toLocaleString('zh-CN', { maximumFractionDigits: 0 })}`} fill="#475569" fontSize={11} fontWeight={700} />
各区域加氢占比
{regions.map((_, i) => ( ))} `${(Number(v ?? 0) / 1000).toFixed(2)}T`} contentStyle={{ borderRadius: 12, fontSize: 12 }} />
年合计
{(yearKg / 1000).toFixed(2)}T
{regions.map((r, i) => (
{r.region} {(r.share * 100).toFixed(1)}%
))}
); }