# warehouse 客户端改造 — 任务清单 > **基准文档**: 客户端改造方案 v1.0 > **分支**: gateway-dev > **原则**: 改动仅在 warehouse/ 目录下,不影响 VolPro 管理端 --- ## Phase W0: 基础设施(预计 0.5h) ### W0.1 网关 API 封装 - [ ] 创建 `warehouse/src/api/gateway.ts` - 实现 `gwGet(url)` — GET 请求网关 - 实现 `gwPost(url, body)` — POST 请求网关 - 网关基址常量 `GW_BASE = 'http://localhost:5100'` ### W0.2 设备数据模型 - [ ] 在 `warehouse/src/api/gateway.ts` 中定义 TypeScript 接口: - `Camera { id, name, location, status, adapterCode, streamUrl, hasPtz }` - `StandardDevice { deviceId, adapterCode, sourceId, deviceName, deviceCategory, deviceGroup, isOnline, ... }` - `StreamUrls { wsFlv, httpFlv, hls, ... }` ### W0.3 网关 CORS 确认 - [ ] 确认网关 `Program.cs` 中已启用 CORS(`AllowAnyOrigin` 或 `AllowCredentials`) - [ ] 如未启用,在网关 `Program.cs` 中加 `builder.Services.AddCors()` + `app.UseCors()` ### W0.4 构建验证 - [ ] `npm run dev` 启动 warehouse,确认无编译错误 > **W0 提交点**: `PhaseW0_infra — gateway.ts + 数据模型 + CORS 就绪` --- ## Phase W1: 实时视频页改造(预计 2h) ### W1.1 获取真实摄像机列表 - [ ] 编辑 `warehouse/src/view/video/Live.vue` - [ ] `onMounted` 中调用 `gwGet('/api/gateway/devices?adapter=Owl:main&page=1&size=100')` - [ ] 将 `StandardDevice[]` 映射到 `Camera[]` - [ ] 替换硬编码的 5 台 Mock 摄像机 - [ ] 保留在线/离线统计计算逻辑 ### W1.2 视频流播放 - [ ] 选中摄像机时调用 `gwGet('/api/gateway/streams/{adapterCode}/{sourceId}/live')` - [ ] 获取 WS-FLV 地址后赋值给 `