mirror of
https://gitee.com/technical-laohu/mpay_v2_webman.git
synced 2026-03-26 04:34:27 +08:00
5.2 KiB
5.2 KiB
系统菜单配置
配置说明
系统菜单基于路由配置实现,以下是完整的菜单路由配置项说明,所有配置项均为 JSON 格式,可直接用于前端路由解析。
核心配置结构
{
"id": "01",
"parentId": "0",
"path": "/home",
"name": "home",
"component": "home/home",
"meta": {
"title": "home",
"hide": false,
"disable": false,
"keepAlive": false,
"affix": true,
"link": "",
"iframe": false,
"isFull": false,
"roles": ["admin", "common"],
"svgIcon": "home",
"icon": "",
"sort": 1,
"type": 2
},
"children": null
}
字段详细说明
| 一级字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
id |
string | 是 | 路由唯一标识,建议按「层级+序号」命名(如 01=首页,0201=订单管理) |
parentId |
string | 是 | 父路由ID,顶层路由固定为 0,子路由对应父路由的 id |
path |
string | 是 | 路由访问路径(如 /home、/order/order-list) |
name |
string | 是 | 路由名称,需与组件名/路径名保持一致,用于路由跳转标识 |
component |
string | 否 | 组件文件路径(基于 src/views 目录),如 home/home 对应 src/views/home/home.vue;目录级路由可省略 |
meta |
object | 是 | 路由元信息,包含菜单展示、权限、样式等核心配置 |
children |
array | 否 | 子路由列表,目录级路由(type:1)需配置,菜单级路由(type:2)默认为 null |
meta 子字段说明
| 子字段 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
title |
string | 是 | - | 菜单显示标题: 1. 填写国际化key(如 home),自动匹配多语言;2. 无对应key则直接展示文字 |
hide |
boolean | 否 | false | 是否隐藏菜单: ✅ true = 不显示在侧边栏,但可正常访问; ❌ false = 正常显示 |
disable |
boolean | 否 | false | 是否停用路由: ✅ true = 不显示+不可访问; ❌ false = 正常可用 |
keepAlive |
boolean | 否 | false | 是否缓存组件: ✅ true = 切换路由不销毁组件; ❌ false = 切换后销毁 |
affix |
boolean | 否 | false | 是否固定在标签栏: ✅ true = 标签栏无关闭按钮; ❌ false = 可关闭 |
link |
string | 否 | "" | 外链地址,填写后路由跳转至该地址(优先级高于 component) |
iframe |
boolean | 否 | false | 是否内嵌外链: ✅ true = 在页面内以iframe展示 link 地址;❌ false = 跳转新页面 |
isFull |
boolean | 否 | false | 是否全屏显示: ✅ true = 菜单页面占满整个视口; ❌ false = 保留侧边栏/头部 |
roles |
array | 否 | [] | 路由权限角色: 如 ["admin", "common"],仅对应角色可访问该菜单 |
svgIcon |
string | 否 | "" | SVG菜单图标: 优先级高于 icon,取值为 src/assets/svgs 目录下的SVG文件名 |
icon |
string | 否 | "" | 普通图标: 默认使用 Arco Design 图标库,填写图标名(如 icon-file)即可 |
sort |
number | 否 | 0 | 菜单排序:数值越小,展示越靠前 |
type |
number | 是 | - | 路由类型: 1 = 目录(仅作为父级,无组件); 2 = 菜单(可访问的页面); 3 = 按钮(权限控制用) |
配置示例
1. 顶层菜单(首页)
{
"id": "01",
"parentId": "0",
"path": "/home",
"name": "home",
"component": "home/home",
"meta": {
"title": "平台首页",
"hide": false,
"disable": false,
"keepAlive": false,
"affix": true,
"link": "",
"iframe": false,
"isFull": false,
"roles": ["admin", "common"],
"svgIcon": "home",
"icon": "",
"sort": 1,
"type": 2
},
"children": null
}
2. 目录级路由(收款订单)
{
"id": "02",
"parentId": "0",
"path": "/order",
"name": "order",
"redirect": "/order/order-list",
"meta": {
"title": "收款订单",
"hide": false,
"disable": false,
"keepAlive": true,
"affix": false,
"link": "",
"iframe": false,
"isFull": false,
"roles": ["admin", "common"],
"svgIcon": "order",
"icon": "",
"sort": 2,
"type": 1
},
"children": [
{
"id": "0201",
"parentId": "02",
"path": "/order/order-list",
"name": "order-list",
"component": "order/order-list/index",
"meta": {
"title": "订单管理",
"hide": false,
"disable": false,
"keepAlive": true,
"affix": false,
"link": "",
"iframe": false,
"isFull": false,
"roles": ["admin", "common"],
"icon": "icon-file",
"sort": 1,
"type": 2
},
"children": null
}
]
}