Commit Graph

16 Commits

Author SHA1 Message Date
5182e81429 Revert "功能:摄像头页面增加区域选择器"
This reverts commit 84ec762d09.
2026-03-23 17:02:30 +08:00
84ec762d09 功能:摄像头页面增加区域选择器
1. 编辑弹窗新增「所属区域」下拉框,支持搜索,数据来自 IoT 平台
2. 表格新增「区域」列显示已绑定的区域名称
3. API 新增 getAreaList 函数查询 vsp-service 区域列表接口
4. Vite 代理新增 /api/area → vsp-service:8000
5. Camera 类型新增 areaId 字段
2026-03-23 16:49:27 +08:00
6dca2a68c0 功能:摄像头管理页面增加边缘设备绑定选择
- 表格新增「边缘设备」列
- 编辑弹窗新增边缘设备下拉选择(edge/edge_002)
- 新建摄像头默认绑定 edge
2026-03-22 01:08:03 +08:00
8bce09a17a 功能:摄像头配置页面适配 cameraName
- 表格列:app+stream 改为摄像头名称
- 编辑弹窗:去掉应用名+流ID,改为摄像头名称(必填)
- app/stream 由后端自动处理,前端不再暴露
- Camera 类型新增 cameraName 字段
2026-03-19 11:42:17 +08:00
617cdc8c15 功能:告警列表摄像头搜索改为下拉选择+输入搜索
- 新增 getCameraOptions API(从 WVP 获取摄像头列表)
- 搜索框改为 ApiSelect 组件,支持下拉选择和输入前缀匹配
- 选中后用 cameraCode 查询后端
2026-03-19 11:36:56 +08:00
fae585f5e9 功能:摄像头状态指示器 + 截图缓存优化 + 截图预热
1. 摄像头列表状态指示器(绿/红点)
   - 新增状态列显示摄像头截图可用性
   - 绿色=截图正常,红色=截图失败,灰色=加载中
   - 使用 /snap/image 代理端点检测状态

2. 截图缓存优化(getSnapUrl 重写)
   - 非强制模式:返回稳定URL(无时间戳),浏览器缓存5分钟
   - 强制模式:先触发边缘截图,再返回带时间戳URL破缓存
   - 使用 /snap/image 代理端点,避免COS预签名URL过期问题

3. 截图预热(新增摄像头时)
   - 添加摄像头成功后自动触发首次截图
   - 预热失败不影响主流程(非阻塞)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 16:02:41 +08:00
284f2b8d87 fix(aiot): 回退告警 API 到 Service 后端,修复截图 URL 端点
告警问题:
- 告警数据存储在 FastAPI Service 的 alert_platform.db 中
- 之前错误地切换到 wvpRequestClient(WVP 后端的 wvp_ai_alert 表)
- 回退到 requestClient + /aiot/alarm/alert/* 路径恢复数据

截图问题:
- /snap/image 代理端点在 Redis+DB 都无缓存时返回 404
- 回退到 /snap 端点,利用其 Accept: image/* 自动 302 重定向逻辑
- 保留 force 参数支持手动刷新截图

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 11:05:03 +08:00
0d56b2f221 fix(aiot): 截图持久化适配 + 告警 API 切换到 WVP + 图片代理
截图 / ROI:
- getSnapUrl: 非 force 模式直接返回 /snap/image 代理 URL(从 DB 读持久化截图,
  不触发 Edge),force 模式先请求 Edge 截图再返回代理 URL
- RoiCanvas: 添加 ResizeObserver 确保容器尺寸变化时重新初始化 canvas,
  onImageError 兜底初始化 canvas(截图失败仍可绘制/查看 ROI),
  snapUrl watcher 触发 canvas 重初始化

告警:
- alarm/index.ts: requestClient → wvpRequestClient,路径从
  /aiot/alarm/alert/* 切换到 /aiot/device/alert/*(走 WVP 后端)
- Alert 类型新增 imagePath、receivedAt、extraData 字段
- alarm list: 缩略图和详情图片通过 WVP /alert/image 代理端点显示,
  避免 COS presigned URL 过期问题
- device/index.ts: 新增 getAlertImageUrl() 构造告警图片代理 URL

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 09:21:48 +08:00
dcb8217a78 fix(aiot): 截图刷新添加force参数,绕过WVP 5分钟缓存
getSnapUrl新增force参数,refreshSnap时传force=true,
使WVP后端跳过Redis缓存重新向Edge请求截图。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 16:27:30 +08:00
2583ed5335 feat(aiot): Camera接口增加cameraCode字段,getSnapUrl改用cameraCode
- Camera interface 增加 cameraCode?: string 字段
- getSnapUrl 函数参数从 (app, stream) 改为 (cameraCode)
- 截图URL查询参数从 app/stream 改为 cameraCode
- 配合后端 camera_code 重构计划

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 11:24:31 +08:00
e54fcf1f8c feat(aiot): 告警截图展示 + 全局配置同步 + API兼容修复
- 告警列表新增截图缩略图列,支持预览大图
- 告警详情显示截图 URL 链接
- 摄像头管理页新增「同步全局配置」按钮
- 告警 API 路径修正: camera-summary → device-summary
- 告警 ID 兼容 alarmId 字符串格式
- Vite 代理新增 /uploads、/captures、/aiot/storage 路由

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-11 09:57:29 +08:00
777e52986e fix(aiot): 修复摄像头保存失败 + 标题改为摄像头管理系统
- saveCamera 拆分为 addCamera/updateCamera 匹配WVP实际接口
- .env 标题改为"摄像头管理系统"
- 告警列表字段适配新三表结构
- preferences 配置调整

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 15:22:31 +08:00
eb11e7ed1f refactor(aiot-device): 规范整理设备 API 层和类型定义
- 按功能分区:摄像头管理、ROI 区域、算法管理、算法绑定、配置推送
- Camera 接口扩展完整字段(streamKey、createTime 等)
- 新增 PageResult、MediaServer 类型定义
- getSnapUrl 改为 async,通过 query param 传递 access-token 支持认证截图
- 所有 API 函数添加精确的泛型返回类型

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:25:03 +08:00
f7bfde0135 feat(aiot-device): 摄像头管理增加增删改功能
- Camera 接口扩展完整字段(type、timeout、rtspType、enable 等)
- 新增 saveCamera、deleteCamera、getMediaServerList API
- 摄像头管理页面增加添加/编辑弹窗(表单含代理类型、拉流地址、RTSP方式等)
- 增加删除确认对话框
- Vite 代理增加媒体服务器 API 转发规则

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 09:51:37 +08:00
fc56ea0f75 feat(aiot-device): 完善设备模块 API 层,对接 WVP 实际接口
从 WVP 项目迁移全部设备管理 API:
- 摄像头管理:列表查询、开始/停止拉流
- ROI 区域:增删改查、按摄像头查询、截图
- 算法绑定:绑定/解绑/更新参数
- 配置推送:推送到边缘端、导出配置
- 移除未使用的 PageParam 导入

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 23:24:12 +08:00
159a82aaa9 feat(aiot): 搭建 aiot 前端模块路由和 API 层
- 新增 router/routes/modules/aiot.ts:6 个页面路由
  告警列表、摄像头汇总、摄像头管理、ROI配置、实时视频、边缘节点
- 新增 api/aiot/alarm/:告警 API(分页、详情、处理、删除、统计、汇总)
- 新增 api/aiot/edge/:边缘设备 API(分页、详情、统计)
- 新增 api/aiot/device/:摄像头和 ROI API(调用 WVP 后端)
- 新增 api/aiot/video/:视频播放 API(playStart/playStop)
- 新增 api/aiot/request.ts:WVP 专用请求客户端(跳过芋道响应拦截器)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 16:40:26 +08:00