From 3b64db70299b45159afd27e4343db34a037d5a5b Mon Sep 17 00:00:00 2001 From: 16337 <1633794139@qq.com> Date: Wed, 18 Mar 2026 17:01:09 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=EF=BC=9A=E5=91=8A=E8=AD=A6?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E7=9C=8B=E6=9D=BF=E8=AE=BE=E8=AE=A1=E6=96=B9?= =?UTF-8?q?=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) --- .../2026-03-18-alarm-dashboard-design.md | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 docs/plans/2026-03-18-alarm-dashboard-design.md diff --git a/docs/plans/2026-03-18-alarm-dashboard-design.md b/docs/plans/2026-03-18-alarm-dashboard-design.md new file mode 100644 index 0000000..65e520e --- /dev/null +++ b/docs/plans/2026-03-18-alarm-dashboard-design.md @@ -0,0 +1,58 @@ +# 告警数据看板设计方案 + +## 概述 + +替换现有「摄像头告警汇总」页面(`/aiot/alarm/summary`),改为运营监控型数据看板,展示告警趋势、类型分布、设备排行等多维度分析图表。 + +## 布局 + +``` +┌─────────┬─────────┬─────────┬─────────┬─────────┐ +│ 今日告警 │ 待处理 │ 已处理 │ 平均响应 │ 在线设备 │ +│ 128 ▲ │ 23 │ 95 │ 12min │ 8/10 │ +│ 较昨+15% │ │ │ │ │ +└─────────┴─────────┴─────────┴─────────┴─────────┘ +┌──────────────────────────┬──────────────────────┐ +│ 告警趋势(面积折线图) │ 告警类型分布(环形图) │ +│ 近7天/30天 切换 │ 离岗/入侵/违停/拥堵 │ +│ 按类型堆叠 │ 中心显示总数 │ +├──────────────────────────┼──────────────────────┤ +│ 设备告警 Top10(横向条形) │ 告警级别分布(柱状图) │ +│ 摄像头名称 + 数量 │ 紧急/重要/普通/轻微 │ +│ │ + 处理状态堆叠 │ +├──────────────────────────┼──────────────────────┤ +│ 24h 时段分布(柱状图) │ 最近告警(滚动列表) │ +│ 每小时告警数量 │ 最新 10 条告警 │ +│ 高亮高峰时段 │ 类型+设备+时间+状态 │ +└──────────────────────────┴──────────────────────┘ +``` + +## 后端接口 + +### 新增接口 + +| 接口 | 方法 | 路径 | 参数 | 返回 | +|------|------|------|------|------| +| 告警趋势 | GET | `/admin-api/aiot/alarm/alert/trend` | `days=7\|30` | `{code,data:[{date,total,leave_post,intrusion,illegal_parking,vehicle_congestion}]}` | +| 设备 Top | GET | `/admin-api/aiot/alarm/alert/device-top` | `limit=10,days=7` | `{code,data:[{deviceId,deviceName,count}]}` | +| 时段分布 | GET | `/admin-api/aiot/alarm/alert/hour-distribution` | `days=7` | `{code,data:[{hour:0-23,count}]}` | + +### 扩展现有接口 + +`GET /admin-api/aiot/alarm/alert/statistics` 增加字段: +- `yesterdayCount`: 昨日告警数(计算同比) +- `avgResponseMinutes`: 平均响应时间(分钟) + +## 前端技术 + +- 图表:ECharts 6.0 + useEcharts composable +- 布局:Ant Design Vue Row/Col +- KPI 卡片:自定义 StatCard 组件 +- 最近告警:Ant Design List +- 自动刷新:60 秒轮询 + +## 前端文件 + +- `views/aiot/alarm/summary/index.vue` — 主页面(替换原有) +- `views/aiot/alarm/summary/chart-options.ts` — ECharts 配置 +- `api/aiot/alarm/index.ts` — 新增 API 方法