import { Building2, Users, Skull, Bandage, Plane, Ship, Shield, Car, TrendingDown, } from 'lucide-react' import { formatMillions } from '@/utils/formatNumber' import type { CombatLosses } from '@/data/mockData' interface CombatLossesPanelProps { usLosses: CombatLosses iranLosses: CombatLosses className?: string } const LOSS_ITEMS: { key: keyof Omit label: string icon: typeof Plane iconColor: string }[] = [ { key: 'aircraft', label: '战机', icon: Plane, iconColor: 'text-sky-400' }, { key: 'warships', label: '战舰', icon: Ship, iconColor: 'text-blue-500' }, { key: 'armor', label: '装甲', icon: Shield, iconColor: 'text-emerald-500' }, { key: 'vehicles', label: '车辆', icon: Car, iconColor: 'text-slate-400' }, ] export function CombatLossesPanel({ usLosses, iranLosses, className = '' }: CombatLossesPanelProps) { return (
战损数据
{/* 基地 */}
基地
{usLosses.bases.destroyed}{usLosses.bases.damaged}
{iranLosses.bases.destroyed}{iranLosses.bases.damaged}
{/* 人员伤亡 */}
人员伤亡
{formatMillions(usLosses.personnelCasualties.killed)} {formatMillions(usLosses.personnelCasualties.wounded)}
{formatMillions(iranLosses.personnelCasualties.killed)} {formatMillions(iranLosses.personnelCasualties.wounded)}
{/* 战机 / 战舰 / 装甲 / 车辆 */} {LOSS_ITEMS.map(({ key, label, icon: Icon, iconColor }) => (
{label}
{usLosses[key]}
{iranLosses[key]}
))}
) }