四、菜单管理
菜单入口:系统管理 → 菜单管理。
定义系统的导航结构与按钮权限:左侧导航的每个目录、每个页面,以及页面内的每个操作按钮,都对应这里的一条菜单记录。角色「菜单权限」与租户套餐勾选的范围,均以本模块维护的菜单树为准。
4.1 菜单列表
菜单入口:系统管理 → 菜单管理。
以树形表格展示"目录 → 菜单 → 按钮"的层级结构。
页面操作:
- 查询:按菜单名称、状态筛选;
- 新增:选择上级菜单,填写菜单名称、菜单类型等配置(见 4.2 菜单类型与配置),保存后挂到对应层级;
- 修改:编辑菜单节点配置;
- 删除:删除菜单节点;
- 展开/折叠:一键展开或折叠整棵菜单树;
- 刷新菜单缓存:菜单调整完成后点击,使修改即时生效,无需重启服务。
业务规则:
| 规则 | 说明 |
|---|---|
| 删除限制 | 存在下级菜单/按钮的节点不允许直接删除,需先删除其子级 |
| 级联清理 | 删除菜单时,系统同步回收所有角色已授权的该菜单权限 |
| 停用 | 菜单停用后导航中不再显示,但直接输入 URL 仍可打开页面,访问需配合角色权限控制 |
| 生效方式 | 修改后点击「刷新菜单缓存」并刷新浏览器即可生效 |

数据变动:新增/删除菜单会同步影响角色与租户套餐可勾选的权限范围;删除按钮型菜单等同于收回所有角色对该按钮的操作权限。
4.2 菜单类型与配置
菜单入口:系统管理 → 菜单管理 → 新增/修改。
| 菜单类型 | 作用 | 关键配置 |
|---|---|---|
| 目录 | 导航分组,点击只展开下级,不跳转页面 | 上级菜单、菜单名称、路由地址、菜单图标 |
| 菜单 | 实际功能页面 | 路由地址(浏览器访问路径)、组件地址(前端页面组件路径)、权限标识(可选) |
| 按钮 | 页面内操作权限 | 权限标识(如 system:user:create),页面按钮显示与后端接口鉴权均按其校验 |
其他公共配置:显示排序(同级菜单的展示顺序)、菜单状态(启用/停用)、显示状态(是否在导航中显示)、缓存状态(页面切换时是否缓存)。
数据变动:路由地址与组件地址共同决定前端页面加载;权限标识一旦被角色引用,修改前需同步评估相关页面按钮的显示与接口鉴权。
