feat: 实现四分组导航与系统管理页面 #68

Closed
opened 2026-08-26 17:18:24 +08:00 by ila · 3 comments
Owner

基本信息

  • 类型:功能 / Admin UI
  • 所属 Epic:#3
  • 所属 MVP / 版本:#35 / MVP-2 后续可用性优化
  • 阶段:已完成
  • 前置工单:#66、#67
  • 设计证据:prototypes/59/v1/index.html,v1,用户于 2026-08-26 确认通过

原始需求

  • 来源:用户对话
  • 提出时间:2026-08-25;生产实施确认:2026-08-26
  • 脱敏摘要:管理端左侧模块需要合理中文分组,并显示适合 Chorus 的 go-admin 系统模块,降低上手成本。

目标

按已确认 v1 将 Admin UI 接入四分组动态菜单,适配管理员与角色页面,制作菜单结构、接口清单和登录日志三个只读页面,并保持现有 Chorus 业务页面可用。

已确认方案

  • 菜单名称、顺序、图标、展开/收起和当前项高亮与 v1 一致。
  • “终端用户”与“管理员账号”不混用名称。
  • 管理员页面移除部门树、岗位、手机号/邮箱等当前项目不需要的输入和依赖;展示当前账号/最后管理员保护状态。
  • 角色页面展示内置 chorus_operator 保护,禁用危险操作。
  • 菜单、接口、登录日志页面移除新增、编辑、删除、选择删除等入口,并显示只读提示。
  • 只恢复明确纳入的 5 个 go-admin 模块;被排除模块不进入侧栏或路由入口。
  • 覆盖加载、空数据、无权限和接口错误状态;窄屏侧栏可达。

非目标

  • 不修改数据库、migration 或 Go 后端。
  • 不恢复部门、岗位、字典、参数、操作日志、任务、监控或开发工具。
  • 不重新设计现有 Chorus 业务页面主体。

验收标准

  • 四组 13 个入口与 v1 一致,动态路由无模块路径错误。
  • 管理员和角色页面符合后端保护边界且不依赖被排除模块。
  • 三个只读页面没有任何写操作入口,并能处理加载/空/无权限/错误状态。
  • 桌面与窄屏无重叠、文字截断或不可达入口,键盘焦点可见。
  • Admin UI 单元测试、lint、生产构建和浏览器 E2E 通过。
  • 页面与测试不含真实账号、IP、凭据或生产数据。

风险与回退

  • 风险:动态组件路径或权限 key 不一致会造成白屏/403;隐藏按钮不能替代后端授权。
  • 回退:回退本工单前端提交,后端和 migration 可独立保留;必要时再按依赖顺序回退。

文档影响

页面入口、导航和操作流程发生变化,需要更新 Architecture-and-Code-Map、Common-Changes 和相关排错说明。

## 基本信息 - 类型:功能 / Admin UI - 所属 Epic:#3 - 所属 MVP / 版本:#35 / MVP-2 后续可用性优化 - 阶段:已完成 - 前置工单:#66、#67 - 设计证据:`prototypes/59/v1/index.html`,v1,用户于 2026-08-26 确认通过 ## 原始需求 - 来源:用户对话 - 提出时间:2026-08-25;生产实施确认:2026-08-26 - 脱敏摘要:管理端左侧模块需要合理中文分组,并显示适合 Chorus 的 go-admin 系统模块,降低上手成本。 ## 目标 按已确认 v1 将 Admin UI 接入四分组动态菜单,适配管理员与角色页面,制作菜单结构、接口清单和登录日志三个只读页面,并保持现有 Chorus 业务页面可用。 ## 已确认方案 - 菜单名称、顺序、图标、展开/收起和当前项高亮与 v1 一致。 - “终端用户”与“管理员账号”不混用名称。 - 管理员页面移除部门树、岗位、手机号/邮箱等当前项目不需要的输入和依赖;展示当前账号/最后管理员保护状态。 - 角色页面展示内置 `chorus_operator` 保护,禁用危险操作。 - 菜单、接口、登录日志页面移除新增、编辑、删除、选择删除等入口,并显示只读提示。 - 只恢复明确纳入的 5 个 go-admin 模块;被排除模块不进入侧栏或路由入口。 - 覆盖加载、空数据、无权限和接口错误状态;窄屏侧栏可达。 ## 非目标 - 不修改数据库、migration 或 Go 后端。 - 不恢复部门、岗位、字典、参数、操作日志、任务、监控或开发工具。 - 不重新设计现有 Chorus 业务页面主体。 ## 验收标准 - [x] 四组 13 个入口与 v1 一致,动态路由无模块路径错误。 - [x] 管理员和角色页面符合后端保护边界且不依赖被排除模块。 - [x] 三个只读页面没有任何写操作入口,并能处理加载/空/无权限/错误状态。 - [x] 桌面与窄屏无重叠、文字截断或不可达入口,键盘焦点可见。 - [x] Admin UI 单元测试、lint、生产构建和浏览器 E2E 通过。 - [x] 页面与测试不含真实账号、IP、凭据或生产数据。 ## 风险与回退 - 风险:动态组件路径或权限 key 不一致会造成白屏/403;隐藏按钮不能替代后端授权。 - 回退:回退本工单前端提交,后端和 migration 可独立保留;必要时再按依赖顺序回退。 ## 文档影响 页面入口、导航和操作流程发生变化,需要更新 Architecture-and-Code-Map、Common-Changes 和相关排错说明。
Author
Owner

2026-08-26 开始实施。#67 后端契约已完成并通过 Admin 全量 Go 测试,提交 3898aae。本工单按已确认原型 prototypes/59/v1/index.html 适配现有 Vue 管理端。

2026-08-26 开始实施。#67 后端契约已完成并通过 Admin 全量 Go 测试,提交 `3898aae`。本工单按已确认原型 `prototypes/59/v1/index.html` 适配现有 Vue 管理端。
Author
Owner

实施完成,待验收(2026-08-26)

  • 实现提交:2482ea3
  • 完成四分组、13 个入口、管理员/角色适配,以及菜单结构、接口清单、登录日志三个只读页面。
  • 覆盖加载、空数据、403、接口错误、桌面与窄屏;最终截图已人工检查,无横向溢出或入口遮挡。
  • Admin UI 单元测试 16 suites / 65 tests 通过;Playwright E2E 2 项通过;lint 0 error(保留 98 条既有 warning);生产构建通过。
  • 任务归档:Wiki Task-68-实现四分组导航与系统管理页面,revision 2723f8988a567c2507f763184a53292c373b613b。
  • 页面与测试使用模拟数据,未包含真实账号、IP、凭据或生产数据。

当前阶段:待验收。用户明确验收前保持工单打开。

## 实施完成,待验收(2026-08-26) - 实现提交:`2482ea3` - 完成四分组、13 个入口、管理员/角色适配,以及菜单结构、接口清单、登录日志三个只读页面。 - 覆盖加载、空数据、403、接口错误、桌面与窄屏;最终截图已人工检查,无横向溢出或入口遮挡。 - Admin UI 单元测试 16 suites / 65 tests 通过;Playwright E2E 2 项通过;lint 0 error(保留 98 条既有 warning);生产构建通过。 - 任务归档:Wiki `Task-68-实现四分组导航与系统管理页面`,revision `2723f8988a567c2507f763184a53292c373b613b`。 - 页面与测试使用模拟数据,未包含真实账号、IP、凭据或生产数据。 当前阶段:待验收。用户明确验收前保持工单打开。
Author
Owner

用户验收通过

  • 验收时间:2026-08-27 14:57:05 +08:00
  • 验收人:用户
  • 结论:用户明确确认本工单通过验收,接受当前实现、部署与已记录的验证结果。
  • 文档:沿用工单中已经完成的 Wiki/镜像处理;没有新的长期事实变化。
  • 状态:已完成,关闭工单。
## 用户验收通过 - 验收时间:2026-08-27 14:57:05 +08:00 - 验收人:用户 - 结论:用户明确确认本工单通过验收,接受当前实现、部署与已记录的验证结果。 - 文档:沿用工单中已经完成的 Wiki/镜像处理;没有新的长期事实变化。 - 状态:已完成,关闭工单。
ila closed this issue 2026-08-27 14:57:23 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/chorus#68