datai/docs/archive/api-docs/system/2026-01-21-002-03-29-api-修改菜单.md

109 lines
3.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# API 文档:修改菜单接口
## 元数据
- **需求编号**2026-01-21-002-03-29
- **创建时间**2026-01-26
- **创建人**SSOT 架构师
- **父需求**2026-01-21-002-03-数据库国际化需求
## 接口概述
修改已有的菜单,支持编辑中文字段和英文字段。
## 接口详情
### 基本信息
- **接口名称**:修改菜单
- **接口描述**:修改菜单,支持国际化
- **请求方式**PUT
- **请求路径**`/system/menu`
- **权限要求**`system:menu:edit`
### 请求参数
| 参数名 | 类型 | 必选 | 说明 |
|--------|------|------|------|
| menuId | Long | 是 | 菜单ID |
| menuName | String | 是 | 菜单名称(中文) |
| menuNameEn | String | 否 | 菜单名称(英文) |
| menuNameI18n | String | 否 | 菜单名称多语言JSON |
| parentId | Long | 是 | 父菜单ID |
| orderNum | Integer | 是 | 显示顺序 |
| path | String | 否 | 路由地址 |
| component | String | 否 | 组件路径 |
| query | String | 否 | 路由参数 |
| routeName | String | 否 | 路由名称 |
| isFrame | String | 否 | 是否为外链0是 1否 |
| isCache | String | 否 | 是否缓存0缓存 1不缓存 |
| menuType | String | 是 | 类型M目录 C菜单 F按钮 |
| visible | String | 否 | 显示状态0显示 1隐藏 |
| status | String | 否 | 菜单状态0正常 1停用 |
| perms | String | 否 | 权限字符串 |
| icon | String | 否 | 菜单图标 |
### 请求示例
```bash
curl -X PUT 'http://localhost:8080/system/menu' \
-H 'Authorization: Bearer {token}' \
-H 'Content-Type: application/json' \
-d '{
"menuId": 2,
"menuName": "用户管理",
"menuNameEn": "User Management",
"parentId": 1,
"orderNum": 1,
"path": "user",
"component": "system/user/index",
"menuType": "C",
"visible": "0",
"status": "0",
"perms": "system:user:list",
"icon": "user"
}'
```
### 响应数据结构
| 参数名 | 类型 | 说明 |
|--------|------|------|
| code | Integer | 状态码200 成功500 失败) |
| msg | String | 提示信息 |
| data | Object | 数据对象(通常为 null |
### 响应示例
**成功响应:**
```json
{
"code": 200,
"msg": "操作成功",
"data": null
}
```
**失败响应:**
```json
{
"code": 500,
"msg": "修改菜单'用户管理'失败,菜单名称已存在",
"data": null
}
```
### 业务规则
1. 菜单名称在同一父菜单下必须唯一
2. 如果是外链菜单,地址必须以 http(s):// 开头
3. 上级菜单不能选择自己
4. 修改 `menuName` 时,自动翻译并更新 `menuNameEn`(调用翻译 API
5. 修改成功后,清除菜单缓存
### 国际化说明
- 支持编辑中文字段menuName和英文字段menuNameEn
- 支持编辑多语言 JSON 字段menuNameI18n
- 自动翻译功能:修改中文字段时,自动翻译并更新英文字段
### 性能要求
- **响应时间**< 100ms
- **数据库更新时间**< 50ms
### 相关文档
- [需求文档](file:///d:/idea_demo/datai/datai-scenes/datai-scene-salesforce/docs/requirements/2026-01-21-002-03-数据库国际化需求.md)
- [设计文档](file:///d:/idea_demo/datai/datai-scenes/datai-scene-salesforce/docs/design/2026-01-21-002-03-数据库国际化设计.md)