# 工业级物联网设备管理平台 UI 架构重构设计

日期：2026-04-27

## 1. 背景

当前后台已经从“程序接口直出”进化到了可用的管理界面，但整体交互仍然存在明显的信息架构问题：

- 一级菜单按“已有页面”拼接，而不是按“用户任务”和“核心对象”组织。
- `设备` 菜单同时承担总览、列表、详情、部分控制入口，职责过重。
- `配置管理` 实际是单设备运维工作台，却被放在一级导航，导致不得不补一个“先选设备”的页面，逻辑牵强。
- `识别配置` 与设备侧配置下发、批量任务之间关系不清晰，用户难以建立稳定心智模型。
- 页面之间存在较多交叉引用和绕行入口，容易让用户迷失在“从哪里来、到哪里去”的问题里。

本次设计目标不是继续修补现有页面，而是参考工业级 IoT / 边缘设备管理平台的常见组织方式，重新确立整套后台的主线、对象边界和导航关系。

## 2. 设计目标

本次重构只解决“多台边缘视觉设备的统一管理和监控”这一核心问题，不追求通用平台化扩张。

目标如下：

1. 一级导航只保留清晰、稳定、低歧义的主对象。
2. 单设备运维从一级导航下沉为设备详情工作台的一部分。
3. `识别配置` 明确为资产库，不再承担单设备入口。
4. `任务` 独立承载批量执行、执行历史和回滚链路。
5. `诊断` 独立承载日志、系统状态和审计。
6. 页面之间避免无意义交叉跳转，导航层级始终可理解。

## 3. 用户心智模型

本系统的核心对象只有五类：

1. **全局态势**：我当前管了多少设备，在线率如何，有没有异常。
2. **设备 fleet**：有哪些设备，它们按什么状态、地点、分组分布。
3. **单台设备**：某一台设备现在是什么状态，运行了什么服务，应用了什么配置。
4. **识别配置资产**：有哪些模板、业务配置、叠加项可供设备使用。
5. **执行与诊断结果**：批量动作做了什么，是否成功，失败在哪，系统是否健康。

因此一级导航应围绕这五类对象展开，而不是围绕“已有接口”或“临时动作入口”展开。

## 4. 新的一级导航

一级导航调整为以下五项：

### 4.1 总览

用途：只看全局运行状态。

包含内容：

- 全局 KPI
- 在线率 / 离线率
- 告警数 / 异常设备数
- 最近任务
- 异常设备列表

明确不包含：

- 完整设备清单
- 单设备配置表单
- 识别配置编辑

### 4.2 设备

用途：设备 fleet 管理主入口。

包含内容：

- 设备列表
- 搜索、筛选、分组
- 批量选择
- 批量操作入口
- 进入单设备详情

点击设备后进入“设备详情工作台”，而不是跳转到零散页面。

### 4.3 识别配置

用途：识别相关资产库。

包含内容：

- 模板
- 业务配置
- 叠加项
- 预览

它是“配置资产”的维护域，不承担单设备入口，也不直接负责设备服务控制。

### 4.4 任务

用途：承载批量动作和执行历史。

包含内容：

- 批量下发
- 批量重启
- 批量回滚
- 执行历史
- 任务详情

任务的意义是“面向一组设备执行动作”，而不是替代设备页本身。

### 4.5 诊断

用途：面向运行排障和平台自检。

包含内容：

- 设备日志
- 系统状态
- 审计记录

它不承担日常设备管理入口，只服务于排障、追踪和系统可观测性。

## 5. 设备详情工作台

单设备相关能力不再作为一级菜单存在，而是统一沉入设备详情。

设备详情采用一个稳定的二级工作台结构，建议拆为以下标签：

1. **概览**
   - 设备身份信息
   - 在线状态
   - 管理地址
   - 当前版本
   - 最近心跳
   - 当前应用的识别配置摘要

2. **运行与服务**
   - 服务状态
   - 启动 / 停止 / 重启操作
   - 运行时摘要

3. **设备配置**
   - 设备本地配置查看
   - 配置修改入口
   - 配置上传 / 应用
   - 配置回滚

4. **模型与资源**
   - 模型上传
   - 模型版本
   - 人脸库 / 资源摘要

5. **日志与指标**
   - 诊断日志
   - 运行指标
   - 进入高级调试

这个页面的目标是：用户在“设备”域内进入某台设备后，不需要再借道其他一级菜单才能完成单设备运维。

## 6. 模块边界与跳转原则

### 6.1 允许的跳转

- `总览 -> 设备详情`
- `总览 -> 任务详情`
- `总览 -> 诊断`
- `设备 -> 设备详情`
- `设备 -> 批量任务创建`
- `识别配置 -> 预览`
- `识别配置 -> 任务（以某资产为基础创建下发任务）`
- `任务 -> 任务详情`
- `任务详情 -> 相关设备`
- `诊断 -> 相关设备日志 / 审计详情`

### 6.2 不允许的跳转

- 在设备详情里放“进入配置管理”这类跨一级菜单暗示按钮。
- 在 `识别配置` 中塞入单设备配置管理入口。
- 在 `诊断` 中承担日常设备运维动作。
- 在一级菜单之间互相做“兜底式导航”，例如通过一个页面去弥补另一个页面职责不清的问题。

原则是：页面只完成自己领域内的事情，跳转只发生在真实的上下游关系之间。

## 7. 关键主流程

### 7.1 查看单设备状态

`总览 / 设备列表 -> 点击设备 -> 设备详情 -> 概览 / 运行与服务 / 日志与指标`

### 7.2 修改单设备配置

`设备列表 -> 点击设备 -> 设备详情 -> 设备配置 -> 查看 / 修改 / 上传 / 回滚`

### 7.3 批量下发识别配置

`识别配置 -> 选择模板或业务配置 -> 发起下发 -> 任务页确认目标设备 -> 创建任务 -> 任务详情查看结果`

也允许从 `设备` 列表中批量选中设备后发起动作，但最终都应落到 `任务` 域中查看执行结果。

### 7.4 诊断异常设备

`总览异常设备 / 设备列表异常筛选 -> 设备详情 -> 日志与指标`

若需要平台级排查，则进入 `诊断` 域查看系统状态与审计记录。

## 8. 对现有页面的重组建议

### 8.1 保留并重定位

- `dashboard`：保留，但弱化设备列表内容，强化 KPI / 告警 / 最近任务 / 异常设备。
- `devices`：保留，作为设备 fleet 主页。
- `device`：升级为设备详情工作台主页面。
- `asset_templates / asset_profiles / asset_overlays`：保留并继续作为资产库内部页面。
- `tasks / task`：保留并前置为一级模块。
- `system / audit / logs / diagnostics`：整合进 `诊断` 域。

### 8.2 下沉或移除

- `device-config`：不再作为一级模块；其能力并入设备详情的“设备配置”标签。
- `device_control`：改造成设备详情工作台的一个子区，而不是独立导航页。
- `recognition`：若只是旧入口，应并入 `识别配置` 资产域。
- `api`：保留为高级调试页，但收纳于 `诊断` 域，不参与主业务导航。

### 8.3 过渡期兼容

为避免立即打断现有链接，旧 URL 可以先保留，但应全部做以下处理之一：

- 301 / 302 到新位置
- 继续可访问，但使用新的页面骨架和导航文案

要求用户在视觉上始终感知到自己位于新的信息架构中。

## 9. 视觉与布局原则

这次不是单纯换皮，但布局要服务于新结构。

原则如下：

- 一级菜单名称简短、稳定、无歧义。
- 每个页面首屏只解决一个主要问题。
- 同一页面内优先使用“列表 + 详情工作区”或“列表 + 编辑区”的结构。
- 避免全页大表格里塞满按钮和表单。
- 批量动作先选对象，再确认动作，再进入任务结果；不要在列表页直接堆所有操作。
- 单设备详情应呈现为工作台，而不是一组相互无关的卡片。

## 10. 测试与验收

本次重构至少需要以下验证：

1. 一级导航只出现：`总览 / 设备 / 识别配置 / 任务 / 诊断`
2. 不再存在一级菜单 `配置管理`
3. 从 `设备` 进入单设备后，可在设备详情内完成单设备查看与配置相关操作
4. `识别配置` 不出现单设备管理入口
5. `任务` 成为批量动作和历史的唯一主域
6. `诊断` 页面覆盖日志、系统状态、审计三类入口
7. 旧链接访问时不会把用户带回旧的信息架构

建议在 `internal/web/ui_test.go` 中补充信息架构级测试，而不只是页面文案测试。

## 11. 本次实施范围

本轮实施仅处理 UI 信息架构和页面职责重组，不新增后端业务能力。

具体包括：

- 一级导航重组
- 现有页面合并、迁移、重命名
- 设备详情升级为单设备工作台
- 任务和诊断域的导航与入口整理
- 旧入口兼容跳转
- 相关测试更新

明确不包括：

- 新的设备分组后端能力
- 新的告警引擎
- 新的权限系统
- 新的 API 设计

## 12. 推荐实施顺序

1. 先重组一级导航和路由映射
2. 再把单设备配置与服务控制并入设备详情工作台
3. 再独立整理 `任务` 域
4. 最后收口 `诊断` 域和旧入口兼容

这样可以在保持现有功能可用的前提下，逐步把用户心智迁移到新的主结构。
