// artboard-inbox.jsx — Notification center const ArtboardInbox = () => { const alerts = [ {p:"P0", n:"电池SOC严重不足", v:"浙F08638F", t:"刚刚", det:"SOC 9% < 阈值 15% · 持续 4分20秒", st:"new"}, {p:"P0", n:"右后胎压低", v:"浙F08638F", t:"3分钟前", det:"0.16 MPa · 阈值 0.20 MPa", st:"new"}, {p:"P1", n:"超速预警", v:"浙F02002F", t:"12分钟前", det:"实测 89 km/h · 限速 80 km/h · 持续 12s", st:"new"}, {p:"P1", n:"H₂压力异常下降", v:"浙F07179F", t:"32分钟前", det:"5分钟内下降 1.2 MPa · 异常", st:"ack"}, {p:"P0", n:"电堆过温保护", v:"浙F00598F", t:"1小时前", det:"电堆温度 95°C · 阈值 90°C", st:"resolved"}, {p:"P2", n:"急加速密集", v:"浙F02608F", t:"2小时前", det:"5分钟内 3 次急加速", st:"resolved"}, {p:"P1", n:"偏离规划路线", v:"浙F00278F", t:"3小时前", det:"偏离 1.2 km · 持续 6 分钟", st:"resolved"}, ]; return (
{/* Filter chips */}
全部 · 24 未处理 · 3 P0 · 2 P1 · 8 P2 · 14 今日
{/* Hourly distribution */}
24小时告警分布 峰值 14:00-15:00
{/* Timeline list */}
{alerts.map((a,i)=>{ const c = a.p === "P0" ? "var(--danger)" : a.p === "P1" ? "var(--warn)" : "var(--info)"; return (
{i < alerts.length-1 && }
{a.p} {a.n} · {a.v} {a.st==="new" && } {a.st==="ack" && 已确认} {a.st==="resolved" && 已恢复}
{a.t}
{a.det}
{a.st === "new" && (
规则 · {a.n}
)}
); })}
{/* Right: stats */}
告警概览
{[ {l:"P0 紧急", v:"2", c:"var(--danger)"}, {l:"P1 警告", v:"8", c:"var(--warn)"}, {l:"P2 提示", v:"14", c:"var(--info)"}, {l:"已恢复", v:"19", c:"var(--ok)"}, ].map((k,i)=>(
{k.l}
{k.v}
))}
Top 5 告警类型 · 7日
{[ {l:"超速预警", v:47, c:"var(--warn)"}, {l:"急加速密集", v:31, c:"var(--info)"}, {l:"胎压报警", v:18, c:"var(--warn)"}, {l:"SOC不足", v:12, c:"var(--danger)"}, {l:"H₂压力异常", v:8, c:"var(--danger)"}, ].map((t,i)=>(
{t.l}
{t.v}
))}
Top 5 告警车辆
{[ {n:"浙F08638F", v:8, c:"var(--danger)"}, {n:"浙F02002F", v:6, c:"var(--warn)"}, {n:"浙F02608F", v:4, c:"var(--warn)"}, {n:"浙F00598F", v:3, c:"var(--info)"}, {n:"浙F00278F", v:3, c:"var(--info)"}, ].map((t,i)=>(
{t.n} {t.v} 次
))}
); }; window.ArtboardInbox = ArtboardInbox;