| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- ---
- description: Ai-DOP 新功能菜单须登记 FUNC-Sn-nnn 编号并按方案 A 展示(侧栏短标+映射表,不改 Title)
- alwaysApply: true
- ---
- # Ai-DOP 功能菜单编号(FUNC)与导航展示
- 凡新增或调整 **Ai-DOP 业务叶子菜单**(`sys_menu` 种子、前端隐藏路由、智慧运营看板子项等),须同步登记 **FUNC 编号**,展示遵循 **方案 A**(已实现,勿另起一套)。
- ## 编号格式
- | 类型 | 格式 | 示例 |
- |------|------|------|
- | 功能设计 | `FUNC-Sn-nnn` | `FUNC-S1-003` |
- | 模块 | `n` = 0–9 | S0 运营建模 … S9 运营指标 |
- | 序号 | `nnn` = 三位递增 | 同模块内不重用、不重排已有号 |
- 业务需求 `REQ-Sn-nnn`、测试 `TC-Sn-nnn` 与三联对照表对齐,见 [`doc/requirements/README.md`](doc/requirements/README.md)。
- ## 新菜单必须做的登记(缺一不可)
- 1. **`Web/src/constants/aidopFuncCodes.ts`**
- 在 `FUNC_DEFS` 增加一条:`code`、`name`(与功能设计/菜单语义一致)、`paths`(绝对 path)、`names`(`route.name`,有则填)。
- 2. **有需求文档的模块(S0–S4 等)**
- 同步更新对应 `doc/requirements/Sn-*/` 三联对照表 / 功能设计说明(**先查已有编号,禁止擅自改号**)。
- 3. **尚无三联文档的模块(S5–S9 等)**
- 在该模块已用最大序号 **+1** 扩展(当前实现见 `aidopFuncCodes.ts`);后续补文档时**沿用已分配 FUNC**,不整体重排。
- 4. **`sys_menu` 种子**(`Admin.NET.Plugin.AiDOP/SeedData/SysMenuSeedData.cs`)
- `Title` **只写业务短名**;`Remark` 可写业务说明,**不要把** `FUNC-Sn-nnn` 写入 `Title`。
- 登录后 `patchAidopMenuTitles` → `patchAidopFuncCodes` 会自动注入 `meta.funcCode/funcName/funcSeq`,侧栏/搜索/面包屑/`AidopDemoShell` 无需再改展示逻辑。
- ## 方案 A 展示(禁止加长 Title)
- | 位置 | 做法 |
- |------|------|
- | 侧栏叶子 | 业务名 + 短标 `[nnn]`;悬停显示 `FUNC-Sn-nnn 功能名` |
- | 目录节点 | **不加**编号 |
- | 面包屑末级 / 页头 | 完整 `FUNC-Sn-nnn`(`AidopDemoShell` 副标题) |
- | 禁止 | `Title = "FUNC-S1-003 订单评审"` 或把编号拼进侧栏主文案 |
- ## 特殊项
- - **同一页面多入口**(如看板在模块目录与智慧运营看板各一条):同一 `FUNC` 可挂多个 `paths`/`names`。
- - **隐藏路由**(表单页、详情页、`isHide`):仍须登记,供标签页与面包屑追溯。
- - **动态 path**(如 `/aidop/s8/exceptions/:id`):登记 path 模板 + `route.name`。
- - **跨模块平台项**(智慧诊断、数据中台):暂归入 **S9 扩展段**(`060+` / `010+`),新增时延续该段序号。
- ## 自检清单(交付前)
- - [ ] `aidopFuncCodes.ts` 已含新 path/name
- - [ ] 未修改已有 FUNC 编号
- - [ ] `sys_menu.Title` 仍为短业务名
- - [ ] 有文档模块已更新三联/功能设计(若本次属正式功能交付)
- - [ ] 未在 `aidopMenuDisplay.ts` 用 `meta.title` 拼接 FUNC 全文(映射表为唯一数据源)
|