feat: 管理端导航中文化并统一页面标题 #49

Closed
opened 2026-08-24 16:27:10 +08:00 by ila · 3 comments
Owner

基本信息

  • 类型:界面优化 / 菜单数据迁移
  • 所属 Epic:#3
  • 所属 MVP / 版本:#35 / MVP-2
  • 阶段:已完成

原始需求

  • 来源:用户对话
  • 提出时间:2026-08-24
  • 关键原话:“admin页面左边导航栏的模块名是英文,改成合理的中文名,分析是否要分组。”
  • 用户确认:2026-08-24 确认采用 Agent 建议方案“中文化、保持平铺、不增加分组”。

要解决什么

当前管理 API 返回的 Chorus 左侧菜单为英文,页面标题又部分中英混用,降低中文运营人员的扫描效率。将菜单、面包屑和对应页面主标题统一为清晰中文,同时保持现有路由、权限和导航层级不变。

做什么 / 不做什么

  • 做:按稳定 path 更新 Chorus 根菜单及 8 个业务菜单的 title、breadcrumb 和确定性 sort;同步 Provider、Prompt、Provider Health 三个页面主标题及紧邻说明中的核心术语。
  • 做:兼容当前数据库只返回 7 个子菜单的状态;迁移顺序保证 /chorus/api-keys 存在时改为中文并排到用户管理之后。
  • 不做:不新增“上游配置 / 运行监控 / 用户与接口”等分组,不修改 parent_id、paths、menu_name、path、component、permission、API 或业务行为。
  • 不做:不顺手补齐当前数据库未返回的 API 密钥菜单,也不修改其他系统菜单。

已确认命名

path 中文标题
/chorus Chorus 运营
/chorus/providers 上游服务商
/chorus/models 模型配置
/chorus/routes 路由策略
/chorus/templates 提示词模板
/chorus/health 上游健康
/chorus/generations 生成记录
/chorus/users 用户管理
/chorus/api-keys API 密钥

依赖与并行

  • 前置工单:#41(已完成,提供 MVP-2 菜单迁移基线)。
  • 是否允许与 #43~#46 并行:是。
  • 原因:本工单只按稳定 path 调整显示名称和排序,不改变接口、数据契约、权限或组件路径。

子项目影响

  • 仅影响的子项目 / 交付单元:migrations/、admin-ui/。
  • 是否跨子项目:是,但只有菜单种子与对应页面显示文案的一致性。
  • 是否修改共享接口或契约:否。
  • 各子项目验证:迁移 up/down/up 与菜单 API;admin-ui 单元测试、构建和实际侧边栏检查。

设计与原型门禁

  • 修改类型:现有界面小范围导航文案与标题调整。
  • 所需设计证据:现有管理端导航结构、菜单 API 返回与本工单命名表。
  • 状态:已确认。
  • 确认人、时间和覆盖范围:用户,2026-08-24;覆盖中文命名、保持平铺和排序。
  • 无需完整原型原因:不改变导航层级、路径、页面结构、交互、权限、状态或异常处理。

验收标准

  • 左侧 Chorus 根菜单和业务子菜单显示为已确认中文名。
  • 顺序固定为上游服务商、模型配置、路由策略、提示词模板、上游健康、生成记录、用户管理、API 密钥。
  • 页面主标题与导航核心术语一致,不再显示 Provider/Prompt 英文模块名。
  • 新迁移 up/down 可逆,且不修改菜单路径、组件、权限和父子关系。
  • 本机 MySQL 8 完成 up/down/up,并通过菜单 API 返回验证。
  • admin-ui 受影响测试和生产构建通过,侧边栏无截断或运行时错误。

验证方式

  • go test ./migrations
  • 隔离 MySQL 8 执行 migration up/down/up,并查询 sys_menu 稳定 path。
  • go -C admin test ./...
  • pnpm --dir admin-ui test:unit -- --runInBand(按现有脚本调整)
  • pnpm --dir admin-ui build:prod
  • 使用真实本地 Admin API 登录并读取 /api/v1/menurole;按可用浏览器能力检查实际侧边栏。

风险和回退

  • 风险:直接编辑已发布迁移不会更新现有数据库;因此必须新增迁移。中文标题长度可能造成侧边栏截断,需要实际检查。
  • 回退:执行 down 恢复英文 title、breadcrumb 和原排序;前端标题提交可独立回退。

文档影响

  • 不影响长期文档:只调整管理端显示名称,不改变稳定业务、架构、接口、配置或操作流程。

交付文档影响

  • 无交付文档影响:管理端内部导航文案调整,不改变对外接口或部署方式。
## 基本信息 - 类型:界面优化 / 菜单数据迁移 - 所属 Epic:#3 - 所属 MVP / 版本:#35 / MVP-2 - 阶段:已完成 ## 原始需求 - 来源:用户对话 - 提出时间:2026-08-24 - 关键原话:“admin页面左边导航栏的模块名是英文,改成合理的中文名,分析是否要分组。” - 用户确认:2026-08-24 确认采用 Agent 建议方案“中文化、保持平铺、不增加分组”。 ## 要解决什么 当前管理 API 返回的 Chorus 左侧菜单为英文,页面标题又部分中英混用,降低中文运营人员的扫描效率。将菜单、面包屑和对应页面主标题统一为清晰中文,同时保持现有路由、权限和导航层级不变。 ## 做什么 / 不做什么 - 做:按稳定 path 更新 Chorus 根菜单及 8 个业务菜单的 title、breadcrumb 和确定性 sort;同步 Provider、Prompt、Provider Health 三个页面主标题及紧邻说明中的核心术语。 - 做:兼容当前数据库只返回 7 个子菜单的状态;迁移顺序保证 `/chorus/api-keys` 存在时改为中文并排到用户管理之后。 - 不做:不新增“上游配置 / 运行监控 / 用户与接口”等分组,不修改 parent_id、paths、menu_name、path、component、permission、API 或业务行为。 - 不做:不顺手补齐当前数据库未返回的 API 密钥菜单,也不修改其他系统菜单。 ## 已确认命名 | path | 中文标题 | |---|---| | `/chorus` | Chorus 运营 | | `/chorus/providers` | 上游服务商 | | `/chorus/models` | 模型配置 | | `/chorus/routes` | 路由策略 | | `/chorus/templates` | 提示词模板 | | `/chorus/health` | 上游健康 | | `/chorus/generations` | 生成记录 | | `/chorus/users` | 用户管理 | | `/chorus/api-keys` | API 密钥 | ## 依赖与并行 - 前置工单:#41(已完成,提供 MVP-2 菜单迁移基线)。 - 是否允许与 #43~#46 并行:是。 - 原因:本工单只按稳定 path 调整显示名称和排序,不改变接口、数据契约、权限或组件路径。 ## 子项目影响 - 仅影响的子项目 / 交付单元:`migrations/`、`admin-ui/`。 - 是否跨子项目:是,但只有菜单种子与对应页面显示文案的一致性。 - 是否修改共享接口或契约:否。 - 各子项目验证:迁移 up/down/up 与菜单 API;admin-ui 单元测试、构建和实际侧边栏检查。 ## 设计与原型门禁 - 修改类型:现有界面小范围导航文案与标题调整。 - 所需设计证据:现有管理端导航结构、菜单 API 返回与本工单命名表。 - 状态:已确认。 - 确认人、时间和覆盖范围:用户,2026-08-24;覆盖中文命名、保持平铺和排序。 - 无需完整原型原因:不改变导航层级、路径、页面结构、交互、权限、状态或异常处理。 ## 验收标准 - [x] 左侧 Chorus 根菜单和业务子菜单显示为已确认中文名。 - [x] 顺序固定为上游服务商、模型配置、路由策略、提示词模板、上游健康、生成记录、用户管理、API 密钥。 - [x] 页面主标题与导航核心术语一致,不再显示 Provider/Prompt 英文模块名。 - [x] 新迁移 up/down 可逆,且不修改菜单路径、组件、权限和父子关系。 - [x] 本机 MySQL 8 完成 up/down/up,并通过菜单 API 返回验证。 - [x] admin-ui 受影响测试和生产构建通过,侧边栏无截断或运行时错误。 ## 验证方式 - `go test ./migrations` - 隔离 MySQL 8 执行 migration up/down/up,并查询 `sys_menu` 稳定 path。 - `go -C admin test ./...` - `pnpm --dir admin-ui test:unit -- --runInBand`(按现有脚本调整) - `pnpm --dir admin-ui build:prod` - 使用真实本地 Admin API 登录并读取 `/api/v1/menurole`;按可用浏览器能力检查实际侧边栏。 ## 风险和回退 - 风险:直接编辑已发布迁移不会更新现有数据库;因此必须新增迁移。中文标题长度可能造成侧边栏截断,需要实际检查。 - 回退:执行 down 恢复英文 title、breadcrumb 和原排序;前端标题提交可独立回退。 ## 文档影响 - [x] 不影响长期文档:只调整管理端显示名称,不改变稳定业务、架构、接口、配置或操作流程。 ## 交付文档影响 - [x] 无交付文档影响:管理端内部导航文案调整,不改变对外接口或部署方式。
Author
Owner

实施完成,等待验收

  • 提交:773ed74 feat: 中文化管理端导航 (#49),已推送到 origin/main。
  • 菜单:新增 000007 可逆迁移,按稳定 path 更新中文标题、面包屑和顺序,不改层级、路由、组件或权限。
  • 页面:统一“上游服务商”“提示词模板”“上游健康”三个原中英混用的主标题。
  • 分组结论:本期维持单层菜单;当前项目数量适合直接扫描,分组会增加点击且需要改动导航结构和权限数据。待稳定模块达到约 10~12 个并出现审计、限流等管理页时再评估。
  • 当前本机库:为避免在 #46 页面未完成前提前启用 migration 000006 的 API 密钥菜单,仅对现有 version 5 菜单执行了 000007 的等价 DML;schema version 仍为 5、dirty=0。后续正式迁移至 7 时可安全重复执行。

验证证据

  • go test ./migrations:通过。
  • 隔离 MySQL 8 migration up/down/up(最终 version 7):通过。
  • go test ./...、go vet ./...、go -C admin test ./...:通过。
  • pnpm --dir admin-ui test:unit -- --runInBand:12 个套件、43 个测试通过。
  • NODE_OPTIONS=--max-old-space-size=4096 pnpm --dir admin-ui build:prod:通过;仅有项目既有告警。
  • 本机 /api/v1/menurole:已返回已确认的 7 个中文菜单和正确顺序;/chorus/api-keys 将在 000006 正式启用后由 000007 中文化。
  • python dev_scripts/harness.py check --strict、git diff --check:通过。

待人工验收

浏览器控制能力当前不可用,未生成侧边栏截图。请在 http://127.0.0.1:9528/ 刷新或重新登录,确认实际侧边栏无截断和运行时错误;因此最后一项视觉验收暂不勾选。

长期文档无影响,不更新 Wiki,也不导出任务归档。

## 实施完成,等待验收 - 提交:`773ed74 feat: 中文化管理端导航 (#49)`,已推送到 `origin/main`。 - 菜单:新增 `000007` 可逆迁移,按稳定 path 更新中文标题、面包屑和顺序,不改层级、路由、组件或权限。 - 页面:统一“上游服务商”“提示词模板”“上游健康”三个原中英混用的主标题。 - 分组结论:本期维持单层菜单;当前项目数量适合直接扫描,分组会增加点击且需要改动导航结构和权限数据。待稳定模块达到约 10~12 个并出现审计、限流等管理页时再评估。 - 当前本机库:为避免在 #46 页面未完成前提前启用 migration 000006 的 API 密钥菜单,仅对现有 version 5 菜单执行了 `000007` 的等价 DML;schema version 仍为 5、dirty=0。后续正式迁移至 7 时可安全重复执行。 ### 验证证据 - `go test ./migrations`:通过。 - 隔离 MySQL 8 migration up/down/up(最终 version 7):通过。 - `go test ./...`、`go vet ./...`、`go -C admin test ./...`:通过。 - `pnpm --dir admin-ui test:unit -- --runInBand`:12 个套件、43 个测试通过。 - `NODE_OPTIONS=--max-old-space-size=4096 pnpm --dir admin-ui build:prod`:通过;仅有项目既有告警。 - 本机 `/api/v1/menurole`:已返回已确认的 7 个中文菜单和正确顺序;`/chorus/api-keys` 将在 000006 正式启用后由 000007 中文化。 - `python dev_scripts/harness.py check --strict`、`git diff --check`:通过。 ### 待人工验收 浏览器控制能力当前不可用,未生成侧边栏截图。请在 `http://127.0.0.1:9528/` 刷新或重新登录,确认实际侧边栏无截断和运行时错误;因此最后一项视觉验收暂不勾选。 长期文档无影响,不更新 Wiki,也不导出任务归档。
Author
Owner

补充运行检查:绕过本机 HTTP 代理后,http://127.0.0.1:9528/ 返回 200,当前 /js/app.js 返回 200(约 5 MB)且包含“上游服务商”“提示词模板”“上游健康”。此前的空响应由本机代理 127.0.0.1:1080 引起,并非 Admin UI 服务异常。实际视觉截断仍留待人工验收。

补充运行检查:绕过本机 HTTP 代理后,`http://127.0.0.1:9528/` 返回 200,当前 `/js/app.js` 返回 200(约 5 MB)且包含“上游服务商”“提示词模板”“上游健康”。此前的空响应由本机代理 `127.0.0.1:1080` 引起,并非 Admin UI 服务异常。实际视觉截断仍留待人工验收。
Author
Owner

用户于 2026-08-24 明确回复“#49 验收通过”。全部验收项确认完成;实现提交 773ed74 已推送,长期文档无变化,本工单关闭。

用户于 2026-08-24 明确回复“#49 验收通过”。全部验收项确认完成;实现提交 `773ed74` 已推送,长期文档无变化,本工单关闭。
ila closed this issue 2026-08-24 16:44:48 +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#49