# 工业级物联网设备管理平台 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. 最后收口 `诊断` 域和旧入口兼容 这样可以在保持现有功能可用的前提下,逐步把用户心智迁移到新的主结构。