46 lines
1.6 KiB
Markdown
46 lines
1.6 KiB
Markdown
# 6.3 菜单管理
|
|
|
|
:::tip 概述
|
|
菜单(gin_menu,平台级)一张表同时承担三件事:**前端路由定义**(path/component)、**侧边栏展示**(树形/图标/排序)、**权限节点承载**(permission 列)。后端菜单管理即前端路由管理。
|
|
:::
|
|
|
|
## 功能清单
|
|
|
|
| 接口 | 说明 |
|
|
|---|---|
|
|
| Page / List / Detail / Add / Update / Delete / BatchDelete | 标准维护(树形数据) |
|
|
|
|
## 关键字段语义
|
|
|
|
| 字段 | 语义 |
|
|
|---|---|
|
|
| parent_id | 树形层级(目录 → 菜单/节点) |
|
|
| path / component | 前端路由路径 / `views` 下组件相对路径 |
|
|
| permission | 权限节点码(`sys:user:add`),type=1 节点专用此列 |
|
|
| type | 0-菜单(页面)1-节点(纯权限点) |
|
|
| target | 0-组件 1-内链 2-外链 |
|
|
| status / hide | 停用 / 不可见(路由保留但侧边栏隐藏) |
|
|
|
|
## 动态菜单联动
|
|
|
|
```text
|
|
用户登录 → /api/index/getMenus 返回按角色过滤的菜单树
|
|
→ 前端 asyncRoute store 生成路由表
|
|
→ addRoute 注入 + 侧边栏渲染
|
|
```
|
|
|
|
菜单行的 component 路径必须真实存在于 `ui/src/views` 下,否则路由懒加载失败。
|
|
|
|
## 代码生成器的落点
|
|
|
|
生成器为新模块幂等创建菜单行(页面菜单 + 权限节点),挂载位置由 `generator.parentMenuId` 指定——菜单/权限/路由三者一致性由工具保证。
|
|
|
|
## 管理界面
|
|
|
|
`system/menu`:树形表格 + 拖拽排序 + 新增/编辑(类型、图标、组件路径、权限码)。
|
|
|
|
## 相关
|
|
|
|
- [3.9 权限节点配置](/zh/guide/permission.html)
|
|
- [9.5 路由与动态菜单](/zh/frontend/router.html)
|