Files
HF-MES-manual/system_settings/menu_configuration.md
sheng 2d0c34d36e docs: 新增和更新多个模块的文档
新增SPC模块、托盘登录、生产批次不良报表、设备监控、半成品管理、托盘管理、系统监控、批次管理、班组模型、电池工序管理、电池复投管理、批次托盘、系统助手、SPC采集模型、产品模型管理、物料模型管理、用户管理、菜单配置等文档内容

更新文档指南,添加系统功能清单
2026-04-29 17:59:31 +08:00

219 lines
7.4 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.

# 菜单管理
## 1. 功能概述
菜单管理模块用于配置系统的菜单结构支持后台管理端和PDA端的菜单配置实现菜单的增删改查、排序和权限关联功能。
**核心功能:**
- 菜单树形结构管理:支持多层级菜单的创建、编辑和删除
- 菜单分类管理:区分后台(admin)和PDA模块的菜单
- 菜单状态控制:支持菜单的启用/禁用操作
- 菜单排序:支持拖拽排序,调整菜单显示顺序
- 菜单权限关联:新增菜单自动关联超级管理员角色
- 菜单导航属性:控制菜单是否在导航栏显示
## 2. 术语说明
#### 2.1.1 菜单相关术语
| 术语 | 定义 | 说明 |
|------|------|------|
| 顶层菜单 | 没有上级菜单的菜单节点 | 作为菜单树的根节点 |
| 子菜单 | 有上级菜单的菜单节点 | 可多级嵌套 |
| 模块 | 菜单所属的系统模块 | admin(后台)、pda(PDA端) |
| 导航属性 | 菜单是否在导航栏显示 | 可见(1)或隐藏(0) |
| 链接类型 | 菜单链接的类型 | 模块(0)或外链(1) |
| 打开方式 | 链接的打开方式 | 当前窗口(_self)或新窗口(_blank) |
## 3. 菜单管理操作
### 3.1 菜单查询
**查询条件:**
| 查询条件 | 说明 |
|---------|------|
| 模块 | 选择后台(admin)或PDA模块 |
| 状态 | 筛选启用或禁用状态的菜单 |
| 导航属性 | 筛选可见或隐藏的菜单 |
| 菜单深度 | 控制菜单树的展开层级 |
**操作步骤:**
1. 进入【系统设置】→【菜单管理】→【菜单配置】
2. 在顶部查询区域选择查询条件
3. 点击【查询】按钮获取菜单列表
4. 点击【重置】按钮清空查询条件
### 3.2 新增菜单
**操作步骤:**
1. 进入【系统设置】→【菜单管理】→【菜单配置】
2. 点击【新增顶层菜单】按钮,或在已有菜单上点击【新增】按钮添加子菜单
3. 填写菜单表单信息
4. 点击【确定】完成新增
**字段说明:**
| 字段 | 说明 | 必填 |
|------|------|------|
| 上级菜单 | 选择父菜单,不选择表示顶层菜单 | 否 |
| 名称 | 菜单的显示名称 | 是 |
| 别名 | 菜单的别名标识API类型菜单必填 | 否 |
| 图标 | 菜单图标,可选择或自定义 | 否 |
| 排序 | 菜单的排序序号,数值越小越靠前 | 是 |
| 导航 | 控制菜单是否在导航栏显示 | 是 |
| 链接类型 | 模块(0)或外链(1) | 是 |
| 打开方式 | 当前窗口或新窗口 | 是 |
| URL | 菜单链接地址 | 否 |
| 参数 | 链接参数 | 否 |
| 备注 | 菜单的备注说明 | 否 |
**【提示】** 新增菜单时,系统会自动将其关联到超级管理员角色。
### 3.3 编辑菜单
**操作步骤:**
1. 在菜单树中点击需要编辑的菜单节点
2. 在右侧表单中修改菜单信息
3. 点击【修改】按钮保存更改
**【注意】** 菜单名称在同一模块内不能重复。
### 3.4 删除菜单
**操作步骤:**
1. 在菜单树中找到需要删除的菜单
2. 点击菜单右侧的【删除】按钮
3. 在确认对话框中点击【确定】
**【重要】** 如果该菜单或其子级菜单正在被角色使用,则无法删除。
### 3.5 启用/禁用菜单
**操作步骤:**
1. 在菜单树中找到需要操作的菜单
2. 点击菜单右侧的【禁用】或【启用】按钮
3. 在确认对话框中点击【确定】
**【注意】** 状态切换会影响该菜单及其所有子级菜单。
### 3.6 菜单排序
**操作步骤:**
1. 在菜单树中拖拽菜单节点到目标位置
2. 系统自动保存排序结果
**支持的拖拽操作:**
- 拖拽到同级菜单的前面或后面
- 拖拽到其他菜单下作为子菜单
## 4. 后台API接口
### 4.1 接口列表
| API路径 | 方法 | 功能描述 | 所属文件 |
|---------|------|---------|---------|
| `/api/background/v1/system_settings/menu_configuration/menu/all` | GET | 获取用户权限内的菜单列表 | MenuService.php:58 |
| `/api/background/v1/system_settings/menu_configuration/menu/list` | GET | 获取菜单列表(带筛选条件) | MenuService.php:124 |
| `/api/background/v1/system_settings/menu_configuration/menu/create` | POST | 创建新菜单 | MenuService.php:186 |
| `/api/background/v1/system_settings/menu_configuration/menu/edit` | POST | 编辑菜单信息 | MenuService.php:250 |
| `/api/background/v1/system_settings/menu_configuration/menu/delete` | POST | 删除菜单 | MenuService.php:307 |
| `/api/background/v1/system_settings/menu_configuration/menu/update_status` | POST | 更新菜单状态 | MenuService.php:328 |
| `/api/background/v1/system_settings/menu_configuration/menu/update_sort` | POST | 更新菜单排序 | MenuService.php:352 |
### 4.2 数据模型
**菜单表字段:**
| 字段名 | 类型 | 说明 |
|--------|------|------|
| id | int | 菜单唯一标识 |
| parent_id | int | 父菜单ID |
| name | varchar | 菜单名称 |
| alias | varchar | 菜单别名 |
| icon | varchar | 菜单图标 |
| is_navi | tinyint | 是否导航显示(0/1) |
| module | varchar | 所属模块(admin/pda) |
| params | varchar | 链接参数 |
| remark | varchar | 备注说明 |
| sort | int | 排序序号 |
| status | tinyint | 状态(0禁用/1启用) |
| target | varchar | 打开方式 |
| type | tinyint | 链接类型(0模块/1外链) |
| url | varchar | 链接地址 |
## 5. 前端组件结构
### 5.1 组件目录
```
menu_configuration/
└── menu/
├── components/
│ ├── PageHeader/
│ │ └── index.vue # 查询条件头部组件
│ └── PageMain/
│ └── index.vue # 主内容区域组件
└── index.vue # 页面入口组件
```
### 5.2 核心组件功能
| 组件 | 功能 | 关键特性 |
|------|------|---------|
| PageHeader | 查询条件面板 | 支持模块切换、状态筛选、导航属性筛选 |
| PageMain | 菜单树和表单 | 树形展示、拖拽排序、增删改操作 |
## 6. 权限控制
菜单管理涉及以下权限点:
| 权限标识 | 权限名称 | 说明 |
|---------|---------|------|
| `/system_settings/menu_configuration/menu/create` | 新增菜单 | 允许创建新菜单 |
| `/system_settings/menu_configuration/menu/edit` | 编辑菜单 | 允许修改菜单信息 |
| `/system_settings/menu_configuration/menu/delete` | 删除菜单 | 允许删除菜单 |
| `/system_settings/menu_configuration/menu/disabled_enable` | 启用/禁用菜单 | 允许切换菜单状态 |
## 7. 数据流程图
```mermaid
flowchart TD
A[用户请求] --> B{是否超级管理员}
B -->|是| C[查询全部菜单]
B -->|否| D[查询角色关联菜单]
C --> E[返回菜单列表]
D --> E
E --> F[前端渲染树形结构]
F --> G[用户操作]
G --> H{操作类型}
H -->|新增| I[校验名称唯一性]
H -->|编辑| J[校验名称唯一性]
H -->|删除| K[检查角色使用情况]
H -->|状态切换| L[检查角色使用情况]
I --> M[保存菜单数据]
J --> M
K --> N{是否被使用}
L --> N
N -->|是| O[提示错误信息]
N -->|否| P[执行操作]
M --> Q[关联超级管理员]
Q --> R[返回结果]
P --> R
O --> R
```
## 8. 注意事项
**【重要】** 删除或禁用菜单前,请确保该菜单未被任何角色使用,否则操作将失败。
**【提示】** 建议定期整理菜单结构,保持菜单树的清晰性和逻辑性。
**【注意】** 菜单排序数值越小显示越靠前默认值为50。