P2-14 模型管理简化: - 上传新模型:模态框上传 → 存盘 → SHA256 入库 → 可选自动分发 - 设备兼容性矩阵:根据 Edge /v1/capabilities 区分缺失 vs 不适用 - 版本管理:从固定 auto 改为文件修改时间戳 - 更新全部智能过滤:只推送缺失/不一致的设备 P2-15 人脸库优化: - Build 产出自动注册为标准资源,接入 Resource Task 分发系统 - 人脸库页面增加设备同步状态矩阵 + 批量同步按钮 - 人员搜索过滤 - 人脸质量评分反馈(构建诊断信息 + 通过率展示) 新增:通道部署页每台设备显示配置同步状态(对比 config_versions 与 Edge config SHA256) 文档:产品化改进计划、实施跟踪、模型与人脸库改进方案
9.1 KiB
9.1 KiB
产品化改进实施跟踪
P0 — 交付底线
| # | 事项 | 状态 | 开始 | 完成 |
|---|---|---|---|---|
| 1 | 告警中心增强 | ✅ 已完成 | 2026-07-17 | 2026-07-17 |
| 2 | 仪表盘重做(实时告警流+统计卡片) | ✅ 已完成 | 2026-07-17 | 2026-07-17 |
| 3 | 一键配置向导(场景化部署 3 步流程) | ✅ 已完成 | 2026-07-17 | 2026-07-17 |
| 4 | 基础登录鉴权 | ⬜ 待开始 | - | - |
| 5 | 监控页 HLS.js 本地化 | ✅ 已完成 | 2026-07-17 | 2026-07-17 |
P1 — 体验改善
| # | 事项 | 状态 | 开始 | 完成 |
|---|---|---|---|---|
| 6 | 告警浏览器通知(SSE / 标题闪烁) | ✅ 已完成 | 2026-07-17 | 2026-07-17 |
| 7 | 设备列表服务健康指示 | ✅ 已完成 | 2026-07-17 | 2026-07-17 |
| 8 | 操作结果提示优化(toast 替代 URL 消息) | ✅ 已完成 | 2026-07-17 | 2026-07-17 |
| 9 | 术语统一 | ✅ 已完成 | 2026-07-17 | 2026-07-17 |
| 16 | 通道部署页配置同步状态指示 | ✅ 已完成 | 2026-07-20 | 2026-07-20 |
P2 — 长期优化
| # | 事项 | 状态 | 开始 | 完成 |
|---|---|---|---|---|
| 10 | 时序图表(告警趋势) | ✅ 已完成 | 2026-07-17 | 2026-07-17 |
| 11 | 设备分组与标签 | ⏸️ 推迟 | - | - |
| 12 | 配置版本对比 | ✅ 已完成 | 2026-07-17 | 2026-07-17 |
| 13 | 报告导出(CSV) | ✅ 已完成 | 2026-07-17 | 2026-07-17 |
| 14 | 模型管理简化 | 🔄 进行中 | 2026-07-20 | - |
| 14.1 | └ 上传新模型(文件上传→存盘→入库) | ✅ 已完成 | 2026-07-20 | 2026-07-20 |
| 14.2 | └ 设备兼容性矩阵(N/A vs 缺失) | ✅ 已完成 | 2026-07-20 | 2026-07-20 |
| 14.3 | └ 版本管理(时间戳替代 auto) | ✅ 已完成 | 2026-07-20 | 2026-07-20 |
| 14.4 | └ "更新全部"智能过滤(只推送给需要更新的设备) | ✅ 已完成 | 2026-07-20 | 2026-07-20 |
| 15 | 人脸库优化(搜索+同步+质量评分) | ✅ 已完成 | 2026-07-20 | 2026-07-20 |
| 15.1 | └ Build 产出自动注册为标准资源 | ✅ 已完成 | 2026-07-20 | 2026-07-20 |
| 15.2 | └ 人脸库页面接入 Resource 同步系统 | ⬜ 待开始 | - | - |
| 15.3 | └ 人员搜索与过滤 | ✅ 已完成 | 2026-07-20 | 2026-07-20 |
| 15.4 | └ 人脸质量评分展示 | ✅ 已完成 | 2026-07-20 | 2026-07-20 |
进行中
- P2-14 模型管理简化 — 详见 模型与人脸库改进方案
- P2-15 人脸库优化 — 详见 模型与人脸库改进方案
已完成事项
2026-07-20
-
新增:通道部署页配置同步状态指示
DeviceAssignmentBoardCard新增ConfigSynced字段pageDeviceAssignments:查询 Edge/v1/config/status的 sha256,与config_versions中最新的 config_id 对比- 每个设备卡片显示:✅ 配置已同步 或 ⚠ 配置待更新
- 改动文件:
config_assets.go(+1)、ui.go(+22)、device_assignments.html(+3)、style.css(+3)
-
P2-15.4 人脸质量评分展示
actionFaceGalleryBuild增强输出解析:提取 per_person_used、failure_reasons、failed_images 等诊断信息- Build 完成后写入
build_meta.json,供页面读取每人的通过数 - 结果消息增强:显示 "生成成功,共 3 人,12 张通过,2 张失败(无人脸×2)"
- 人脸库卡片:每人照片数旁显示绿色"N通过" pill(如 "3通过")
- 改动文件:
ui.go(+48)、face_gallery.html(+1)
-
P2-15 人脸库优化 全部完成 ✅
-
P2-14.4 "更新全部"智能过滤
ModelStatusRow新增NeedsSync字段,BuildModelStatusBoard在设备有缺失/不一致模型时设为 true- 模板"更新全部模型"表单改为只提交
NeedsSync=true的设备,避免对已同步设备做无效推送 - 改动文件:
model_management.go(+2)、models.html(+1)
-
P2-14.3 版本管理
- 新增
fileVersion辅助函数:基于文件修改时间生成YYYYMMDD-HHMMSS版本号 SyncStandardModelsFromDirectory、SyncStandardResourcesFromDirectory、RegisterResource的Version字段从固定"auto"改为调用fileVersionactionModelUpload的默认版本也改为统一格式- 改动文件:
model_management.go(+11)、resource_management.go(+3)、ui.go(+1)
- 新增
-
P2-14.2 设备兼容性矩阵
BuildModelStatusBoard新增deviceCapabilities参数,根据设备/v1/capabilities判断ModelTypeCapability函数映射模型类型→能力Key(face_detection→face_det、face_recognition→face_recog,其余不限制)- 设备不支持某类模型时,状态显示灰色「不适用」pill 而非红色「缺失」
pageModelshandler 查询所有在线设备的能力信息,传给BuildModelStatusBoard- Summary 计算:只有 ok/na 的设备算 Complete,合理
- 改动文件:
model_management.go(+22)、ui.go(+32)、models.html(+2)、model_management_test.go(+2)、style.css(+1)
-
P2-14.1 上传新模型
- 新增
actionModelUploadhandler:multipart 接收 → 存盘models/standard_models/→ SHA256 hash → 写入standard_models表 - 表单字段:名称、类型(下拉)、版本(可选,留空自动生成日期版号)、描述、文件
- "自动分发"复选框:勾选后立即创建
model_sync_all任务推送到全部在线设备 - 路由:
POST /ui/models/upload - 模板:死按钮改为弹出模态框,仿 face_gallery 风格
- 改动文件:
internal/web/ui.go(+82)、models.html(+38)
- 新增
-
P2-15.3 人员搜索与过滤
- 人员列表上方新增搜索框,输入关键词实时过滤(前端 JS,无需后端)
- 卡片增加
person-cardclass +data-name属性用于匹配 - 改动文件:
face_gallery.html(+15)
-
P2-15.2 人脸库页面接入 Resource 同步系统
pageFaceGallery:加载resource_type=face_gallery的标准资源,构建ResourceStatusBoard传给模板- 新增
actionFaceGallerySynchandler:接收device_id[],创建resource_sync_all任务,跳转任务详情 - 模板新增"设备同步状态"卡片:SHA256 对比矩阵 + "同步到全部设备"按钮 + 单设备"同步"按钮
- 路由:
POST /ui/face-gallery/sync - 改动文件:
internal/web/ui.go(+41)、face_gallery.html(+49)
-
P2-15.1 Build 产出自动注册为标准资源
ResourceManagementService新增RegisterResource方法:对单个文件 hash + 写入standard_resources表actionFaceGalleryBuild:Build 成功后自动调用注册,Resource 分发系统即刻感知新版本- 改动文件:
internal/service/resource_management.go(+20)、internal/web/ui.go(+8)
2026-07-17
-
P2-12 配置版本对比
- DB 新表
config_versions,部署时自动保存配置 JSON 快照 - 设备详情页"配置历史"按钮 → 版本列表 → 选两版并排对比
- 差异行红/绿高亮
- DB 新表
-
P0-3 一键配置向导
- 3 步引导:选设备 → 配检测(从设备读取运行通道,下拉选已有视频源或手动添加) → 一键下发
- 标准模式可见,复用的 AutoConfigService 链路
-
P2-13 报告导出
- API:
/api/alarms/export?from=&to=&device=&rule_type=导出 CSV - Excel 兼容(BOM + UTF-8),支持筛选条件继承,告警页面一键下载
- API:
-
P2-10 告警趋势图
- 仪表盘新增 Canvas 柱状图:近 7 日告警数量
- API:
/api/alarms/daily-count?days=7返回每日统计 - 纯 Canvas 绘制,无外部图表库依赖
-
P1-9 术语统一
- "视频通道" → "检测通道"(5 个模板 + 菜单 + Handler 标题)
- "场景" → "场景管理"(Handler 标题与菜单对齐)
- "人脸库管理" → "人脸库"(与菜单对齐)
-
P1-8 操作结果提示优化
- JS 读取 URL 中
?msg=/?error=参数,显示为右上角浮动 toast - 绿色成功 / 红色失败,4 秒自动滑出消失
- 展示同时清理 URL,刷新不重复显示
- JS 读取 URL 中
-
P1-7 设备服务健康指示
- 模板本已有媒体服务状态(运行中/未运行/待确认)
- 新增:在线但媒体服务异常的行背景变淡橙色警告
-
P1-6 告警浏览器通知
- 顶栏铃铛图标显示未处理告警数(红点+数字徽章)
- 页面标题闪烁
(N) SafeSight - 每 15 秒轮询
/api/alarms/unacknowledged-count render统一注入计数,所有页面生效
-
P0-2 仪表盘重做
- 统计卡片:今日告警/未处理告警/在线设备/检测路数
- SSE 实时告警流:EventSource 连接 /api/alarms/stream,新告警实时推入
-
P0-1 告警中心增强
- DB 迁移:
alarm_records增加status,severity,acknowledged_at/by,resolved_at/by列 - 服务层:
AlarmRecord扩展 + SSE 广播 + 确认/关闭/改等级 API - 页面:严重等级列 + 状态列 + 操作按钮 + 设备/规则类型下拉筛选
- DB 迁移:
-
P0-5 监控页 HLS.js 本地化
- 改动:
monitor.html:18— CDN 引用改为本地/ui/assets/vendor/hls.min.js
- 改动:
已完成:14/15(93.3%) | 剩余:P0-4(登录) | 推迟:P2-11(分组)