design: 管理端分组导航与适用系统模块原型 #59

Closed
opened 2026-08-25 15:50:29 +08:00 by ila · 4 comments
Owner

基本信息

  • 类型:设计 / 管理端信息架构
  • 所属 Epic:#3
  • 所属 MVP / 版本:#35 / MVP-2 后续可用性优化
  • 阶段:已完成

原始需求

  • 来源:用户对话
  • 提出与确认时间:2026-08-25
  • 关键原话:“admin登录后左边菜单栏只有一个chorus运营组,不好上手,把这些模块分到合适的组里。然后把go-admin默认的模块适合当前项目的都显示出来使用。”
  • 用户确认:2026-08-25 确认先按 Agent 建议建立工单;本工单先完成可审阅原型,不直接修改生产菜单、权限或数据库。

背景与问题

当前数据库仅有一个“Chorus 运营”一级菜单,下面平铺 8 个业务模块。管理端前端虽然保留部分 go-admin 默认页面,但系统菜单、API 权限和 Casbin 授权未完整种入;部分默认页面还依赖 Chorus 不使用的部门、岗位、字典和参数配置。直接恢复全部默认菜单会产生空页面、403、无效按钮和配置事实源漂移。

目标

设计一套适合 Chorus 运营与单人维护场景的管理端侧边栏信息架构,并用本地可浏览 HTML 原型确认分组、命名、顺序、展开状态和系统模块边界,为后续生产实现拆分提供设计证据。

已确认的建议范围

导航分组

  1. 生成配置:上游服务商、模型配置、路由策略、提示词模板。
  2. 运行监控:上游健康、生成记录。
  3. 用户与访问:终端用户、API 密钥。
  4. 系统管理:管理员账号、角色权限、菜单结构、接口清单、登录日志。

将现有“用户管理”改名为“终端用户”,与 go-admin sys_user 管理员账号明确区分。

纳入原型的 go-admin 模块及行为

  • 管理员账号:后续生产页应去掉部门、岗位、无关字典/参数依赖,并设计当前账号与最后一个管理员保护。
  • 角色权限:保留角色与授权能力,设计内置 chorus_operator 保护提示。
  • 菜单结构:只读展示;生产菜单继续由版本化 migration 管理。
  • 接口清单:只读展示 API 与权限映射。
  • 登录日志:只读展示,不在页面删除审计记录。

明确不纳入

  • 部门管理、岗位管理:当前无组织与部门数据权限需求。
  • 字典管理、参数配置:不是 Chorus 有效配置事实来源。
  • 操作日志:当前实现可能记录请求参数,先保持关闭;需另行完成脱敏与元数据化设计后才能启用。
  • 定时任务、服务监控:后端未完整接入且不符合当前 worker 架构。
  • 代码生成、页面构建、Swagger 等开发工具:生产管理端继续禁止暴露。

本工单交付物

  • prototypes/<本工单号>/v1/index.html 本地可浏览原型,版本目录内资源使用相对路径。
  • 原型至少覆盖:四个一级分组、展开/收起、当前项高亮、菜单名称与顺序、只读模块标识或页面入口状态、窄屏侧栏行为。
  • 工单记录原型路径、版本、确认范围、验证结果和截图/浏览器验证限制。
  • 输出后续生产实现建议拆分,包括菜单 migration、系统权限、管理员账号适配和安全日志边界。

非目标

  • 不在本工单修改 sys_menu、sys_api、sys_role_menu、sys_casbin_rule 或现有数据库。
  • 不修改 admin/admin-ui 生产代码,不启用日志数据库写入。
  • 不实施管理员、角色、菜单或接口 CRUD。
  • 不恢复任何被明确排除的 go-admin 默认模块。

设计状态与门禁

  • 设计类型:重大导航层级变化和系统模块入口增加。
  • 当前状态:已确认文字范围,原型待制作。
  • 用户确认原型前,不建立或放行生产实现工单,不修改生产菜单、权限和页面。
  • 已确认 HTML 快照不得原位覆盖;结构、流程、权限或异常处理变化时创建新版本并重新确认。

验收标准

  • v1 HTML 原型保存到本工单对应目录,可直接在本地浏览且资源完整。
  • 四个一级分组、模块名称、顺序和展开交互与已确认范围一致。
  • “终端用户”与“管理员账号”语义明确,不出现两个“用户管理”。
  • 菜单结构、接口清单、登录日志清楚表达只读边界。
  • 被排除模块不出现在侧边栏,原型不包含凭据、账号、个人信息或生产数据。
  • 至少验证桌面常用视口与窄屏侧栏,无文字截断、重叠或不可达入口。
  • 工单给出后续生产实现拆分、风险、回退与测试建议,并停在待验收等待用户确认。

风险与回退

  • 风险:分组过多会增加点击层级;系统模块若按默认行为呈现会误导用户认为可直接编辑迁移管理的数据。
  • 设计控制:一级分组限制为四个;同一时刻保持当前分组可识别;只读模块在页面状态中明确体现,不依赖菜单名猜测。
  • 回退:原型不影响生产;未获确认时直接放弃该版本,现有平铺导航保持不变。

验证方式

  • 本地直接打开 HTML 快照,检查所有菜单展开、收起和跳转状态。
  • 使用浏览器验证桌面与窄屏视口、键盘焦点、当前项高亮和文字完整性。
  • 检查原型目录只使用相对资源且不包含敏感数据。

文档影响

  • 本工单无长期核心文档变更;设计结论先记录在工单和版本化原型。
  • 原型确认并进入生产实现后,再按实际权限、菜单结构和操作流程更新 Architecture-and-Code-Map、Business-Rules-and-Glossary 或相关运维文档。
## 基本信息 - 类型:设计 / 管理端信息架构 - 所属 Epic:#3 - 所属 MVP / 版本:#35 / MVP-2 后续可用性优化 - 阶段:已完成 ## 原始需求 - 来源:用户对话 - 提出与确认时间:2026-08-25 - 关键原话:“admin登录后左边菜单栏只有一个chorus运营组,不好上手,把这些模块分到合适的组里。然后把go-admin默认的模块适合当前项目的都显示出来使用。” - 用户确认:2026-08-25 确认先按 Agent 建议建立工单;本工单先完成可审阅原型,不直接修改生产菜单、权限或数据库。 ## 背景与问题 当前数据库仅有一个“Chorus 运营”一级菜单,下面平铺 8 个业务模块。管理端前端虽然保留部分 go-admin 默认页面,但系统菜单、API 权限和 Casbin 授权未完整种入;部分默认页面还依赖 Chorus 不使用的部门、岗位、字典和参数配置。直接恢复全部默认菜单会产生空页面、403、无效按钮和配置事实源漂移。 ## 目标 设计一套适合 Chorus 运营与单人维护场景的管理端侧边栏信息架构,并用本地可浏览 HTML 原型确认分组、命名、顺序、展开状态和系统模块边界,为后续生产实现拆分提供设计证据。 ## 已确认的建议范围 ### 导航分组 1. **生成配置**:上游服务商、模型配置、路由策略、提示词模板。 2. **运行监控**:上游健康、生成记录。 3. **用户与访问**:终端用户、API 密钥。 4. **系统管理**:管理员账号、角色权限、菜单结构、接口清单、登录日志。 将现有“用户管理”改名为“终端用户”,与 go-admin `sys_user` 管理员账号明确区分。 ### 纳入原型的 go-admin 模块及行为 - 管理员账号:后续生产页应去掉部门、岗位、无关字典/参数依赖,并设计当前账号与最后一个管理员保护。 - 角色权限:保留角色与授权能力,设计内置 `chorus_operator` 保护提示。 - 菜单结构:只读展示;生产菜单继续由版本化 migration 管理。 - 接口清单:只读展示 API 与权限映射。 - 登录日志:只读展示,不在页面删除审计记录。 ### 明确不纳入 - 部门管理、岗位管理:当前无组织与部门数据权限需求。 - 字典管理、参数配置:不是 Chorus 有效配置事实来源。 - 操作日志:当前实现可能记录请求参数,先保持关闭;需另行完成脱敏与元数据化设计后才能启用。 - 定时任务、服务监控:后端未完整接入且不符合当前 worker 架构。 - 代码生成、页面构建、Swagger 等开发工具:生产管理端继续禁止暴露。 ## 本工单交付物 - `prototypes/<本工单号>/v1/index.html` 本地可浏览原型,版本目录内资源使用相对路径。 - 原型至少覆盖:四个一级分组、展开/收起、当前项高亮、菜单名称与顺序、只读模块标识或页面入口状态、窄屏侧栏行为。 - 工单记录原型路径、版本、确认范围、验证结果和截图/浏览器验证限制。 - 输出后续生产实现建议拆分,包括菜单 migration、系统权限、管理员账号适配和安全日志边界。 ## 非目标 - 不在本工单修改 `sys_menu`、`sys_api`、`sys_role_menu`、`sys_casbin_rule` 或现有数据库。 - 不修改 admin/admin-ui 生产代码,不启用日志数据库写入。 - 不实施管理员、角色、菜单或接口 CRUD。 - 不恢复任何被明确排除的 go-admin 默认模块。 ## 设计状态与门禁 - 设计类型:重大导航层级变化和系统模块入口增加。 - 当前状态:已确认文字范围,原型待制作。 - 用户确认原型前,不建立或放行生产实现工单,不修改生产菜单、权限和页面。 - 已确认 HTML 快照不得原位覆盖;结构、流程、权限或异常处理变化时创建新版本并重新确认。 ## 验收标准 - [x] v1 HTML 原型保存到本工单对应目录,可直接在本地浏览且资源完整。 - [x] 四个一级分组、模块名称、顺序和展开交互与已确认范围一致。 - [x] “终端用户”与“管理员账号”语义明确,不出现两个“用户管理”。 - [x] 菜单结构、接口清单、登录日志清楚表达只读边界。 - [x] 被排除模块不出现在侧边栏,原型不包含凭据、账号、个人信息或生产数据。 - [x] 至少验证桌面常用视口与窄屏侧栏,无文字截断、重叠或不可达入口。 - [x] 工单给出后续生产实现拆分、风险、回退与测试建议,并停在待验收等待用户确认。 ## 风险与回退 - 风险:分组过多会增加点击层级;系统模块若按默认行为呈现会误导用户认为可直接编辑迁移管理的数据。 - 设计控制:一级分组限制为四个;同一时刻保持当前分组可识别;只读模块在页面状态中明确体现,不依赖菜单名猜测。 - 回退:原型不影响生产;未获确认时直接放弃该版本,现有平铺导航保持不变。 ## 验证方式 - 本地直接打开 HTML 快照,检查所有菜单展开、收起和跳转状态。 - 使用浏览器验证桌面与窄屏视口、键盘焦点、当前项高亮和文字完整性。 - 检查原型目录只使用相对资源且不包含敏感数据。 ## 文档影响 - 本工单无长期核心文档变更;设计结论先记录在工单和版本化原型。 - 原型确认并进入生产实现后,再按实际权限、菜单结构和操作流程更新 Architecture-and-Code-Map、Business-Rules-and-Glossary 或相关运维文档。
Author
Owner

开始实施 #59。

  • 已确认前置:文字范围已由用户确认;本工单仅制作 v1 HTML 原型,不修改生产菜单、权限、数据库或 Admin 代码。
  • 工作区隔离:保留既有 config/local-services.yml、admin/config/settings.yml 和未跟踪截图,不纳入本工单。
  • 计划:核对现有 go-admin 视觉与菜单事实,制作四分组交互原型,完成桌面/窄屏与键盘验证,提交版本化审核证据。
开始实施 #59。 - 已确认前置:文字范围已由用户确认;本工单仅制作 v1 HTML 原型,不修改生产菜单、权限、数据库或 Admin 代码。 - 工作区隔离:保留既有 `config/local-services.yml`、`admin/config/settings.yml` 和未跟踪截图,不纳入本工单。 - 计划:核对现有 go-admin 视觉与菜单事实,制作四分组交互原型,完成桌面/窄屏与键盘验证,提交版本化审核证据。
Author
Owner

实施完成,等待验收

交付物

  • 原型:prototypes/59/v1/index.html
  • 相对资源:./icons.min.js、./favicon.ico
  • 提交:72bcdf2 docs: 固化管理端分组导航原型 (#59)
  • 未修改生产 admin、admin-ui、migration、权限或数据库。

已确认设计内容

  • 四个一级分组依次为:生成配置、运行监控、用户与访问、系统管理。
  • 13 个入口完整呈现;“用户管理”改为“终端用户”,与“管理员账号”明确区分。
  • 菜单结构、接口清单、登录日志在菜单与页面标题中均标记“只读”,页面不提供修改或删除动作。
  • 管理员账号页体现当前账号和最后一个管理员保护;角色权限页体现内置 chorus_operator 保护。
  • 窄屏使用抽屉侧栏,支持按钮、选中菜单和 Esc 关闭;分组标题支持鼠标与键盘展开/收起。
  • 原型使用构造数据,未包含凭据、真实账号、个人信息、Provider 配置或生产数据。

验证证据

  • 浏览器:1440×900 与 375×812;4 个分组、13 个入口、3 个只读入口均正确。
  • 桌面与窄屏页面级 scrollWidth === clientWidth,无横向溢出。
  • 分组折叠/展开、当前项高亮、菜单切换、移动抽屉、Enter 和 Esc 均通过。
  • 全新浏览器标签页控制台 0 条 warning/error;0 个未替换图标。
  • python dev_scripts/harness.py check --strict:通过。
  • python -m unittest discover -s tests -v:43 项通过。
  • python dev_scripts/harness.py sync --check:核心 Wiki 镜像一致。
  • git diff --check:通过。

后续生产实现建议拆分

  1. 菜单 migration 与权限基线:建立四个父菜单、迁移现有 8 个业务入口、补充 5 个系统入口及 sys_api / Casbin / 角色关联,并验证 MySQL up/down 与平铺菜单回退。
  2. 系统模块后端适配与保护:裁剪部门、岗位、字典和参数依赖;实现当前账号、最后一个管理员及 chorus_operator 保护;菜单、接口、登录日志仅开放只读接口。
  3. Admin UI 导航和系统页面:接入四分组动态菜单,适配管理员与角色页面,新增三个只读页面并覆盖加载、空、无权限和错误状态。
  4. 集成与安全验收:验证角色菜单、Casbin、禁止自锁、禁止删除最后管理员、审计不泄露请求参数、桌面/窄屏 E2E 和 migration 回退。

主要风险是 migration 造成菜单丢失、权限映射不完整导致 403、管理员误锁定以及登录日志泄露请求数据。生产实现应保持版本化 migration,可通过 down 恢复当前“Chorus 运营”平铺结构,并分别保留后端与前端提交回退点。

本工单停在待验收;用户确认 v1 前不建立或放行生产实现工单。

## 实施完成,等待验收 ### 交付物 - 原型:`prototypes/59/v1/index.html` - 相对资源:`./icons.min.js`、`./favicon.ico` - 提交:`72bcdf2 docs: 固化管理端分组导航原型 (#59)` - 未修改生产 `admin`、`admin-ui`、migration、权限或数据库。 ### 已确认设计内容 - 四个一级分组依次为:生成配置、运行监控、用户与访问、系统管理。 - 13 个入口完整呈现;“用户管理”改为“终端用户”,与“管理员账号”明确区分。 - 菜单结构、接口清单、登录日志在菜单与页面标题中均标记“只读”,页面不提供修改或删除动作。 - 管理员账号页体现当前账号和最后一个管理员保护;角色权限页体现内置 `chorus_operator` 保护。 - 窄屏使用抽屉侧栏,支持按钮、选中菜单和 `Esc` 关闭;分组标题支持鼠标与键盘展开/收起。 - 原型使用构造数据,未包含凭据、真实账号、个人信息、Provider 配置或生产数据。 ### 验证证据 - 浏览器:1440×900 与 375×812;4 个分组、13 个入口、3 个只读入口均正确。 - 桌面与窄屏页面级 `scrollWidth === clientWidth`,无横向溢出。 - 分组折叠/展开、当前项高亮、菜单切换、移动抽屉、`Enter` 和 `Esc` 均通过。 - 全新浏览器标签页控制台 0 条 warning/error;0 个未替换图标。 - `python dev_scripts/harness.py check --strict`:通过。 - `python -m unittest discover -s tests -v`:43 项通过。 - `python dev_scripts/harness.py sync --check`:核心 Wiki 镜像一致。 - `git diff --check`:通过。 ### 后续生产实现建议拆分 1. **菜单 migration 与权限基线**:建立四个父菜单、迁移现有 8 个业务入口、补充 5 个系统入口及 `sys_api` / Casbin / 角色关联,并验证 MySQL up/down 与平铺菜单回退。 2. **系统模块后端适配与保护**:裁剪部门、岗位、字典和参数依赖;实现当前账号、最后一个管理员及 `chorus_operator` 保护;菜单、接口、登录日志仅开放只读接口。 3. **Admin UI 导航和系统页面**:接入四分组动态菜单,适配管理员与角色页面,新增三个只读页面并覆盖加载、空、无权限和错误状态。 4. **集成与安全验收**:验证角色菜单、Casbin、禁止自锁、禁止删除最后管理员、审计不泄露请求参数、桌面/窄屏 E2E 和 migration 回退。 主要风险是 migration 造成菜单丢失、权限映射不完整导致 403、管理员误锁定以及登录日志泄露请求数据。生产实现应保持版本化 migration,可通过 down 恢复当前“Chorus 运营”平铺结构,并分别保留后端与前端提交回退点。 本工单停在待验收;用户确认 v1 前不建立或放行生产实现工单。
Author
Owner

归档与推送证据

  • Wiki 任务归档:Task-59-管理端分组导航与适用系统模块原型
  • Wiki revision:4a1f1aa32d90ef3a703e8a84b32529ef8ad390f0
  • 核心 Wiki 镜像:归档后 python dev_scripts/harness.py sync --check 通过。
  • 首次归档后复查曾遇到一次 TLS 握手超时;同一配置受控重试完整通过,判定为瞬时远端连接问题。
  • 实现提交:72bcdf2,已推送至 origin/main。
  • 状态:待验收;工单保持开启。任务归档未导出到 docs/task/。
## 归档与推送证据 - Wiki 任务归档:`Task-59-管理端分组导航与适用系统模块原型` - Wiki revision:`4a1f1aa32d90ef3a703e8a84b32529ef8ad390f0` - 核心 Wiki 镜像:归档后 `python dev_scripts/harness.py sync --check` 通过。 - 首次归档后复查曾遇到一次 TLS 握手超时;同一配置受控重试完整通过,判定为瞬时远端连接问题。 - 实现提交:`72bcdf2`,已推送至 `origin/main`。 - 状态:待验收;工单保持开启。任务归档未导出到 `docs/task/`。
ila closed this issue 2026-08-26 16:59:17 +08:00
Author
Owner

用户于 2026-08-26 明确确认 v1 原型通过。

  • Wiki 归档已更新为“已完成”,revision:ba22ae0a3e2ea0261bfd9576feb4cbdb2868b7fc。
  • 已同步父工单 #35、#3 的 #59 子项。
  • 本设计工单关闭;生产实现将使用独立单元工单。
用户于 2026-08-26 明确确认 v1 原型通过。 - Wiki 归档已更新为“已完成”,revision:`ba22ae0a3e2ea0261bfd9576feb4cbdb2868b7fc`。 - 已同步父工单 #35、#3 的 #59 子项。 - 本设计工单关闭;生产实现将使用独立单元工单。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/chorus#59