// 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 */}
{/* 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)=>(
))}
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)=>(
))}
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;