|
|
@@ -0,0 +1,218 @@
|
|
|
+# 红沙泉二矿火区监测预警系统 — 六大模块测试文档
|
|
|
+
|
|
|
+| 项目 | 内容 |
|
|
|
+|------|------|
|
|
|
+| 系统名称 | 红沙泉二矿火区监测预警系统(hsq-mk / zxm) |
|
|
|
+| 测试范围 | 一张图、监测预警、视频预览、设备管理、系统管理、历史报表 |
|
|
|
+| 测试方式 | 静态代码审查 + 功能逻辑走查 + 问题修复回归 |
|
|
|
+| 测试日期 | 2026-09-30 |
|
|
|
+| 模块入口 | `src/views/vent/monitorManager/hsqHome/index.vue` |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 1. 测试环境与入口
|
|
|
+
|
|
|
+| 项 | 说明 |
|
|
|
+|----|------|
|
|
|
+| 前端框架 | Vue3 + Ant Design Vue |
|
|
|
+| 主页面 | `hsqHome/index.vue`,顶部导航切换六大模块 |
|
|
|
+| 导航组件 | `components/navMenu.vue` |
|
|
|
+| 组件映射 | `menuComponentMap`(yzt / jcyj / spyl / sbgl / xtgl / lspb) |
|
|
|
+
|
|
|
+### 1.1 模块与组件对照
|
|
|
+
|
|
|
+| 序号 | 菜单名称 | MenuKey | 主组件 | 主要子组件 |
|
|
|
+|------|----------|---------|--------|------------|
|
|
|
+| 1 | 一张图 | yzt | `fireMonitor.vue` | 环境监测、设备列表、地图/态势相关 |
|
|
|
+| 2 | 监测预警 | jcyj | `warnMonitor.vue` | WarnLeftTop / WarnCenTop / WarnRightTop / WarnBottom |
|
|
|
+| 3 | 视频预览 | spyl | `videoPlayer.vue` | DeviceTree / DeviceControl / DeviceView / DeviceWarnList |
|
|
|
+| 4 | 设备管理 | sbgl | `deviceManger.vue` | DeviceLeft / DeviceCenter / DeviceRight |
|
|
|
+| 5 | 系统管理 | xtgl | `systemManger.vue` | SystemLeftTop / SystemRightTop / SystemLeftBottom / SystemRightBot |
|
|
|
+| 6 | 历史报表 | lspb | `historyReport.vue` | HistoryFilterTree / AlarmPoint / AlarmDay / AlarmMonth |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 2. 测试用例与结果
|
|
|
+
|
|
|
+### 2.1 公共导航
|
|
|
+
|
|
|
+| 编号 | 测试项 | 步骤 | 预期结果 | 结果 |
|
|
|
+|------|--------|------|----------|------|
|
|
|
+| N-01 | 菜单切换 | 依次点击六大菜单 | 主区域切换为对应组件,无空白/报错 | 通过(修复后) |
|
|
|
+| N-02 | 高亮同步 | 切换菜单后观察高亮 | 高亮索引与当前菜单一致 | 通过(修复后) |
|
|
|
+| N-03 | 标题展示 | 进入首页 | 顶部显示「红沙泉二矿火区监测预警系统」 | 通过 |
|
|
|
+
|
|
|
+**问题与处理:**
|
|
|
+
|
|
|
+- **问题**:`changeMenu` 用 `Object.keys(menuComponentMap).indexOf(param)` 计算高亮,映射表含 `ldpz`/`dpzs` 等隐藏项,导致可见菜单高亮错位。
|
|
|
+- **处理**:新增 `NAV_MENU_KEYS` 与可见导航顺序对齐;`navMenu` 增加 `activeIndex` props 与父组件同步。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2.2 一张图(yzt)
|
|
|
+
|
|
|
+| 编号 | 测试项 | 步骤 | 预期结果 | 结果 |
|
|
|
+|------|--------|------|----------|------|
|
|
|
+| Y-01 | 页面加载 | 进入一张图 | 布局完整,左右/环境监测区域正常 | 通过 |
|
|
|
+| Y-02 | 设备列表 | 接口返回双光谱/火灾设备 | 列表有数据;空数据不报错 | 通过(修复后) |
|
|
|
+| Y-03 | 环境数据 | 拉取传感器数据 | 温度/氧气/CO 等读数正常刷新 | 通过(修复后) |
|
|
|
+| Y-04 | 轮询清理 | 切换离开一张图 | 定时器正确清除,无泄漏 | 通过(修复后) |
|
|
|
+
|
|
|
+**问题与处理:**
|
|
|
+
|
|
|
+| 问题 | 影响 | 处理 |
|
|
|
+|------|------|------|
|
|
|
+| `res.deviceInfo.duaSpeCamera.datalist` 无空值保护 | 接口异常时白屏 | 改为可选链 + 默认 `[]` |
|
|
|
+| `envData = Object.assign(...)` 整体替换 reactive | 子组件不更新 | 改为清空后 `Object.assign` 合并 |
|
|
|
+| `onUnmounted` 先置 `timer=null` 再 `clearTimeout` | 定时器无法清除 | 先 `clearTimeout` 再置空 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2.3 监测预警(jcyj)
|
|
|
+
|
|
|
+| 编号 | 测试项 | 步骤 | 预期结果 | 结果 |
|
|
|
+|------|--------|------|----------|------|
|
|
|
+| J-01 | 报警列表 | 进入监测预警 | 列表展示设备名/类型/模式/时间 | 通过 |
|
|
|
+| J-02 | 时间筛选 | 选择时间范围 | 列表按条件刷新 | 通过 |
|
|
|
+| J-03 | 详情联动 | 点击「详情」 | 中间面板展示对应报警详情与图片 | 通过 |
|
|
|
+| J-04 | 烟雾报警文案 | 存在 eventType=10003 记录 | 显示「烟雾报警」而非「-」 | 通过(修复后) |
|
|
|
+| J-05 | 处置流程 | 点击处置按钮 | processState 更新,步骤条同步 | 通过 |
|
|
|
+| J-06 | 轮询清理 | 离开页面 | 左右面板定时器正确清除 | 通过(修复后) |
|
|
|
+
|
|
|
+**问题与处理:**
|
|
|
+
|
|
|
+| 问题 | 影响 | 处理 |
|
|
|
+|------|------|------|
|
|
|
+| 多处仅映射 10001/10002,10003 显示为 `-` | 烟雾报警无法识别 | 统一 `formatAlarmEventType`(10001 热源 / 10002 闯入 / 10003 烟雾) |
|
|
|
+| WarnLeftTop / WarnRightTop 定时器清理顺序错误 | 潜在内存泄漏 | 先 clear 再置空 |
|
|
|
+
|
|
|
+涉及文件:`WarnLeftTop.vue`、`WarnCenTop.vue`、`WarnRightTop.vue`、`hsqHome.data.ts`。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2.4 视频预览(spyl)
|
|
|
+
|
|
|
+| 编号 | 测试项 | 步骤 | 预期结果 | 结果 |
|
|
|
+|------|--------|------|----------|------|
|
|
|
+| S-01 | 设备树 | 进入视频预览 | 双光谱设备树加载,勾选状态可保留 | 通过 |
|
|
|
+| S-02 | 在线统计 | 设备有 netStatus | 饼图在线/离线统计正确 | 通过(修复后) |
|
|
|
+| S-03 | 取流勾选 | 勾选可见光/红外 | 画面区按模式启停取流 | 通过 |
|
|
|
+| S-04 | 云台控制 | 使用 DeviceControl | 方向/变倍等指令下发(已移除红外变倍/红外控制) | 通过 |
|
|
|
+| S-05 | 最新告警图 | 最新热源/闯入/烟雾 | 三类均可按 eventType 拉取最新图 | 通过 |
|
|
|
+| S-06 | 告警列表 | 底部告警表 | 含烟雾类型中文展示 | 通过(修复后) |
|
|
|
+| S-07 | 报警弹窗 | WebSocket 推送 | 双图展示、可放大 | 通过 |
|
|
|
+| S-08 | 轮询清理 | 离开页面 | 定时器正确清除 | 通过(修复后) |
|
|
|
+
|
|
|
+**问题与处理:**
|
|
|
+
|
|
|
+| 问题 | 影响 | 处理 |
|
|
|
+|------|------|------|
|
|
|
+| 构树未透传 `netStatus` | 在线/离线统计不准 | 映射时写入 `netStatus` |
|
|
|
+| `datalist` 无空值保护 | 异常白屏 | 可选链 + 默认数组 |
|
|
|
+| 告警类型缺 10003 | 烟雾显示为 `-` | 使用 `formatAlarmEventType` |
|
|
|
+| 定时器清理顺序错误 | 泄漏风险 | 先 clear 再置空 |
|
|
|
+| DeviceTree 在线判断曾反向 | 统计颠倒 | `netStatus==1/true` 计为在线 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2.5 设备管理(sbgl)
|
|
|
+
|
|
|
+| 编号 | 测试项 | 步骤 | 预期结果 | 结果 |
|
|
|
+|------|--------|------|----------|------|
|
|
|
+| D-01 | 设备列表 | 进入设备管理 | 左侧列表展示,在线状态正确 | 通过 |
|
|
|
+| D-02 | 自动选中 | 首次加载 | 自动激活第一台设备详情 | 通过 |
|
|
|
+| D-03 | 详情→配置回显 | 点详情后看右侧 | 配置项与详情一致 | 通过 |
|
|
|
+| D-04 | 温度字段 | readData 缺失 | 显示 `-`,不报错 | 通过(修复后) |
|
|
|
+| D-05 | 选中样式 | 选中设备卡片 | 使用选中态背景图/样式 | 通过 |
|
|
|
+| D-06 | 配置区按钮 | 查看右侧底部 | 已无「恢复默认」「保存设置」 | 通过 |
|
|
|
+
|
|
|
+**问题与处理:**
|
|
|
+
|
|
|
+| 问题 | 影响 | 处理 |
|
|
|
+|------|------|------|
|
|
|
+| `item.readData.temperature` 直接访问 | readData 为空时报错 | 改为 `item.readData?.temperature ?? '-'` |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2.6 系统管理(xtgl)
|
|
|
+
|
|
|
+| 编号 | 测试项 | 步骤 | 预期结果 | 结果 |
|
|
|
+|------|--------|------|----------|------|
|
|
|
+| X-01 | 用户列表 | 进入系统管理 | 用户分页列表正常 | 通过 |
|
|
|
+| X-02 | 角色统计 | 查看右侧统计 | 角色用户数量图表/数据正常 | 通过 |
|
|
|
+| X-03 | 登录日志 | 下部左侧 | 登录日志分页可切换 | 通过 |
|
|
|
+| X-04 | 浏览日志 | 下部右侧 | 浏览日志分页可切换 | 通过 |
|
|
|
+| X-05 | 分页样式 | 各处分页 | 与统一 `hsqPagination` 风格一致 | 通过 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+### 2.7 历史报表(lspb)
|
|
|
+
|
|
|
+| 编号 | 测试项 | 步骤 | 预期结果 | 结果 |
|
|
|
+|------|--------|------|----------|------|
|
|
|
+| H-01 | 设备树筛选 | 勾选设备并检索 | 右侧点位/日/月统计图表回填 | 通过 |
|
|
|
+| H-02 | 未勾选检索 | 不勾设备点检索 | 提示「请勾选设备」 | 通过 |
|
|
|
+| H-03 | 导出按钮 | 点击导出 | 有明确反馈(当前提示开发中) | 通过(修复后) |
|
|
|
+| H-04 | 初始化 | 首次进入 | 自动拉树并 silent 检索回填 | 通过 |
|
|
|
+
|
|
|
+**问题与处理:**
|
|
|
+
|
|
|
+| 问题 | 影响 | 处理 |
|
|
|
+|------|------|------|
|
|
|
+| HistoryFilterTree 发出 `@export`,父组件未监听 | 导出无响应 | `historyReport` 增加 `@export`,提示「导出功能开发中」 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 3. 缺陷汇总
|
|
|
+
|
|
|
+| 级别 | 数量 | 说明 |
|
|
|
+|------|------|------|
|
|
|
+| 高 | 5 | 导航高亮错位、envData 失效、烟雾类型缺失、定时器无效清理、导出无响应 |
|
|
|
+| 中 | 4 | 接口空值无保护、netStatus 未透传、温度字段空访问、在线统计逻辑 |
|
|
|
+| 低 | 若干 | 文案一致性、已下线按钮/入口清理(前期迭代已完成) |
|
|
|
+
|
|
|
+### 3.1 本次修复文件清单
|
|
|
+
|
|
|
+| 文件 | 变更要点 |
|
|
|
+|------|----------|
|
|
|
+| `index.vue` | `NAV_MENU_KEYS` 高亮索引 |
|
|
|
+| `components/navMenu.vue` | props 同步 activeIndex、类型约束 |
|
|
|
+| `hsqHome.data.ts` | 新增 `formatAlarmEventType` |
|
|
|
+| `fireMonitor.vue` | 空值保护、envData 合并、定时器清理 |
|
|
|
+| `videoPlayer.vue` | netStatus、空值保护、烟雾类型、定时器 |
|
|
|
+| `DeviceLeft.vue` | `readData?.temperature` |
|
|
|
+| `AlarmMonitor.vue` | 烟雾类型、定时器 |
|
|
|
+| `WarnLeftTop.vue` | 烟雾类型、定时器 |
|
|
|
+| `WarnCenTop.vue` | 烟雾类型 |
|
|
|
+| `WarnRightTop.vue` | 定时器清理 |
|
|
|
+| `historyReport.vue` | 监听 `@export` |
|
|
|
+| `DeviceTree.vue` | 在线统计修正、无用告警上报代码清理(前期) |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 4. 样式与交互检查摘要
|
|
|
+
|
|
|
+| 检查项 | 结论 |
|
|
|
+|--------|------|
|
|
|
+| 深蓝主题背景框/装饰图 | 各模块统一使用 hsq 资源图,布局一致 |
|
|
|
+| 分页样式 | 系统管理等已统一 hsqPagination |
|
|
|
+| 设备选中态 | device-item-active 资源生效 |
|
|
|
+| 已下线功能 | 视频框图、告警上报、红外变倍/控制、关闭声光报警、配置保存/恢复默认 — 界面已移除 |
|
|
|
+| 底部菜单拖拽 | bottomSideder 支持拖动 |
|
|
|
+| 报警弹窗双图放大 | Teleport 弹层可用 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 5. 遗留与建议
|
|
|
+
|
|
|
+1. **历史报表导出**:前端已接事件并提示,需后端提供导出接口后再对接文件下载。
|
|
|
+2. **联调回归**:建议在真实设备与 WebSocket 环境下再跑一轮 S-05~S-07、J-03~J-05。
|
|
|
+3. **接口异常态**:建议对 `monitorSystem` / `dscAlarmLogList` 增加统一错误 toast(当前以空列表兜底为主)。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 6. 测试结论
|
|
|
+
|
|
|
+六大模块主流程可正常切换与展示。本次排查共修复 **导航高亮、环境监测响应式、烟雾报警文案、定时器清理、设备树在线状态、历史导出反馈、空值防护** 等问题。修复后静态走查用例均标记为通过;导出下载与实时报警弹窗建议在联调环境做最终确认。
|
|
|
+
|
|
|
+**结论:测试通过(含已修复项),可进入联调验收。**
|