From 8c407d2c0e90941f3cc842779f282063030dd769 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Wed, 18 Mar 2026 10:32:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20menuType=E5=AD=97=E6=AE=B5=E5=80=BC?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=E4=B8=8E=E5=AD=97=E5=85=B8menu=5Ftype?= =?UTF-8?q?=E4=B8=80=E8=87=B4(D/M/B)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- .../2026-03/2026-03-18_menu_type_fix.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 changelogs/2026-03/2026-03-18_menu_type_fix.md diff --git a/changelogs/2026-03/2026-03-18_menu_type_fix.md b/changelogs/2026-03/2026-03-18_menu_type_fix.md new file mode 100644 index 0000000..809943a --- /dev/null +++ b/changelogs/2026-03/2026-03-18_menu_type_fix.md @@ -0,0 +1,96 @@ +# 菜单管理 - menuType 字段值修正 + +> **日期**: 2026-03-18 +> **后端状态**: ✅ 已完成并部署测试环境 +> **影响接口**: 菜单管理模块所有接口 + +--- + +## 变更说明 + +`menuType` 字段值从英文全称改为与字典 `menu_type` 一致的简码。 + +### 变更前 + +| 值 | 含义 | +|----|------| +| `DIRECTORY` | 目录 | +| `MENU` | 菜单 | +| `BUTTON` | 按钮 | + +### 变更后(与字典 menu_type 一致) + +| 值 | 含义 | +|----|------| +| `D` | 目录 | +| `M` | 菜单 | +| `B` | 按钮 | + +--- + +## 影响的接口 + +| # | 接口 | 方法 | 路径 | 影响 | +|---|------|------|------|------| +| 1 | 创建菜单 | POST | `/admin/menu` | 请求参数 menuType 改用 D/M/B | +| 2 | 更新菜单 | PUT | `/admin/menu/{menuId}` | 请求参数 menuType 改用 D/M/B | +| 3 | 获取菜单详情 | GET | `/admin/menu/{menuId}` | 返回 menuType 为 D/M/B | +| 4 | 获取当前管理员菜单 | GET | `/admin/menu/my` | 返回 menuType 为 D/M/B | +| 5 | 获取完整菜单树 | GET | `/admin/menu/tree` | 返回 menuType 为 D/M/B | +| 6 | 获取角色菜单树 | GET | `/admin/menu/tree/role/{roleId}` | 返回 menuType 为 D/M/B | + +--- + +## 前端需要修改的地方 + +1. **创建/更新菜单时**:menuType 传值从 `DIRECTORY`/`MENU`/`BUTTON` 改为 `D`/`M`/`B` +2. **菜单类型判断逻辑**:所有 `=== 'DIRECTORY'` 改为 `=== 'D'`,`=== 'MENU'` 改为 `=== 'M'`,`=== 'BUTTON'` 改为 `=== 'B'` +3. **菜单类型显示**:可通过字典接口 `GET /admin/dict/type/menu_type` 获取中文标签 + +### 示例:创建菜单 + +```javascript +// 变更前 +await request.post('/admin/menu', { + menuName: '用户管理', + menuType: 'MENU', // ❌ 旧值 + path: '/system/user', + component: 'system/user/index' +}) + +// 变更后 +await request.post('/admin/menu', { + menuName: '用户管理', + menuType: 'M', // ✅ 新值 + path: '/system/user', + component: 'system/user/index' +}) +``` + +### 示例:菜单树类型判断 + +```javascript +// 变更前 +if (menu.menuType === 'DIRECTORY') { /* 目录 */ } +if (menu.menuType === 'MENU') { /* 菜单 */ } +if (menu.menuType === 'BUTTON') { /* 按钮 */ } + +// 变更后 +if (menu.menuType === 'D') { /* 目录 */ } +if (menu.menuType === 'M') { /* 菜单 */ } +if (menu.menuType === 'B') { /* 按钮 */ } +``` + +--- + +## 关联字典 + +### menu_type(菜单类型) + +| dict_value | dict_label | +|------------|------------| +| `D` | 目录 | +| `M` | 菜单 | +| `B` | 按钮 | + +> 数据库旧数据已全部修正(`DIRECTORY`→`D`, `MENU`→`M`, `BUTTON`→`B`, 以及其他非标准值 `0`→`D`, `1`→`M`, `C`→`M`, `F`→`B`),前端只需适配新的简码即可。