Commit Graph

21 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
7332ff5f1e 修复:app/stream 填充默认值 default/001,不再用 cameraName 覆盖 2026-03-19 11:49:08 +08:00
8bce09a17a 功能:摄像头配置页面适配 cameraName
- 表格列:app+stream 改为摄像头名称
- 编辑弹窗:去掉应用名+流ID,改为摄像头名称(必填)
- app/stream 由后端自动处理,前端不再暴露
- Camera 类型新增 cameraName 字段
2026-03-19 11:42:17 +08:00
0aa45be41f 修复:状态栏位置 + 导入顺序 + 移除多余token
1. 状态栏位置修正
   - 正确位置:应用名 -> 流ID -> 拉流地址 -> 状态 -> ROI
   - 之前错误地放在了流ID和拉流地址之间

2. 修复导入顺序
   - useAppConfig应在script setup顶部导入
   - 避免apiURL未正确初始化的问题

3. 状态检测优化
   - /snap/image已免认证,移除access-token参数
   - 简化HEAD请求逻辑

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 16:50:24 +08:00
0e73aa2b8d 修复:状态栏位置调整 + HEAD请求检测截图状态
1. 状态栏位置调整
   - 列顺序改为:应用名 -> 流ID -> 状态 -> 拉流地址 -> ROI

2. 状态检测优化
   - 使用 HEAD 请求替代 GET,避免下载完整图片
   - 使用 fetch API 直接发送 HEAD 请求到 /snap/image
   - 大幅提升状态检测性能

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 16:29:47 +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
d8e1ae5dab refactor: 摄像头管理页面移除状态栏、拉流和导出按钮
- 删除"状态"列(拉流中/未拉流)
- 删除操作栏中"拉流"和"导出"按钮,保留ROI配置、编辑、删除
- 删除搜索栏中"拉流状态"筛选
- 清理无用import和方法(toggleStream/handleExport/startCamera/stopCamera/exportConfig)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 11:20:01 +08:00
2e0efc7c8c fix(aiot): 修改应用名时自动重新分配流ID,从001开始按序分配 2026-02-25 14:14:02 +08:00
6ac978a2ac fix(aiot): 修复应用名多选问题,使用AutoComplete替代Select tags模式 2026-02-25 14:08:21 +08:00
286f4a1a03 feat(aiot): 添加应用名下拉选择功能,支持选择已有或输入新名称 2026-02-25 13:55:29 +08:00
bf3ca08d7b feat(aiot): 允许编辑摄像头应用名,保留流ID不变
修改内容:
- 移除应用名的 disabled 限制,允许在编辑模式下修改
- 流ID保持不可编辑(避免复杂的唯一性冲突)
- 更新提示文字:应用名可修改,流ID不可修改

用户场景:
- 用户创建摄像头时可能输错应用名
- 或者后期需要调整摄像头的场景分类
- 修改应用名后,流ID保持不变(如:大堂/001 → 停车场/001)
- 后端会验证新的 app+stream 组合是否冲突

注意事项:
- 修改应用名可能导致 app+stream 组合冲突
- 后端已添加唯一性验证,会提示用户冲突
2026-02-25 13:49:27 +08:00
dc71da002e feat(aiot): 摄像头管理 - 应用名场景化和流ID自动编号
- 应用名提示优化:"场景分类,如:大堂、停车场、入口"
- 流ID提示优化:"在当前场景下的唯一标识,如:001(系统会自动编号)"
- 新增摄像头时,流ID自动填充为场景下的顺序编号(001, 002, 003...)
- 监听应用名变化,动态更新流ID编号
- 自动编号逻辑:查找当前场景下已用的纯数字编号,填充下一个可用编号
- 用户可手动修改自动填充的编号(支持语义化命名)

实现:
- autoFillStreamId() 函数:根据应用名计算下一个可用编号
- watch监听 editForm.app 变化,触发自动编号
- handleAdd() 时自动填充流ID

示例:
- 应用名=大堂,已有001、002 → 自动填充003
- 应用名=停车场,首次创建 → 自动填充001
- 用户可修改为语义化名称:B1_entrance
2026-02-25 13:27:02 +08:00
bf93a1afec fix(aiot): 恢复摄像头管理页面应用名显示和输入 - 改善用户体验
- 表格恢复显示应用名和流ID列,移除用户看不懂的摄像头编码列
- 表单恢复应用名输入框,用户可输入有意义的名称(如:大堂、停车场等)
- 恢复应用名必填验证
- camera_code在后台自动生成,前端只在编辑时只读显示
- 改善用户体验:用户看到的是可理解的应用名,而不是技术编码
2026-02-13 13:29:58 +08:00
4bbc4b16dd feat(aiot): 摄像头管理页面改用cameraCode,隐藏app输入
- 表格列:将"应用名"改为"摄像头编码",显示cameraCode字段
- loadRoiCounts:使用cameraCode替代app/stream拼接
- handleRoiConfig:路由query使用cameraCode替代cameraId
- handleExport:使用cameraCode导出配置
- 表单:隐藏app输入框,编辑模式显示cameraCode(只读)
- 删除确认:显示cameraCode而非app/stream
- 验证逻辑:移除app字段必填验证

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 11:34:34 +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
f78eaa2ae1 refactor(aiot-device): 规范整理摄像头管理和 ROI 配置页面代码
- 摄像头管理:代码按功能分区(列表状态/编辑弹窗/数据加载/增删改/拉流控制/配置导出)
- ROI 配置:代码按功能分区(摄像头选择/截图/数据加载/绘制/选择/编辑/删除/推送)
- getSnapUrl 适配 async 调用,截图 URL 携带 access-token 认证参数
- 统一中文注释风格

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 10:25:19 +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
b72839622e feat(aiot-device): 重写摄像头管理页面,迁移 WVP 功能
从 WVP 的 cameraConfig/index.vue 迁移至 Vue3 + Ant Design:
- 搜索过滤:支持名称/地址搜索和拉流状态筛选
- 摄像头列表:显示应用名、流ID、拉流地址、状态
- ROI 数量徽标:异步加载每个摄像头的 ROI 数量
- 操作按钮:ROI 配置(跳转)、拉流/停止、导出配置
- 配置导出:JSON 文件下载

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 23:24:27 +08:00
c601395a03 feat(aiot): 添加 aiot 全部业务视图页面
- alarm/list:告警列表(搜索、详情弹窗、处理/忽略操作)
- alarm/summary:摄像头告警汇总(跳转到对应摄像头告警列表)
- device/camera:摄像头通道管理(跳转配置 ROI)
- device/roi:ROI 区域配置列表(删除操作)
- video/live:实时视频播放(输入设备/通道 ID 播放)
- edge/node:边缘节点管理(状态徽标、运行时长、帧数统计)

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