4x/irrigation-water-price-fron.../mock/menu.mock.ts

1433 lines
36 KiB
TypeScript

import { defineMock } from './base'
export default defineMock([
{
url: 'menus/routes',
method: ['GET'],
body: {
code: '00000',
data: [
{
path: '/system',
component: 'Layout',
redirect: '/system/user',
name: '/system',
meta: {
title: '系统管理',
icon: 'system',
hidden: false,
roles: ['ADMIN']
},
children: [
{
path: 'user',
component: 'system/user/index',
name: 'User',
meta: {
title: '用户管理',
icon: 'user',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
},
{
path: 'role',
component: 'system/role/index',
name: 'Role',
meta: {
title: '角色管理',
icon: 'role',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
},
{
path: 'menu',
component: 'system/menu/index',
name: 'Menu',
meta: {
title: '菜单管理',
icon: 'menu',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
},
{
path: 'dept',
component: 'system/dept/index',
name: 'Dept',
meta: {
title: '部门管理',
icon: 'tree',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
},
{
path: 'dict',
component: 'system/dict/index',
name: 'Dict',
meta: {
title: '字典管理',
icon: 'dict',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
}
]
},
{
path: '/api',
component: 'Layout',
name: '/api',
meta: {
title: '接口文档',
icon: 'api',
hidden: false,
roles: ['ADMIN'],
alwaysShow: true
},
children: [
{
path: 'apifox',
component: 'demo/api/apifox',
name: 'Apifox',
meta: {
title: 'Apifox',
icon: 'api',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
},
{
path: 'swagger',
component: 'demo/api/swagger',
name: 'Swagger',
meta: {
title: 'Swagger',
icon: 'api',
hidden: true,
roles: ['ADMIN'],
keepAlive: true
}
},
{
path: 'knife4j',
component: 'demo/api/knife4j',
name: 'Knife4j',
meta: {
title: 'Knife4j',
icon: 'api',
hidden: true,
roles: ['ADMIN'],
keepAlive: true
}
}
]
},
{
path: '/doc',
component: 'Layout',
name: '/doc',
meta: {
title: '平台文档',
icon: 'document',
hidden: false,
roles: ['ADMIN']
},
children: [
{
path: 'internal-doc',
component: 'demo/internal-doc',
name: 'InternalDoc',
meta: {
title: '平台文档(内嵌)',
icon: 'document',
hidden: false,
roles: ['ADMIN']
}
},
{
path: 'https://juejin.cn/post/7228990409909108793',
name: 'Https://juejin.cn/post/7228990409909108793',
meta: {
title: '平台文档(外链)',
icon: 'link',
hidden: false,
roles: ['ADMIN']
}
}
]
},
{
path: '/multi-level',
component: 'Layout',
redirect: '/multi-level/multi-level1',
name: '/multiLevel',
meta: {
title: '多级菜单',
icon: 'cascader',
hidden: false,
roles: ['ADMIN']
},
children: [
{
path: 'multi-level1',
component: 'demo/multi-level/level1',
redirect: '/multi-level/multi-level2',
name: 'MultiLevel1',
meta: {
title: '菜单一级',
icon: '',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
},
children: [
{
path: 'multi-level2',
component: 'demo/multi-level/children/level2',
redirect: '/multi-level/multi-level2/multi-level3-1',
name: 'MultiLevel2',
meta: {
title: '菜单二级',
icon: '',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
},
children: [
{
path: 'multi-level3-1',
component: 'demo/multi-level/children/children/level3-1',
name: 'MultiLevel31',
meta: {
title: '菜单三级-1',
icon: '',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
},
{
path: 'multi-level3-2',
component: 'demo/multi-level/children/children/level3-2',
name: 'MultiLevel32',
meta: {
title: '菜单三级-2',
icon: '',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
}
]
}
]
}
]
},
{
path: '/component',
component: 'Layout',
name: '/component',
meta: {
title: '组件封装',
icon: 'menu',
hidden: false,
roles: ['ADMIN']
},
children: [
{
path: 'upload',
component: 'demo/upload',
name: 'Upload',
meta: {
title: '图片上传',
icon: '',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
},
{
path: 'icon-selector',
component: 'demo/icon-selector',
name: 'IconSelector',
meta: {
title: '图标选择器',
icon: '',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
},
{
path: 'dict-demo',
component: 'demo/dict',
name: 'DictDemo',
meta: {
title: '字典组件',
icon: '',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
},
{
path: 'signature',
component: 'demo/signature',
name: 'Signature',
meta: {
title: '签名',
icon: '',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
},
{
path: 'table',
component: 'demo/table',
name: 'Table',
meta: {
title: '表格',
icon: '',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
}
]
},
{
path: '/function',
component: 'Layout',
name: '/function',
meta: {
title: '功能演示',
icon: 'menu',
hidden: false,
roles: ['ADMIN']
},
children: [
{
path: 'icon-demo',
component: 'demo/icons',
name: 'IconDemo',
meta: {
title: 'Icons',
icon: 'el-icon-edit',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
},
{
path: '/function/websocket',
component: 'demo/websocket',
name: '/function/websocket',
meta: {
title: 'Websocket',
icon: '',
hidden: false,
roles: ['ADMIN'],
keepAlive: true
}
},
{
path: 'other',
component: 'demo/other',
name: 'Other',
meta: {
title: '敬请期待...',
icon: '',
hidden: false,
roles: ['ADMIN']
}
}
]
}
],
msg: '一切ok'
}
},
{
url: 'menus',
method: ['GET'],
body: {
code: '00000',
data: [
{
id: 1,
parentId: 0,
name: '系统管理',
type: 'CATALOG',
path: '/system',
component: 'Layout',
sort: 1,
visible: 1,
icon: 'system',
redirect: '/system/user',
perm: null,
children: [
{
id: 2,
parentId: 1,
name: '用户管理',
type: 'MENU',
path: 'user',
component: 'system/user/index',
sort: 1,
visible: 1,
icon: 'user',
redirect: null,
perm: null,
children: [
{
id: 31,
parentId: 2,
name: '用户新增',
type: 'BUTTON',
path: '',
component: null,
sort: 1,
visible: 1,
icon: '',
redirect: '',
perm: 'sys:user:add',
children: []
},
{
id: 32,
parentId: 2,
name: '用户编辑',
type: 'BUTTON',
path: '',
component: null,
sort: 2,
visible: 1,
icon: '',
redirect: '',
perm: 'sys:user:edit',
children: []
},
{
id: 33,
parentId: 2,
name: '用户删除',
type: 'BUTTON',
path: '',
component: null,
sort: 3,
visible: 1,
icon: '',
redirect: '',
perm: 'sys:user:delete',
children: []
},
{
id: 88,
parentId: 2,
name: '重置密码',
type: 'BUTTON',
path: '',
component: null,
sort: 4,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:user:password:reset',
children: []
}
]
},
{
id: 3,
parentId: 1,
name: '角色管理',
type: 'MENU',
path: 'role',
component: 'system/role/index',
sort: 2,
visible: 1,
icon: 'role',
redirect: null,
perm: null,
children: [
{
id: 70,
parentId: 3,
name: '角色新增',
type: 'BUTTON',
path: '',
component: null,
sort: 1,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:role:add',
children: []
},
{
id: 71,
parentId: 3,
name: '角色编辑',
type: 'BUTTON',
path: '',
component: null,
sort: 2,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:role:edit',
children: []
},
{
id: 72,
parentId: 3,
name: '角色删除',
type: 'BUTTON',
path: '',
component: null,
sort: 3,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:role:delete',
children: []
}
]
},
{
id: 4,
parentId: 1,
name: '菜单管理',
type: 'MENU',
path: 'menu',
component: 'system/menu/index',
sort: 3,
visible: 1,
icon: 'menu',
redirect: null,
perm: null,
children: [
{
id: 73,
parentId: 4,
name: '菜单新增',
type: 'BUTTON',
path: '',
component: null,
sort: 1,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:menu:add',
children: []
},
{
id: 74,
parentId: 4,
name: '菜单编辑',
type: 'BUTTON',
path: '',
component: null,
sort: 3,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:menu:edit',
children: []
},
{
id: 75,
parentId: 4,
name: '菜单删除',
type: 'BUTTON',
path: '',
component: null,
sort: 3,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:menu:delete',
children: []
}
]
},
{
id: 5,
parentId: 1,
name: '部门管理',
type: 'MENU',
path: 'dept',
component: 'system/dept/index',
sort: 4,
visible: 1,
icon: 'tree',
redirect: null,
perm: null,
children: [
{
id: 76,
parentId: 5,
name: '部门新增',
type: 'BUTTON',
path: '',
component: null,
sort: 1,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:dept:add',
children: []
},
{
id: 77,
parentId: 5,
name: '部门编辑',
type: 'BUTTON',
path: '',
component: null,
sort: 2,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:dept:edit',
children: []
},
{
id: 78,
parentId: 5,
name: '部门删除',
type: 'BUTTON',
path: '',
component: null,
sort: 3,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:dept:delete',
children: []
}
]
},
{
id: 6,
parentId: 1,
name: '字典管理',
type: 'MENU',
path: 'dict',
component: 'system/dict/index',
sort: 5,
visible: 1,
icon: 'dict',
redirect: null,
perm: null,
children: [
{
id: 79,
parentId: 6,
name: '字典类型新增',
type: 'BUTTON',
path: '',
component: null,
sort: 1,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:dict_type:add',
children: []
},
{
id: 81,
parentId: 6,
name: '字典类型编辑',
type: 'BUTTON',
path: '',
component: null,
sort: 2,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:dict_type:edit',
children: []
},
{
id: 84,
parentId: 6,
name: '字典类型删除',
type: 'BUTTON',
path: '',
component: null,
sort: 3,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:dict_type:delete',
children: []
},
{
id: 85,
parentId: 6,
name: '字典数据新增',
type: 'BUTTON',
path: '',
component: null,
sort: 4,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:dict:add',
children: []
},
{
id: 86,
parentId: 6,
name: '字典数据编辑',
type: 'BUTTON',
path: '',
component: null,
sort: 5,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:dict:edit',
children: []
},
{
id: 87,
parentId: 6,
name: '字典数据删除',
type: 'BUTTON',
path: '',
component: null,
sort: 6,
visible: 1,
icon: '',
redirect: null,
perm: 'sys:dict:delete',
children: []
}
]
}
]
},
{
id: 40,
parentId: 0,
name: '接口文档',
type: 'CATALOG',
path: '/api',
component: 'Layout',
sort: 7,
visible: 1,
icon: 'api',
redirect: '',
perm: null,
children: [
{
id: 41,
parentId: 40,
name: 'Apifox',
type: 'MENU',
path: 'apifox',
component: 'demo/api/apifox',
sort: 1,
visible: 1,
icon: 'api',
redirect: '',
perm: null,
children: []
},
{
id: 103,
parentId: 40,
name: 'Swagger',
type: 'MENU',
path: 'swagger',
component: 'demo/api/swagger',
sort: 2,
visible: 0,
icon: 'api',
redirect: '',
perm: null,
children: []
},
{
id: 104,
parentId: 40,
name: 'Knife4j',
type: 'MENU',
path: 'knife4j',
component: 'demo/api/knife4j',
sort: 3,
visible: 0,
icon: 'api',
redirect: '',
perm: null,
children: []
}
]
},
{
id: 26,
parentId: 0,
name: '平台文档',
type: 'CATALOG',
path: '/doc',
component: 'Layout',
sort: 8,
visible: 1,
icon: 'document',
redirect: null,
perm: null,
children: [
{
id: 102,
parentId: 26,
name: '平台文档(内嵌)',
type: 'EXTLINK',
path: 'internal-doc',
component: 'demo/internal-doc',
sort: 1,
visible: 1,
icon: 'document',
redirect: '',
perm: null,
children: []
},
{
id: 30,
parentId: 26,
name: '平台文档(外链)',
type: 'EXTLINK',
path: 'https://juejin.cn/post/7228990409909108793',
component: '',
sort: 2,
visible: 1,
icon: 'link',
redirect: '',
perm: null,
children: []
}
]
},
{
id: 20,
parentId: 0,
name: '多级菜单',
type: 'CATALOG',
path: '/multi-level',
component: 'Layout',
sort: 9,
visible: 1,
icon: 'cascader',
redirect: '/multi-level/multi-level1',
perm: null,
children: [
{
id: 21,
parentId: 20,
name: '菜单一级',
type: 'MENU',
path: 'multi-level1',
component: 'demo/multi-level/level1',
sort: 1,
visible: 1,
icon: '',
redirect: '/multi-level/multi-level2',
perm: null,
children: [
{
id: 22,
parentId: 21,
name: '菜单二级',
type: 'MENU',
path: 'multi-level2',
component: 'demo/multi-level/children/level2',
sort: 1,
visible: 1,
icon: '',
redirect: '/multi-level/multi-level2/multi-level3-1',
perm: null,
children: [
{
id: 23,
parentId: 22,
name: '菜单三级-1',
type: 'MENU',
path: 'multi-level3-1',
component: 'demo/multi-level/children/children/level3-1',
sort: 1,
visible: 1,
icon: '',
redirect: '',
perm: null,
children: []
},
{
id: 24,
parentId: 22,
name: '菜单三级-2',
type: 'MENU',
path: 'multi-level3-2',
component: 'demo/multi-level/children/children/level3-2',
sort: 2,
visible: 1,
icon: '',
redirect: '',
perm: null,
children: []
}
]
}
]
}
]
},
{
id: 36,
parentId: 0,
name: '组件封装',
type: 'CATALOG',
path: '/component',
component: 'Layout',
sort: 10,
visible: 1,
icon: 'menu',
redirect: '',
perm: null,
children: [
{
id: 37,
parentId: 36,
name: '富文本编辑器',
type: 'MENU',
path: 'wang-editor',
component: 'demo/wang-editor',
sort: 1,
visible: 1,
icon: '',
redirect: '',
perm: null,
children: []
},
{
id: 38,
parentId: 36,
name: '图片上传',
type: 'MENU',
path: 'upload',
component: 'demo/upload',
sort: 2,
visible: 1,
icon: '',
redirect: '',
perm: null,
children: []
},
{
id: 39,
parentId: 36,
name: '图标选择器',
type: 'MENU',
path: 'icon-selector',
component: 'demo/icon-selector',
sort: 3,
visible: 1,
icon: '',
redirect: '',
perm: null,
children: []
},
{
id: 95,
parentId: 36,
name: '字典组件',
type: 'MENU',
path: 'dict-demo',
component: 'demo/dict',
sort: 4,
visible: 1,
icon: '',
redirect: '',
perm: null,
children: []
},
{
id: 93,
parentId: 36,
name: '签名',
type: 'MENU',
path: 'signature',
component: 'demo/signature',
sort: 6,
visible: 1,
icon: '',
redirect: '',
perm: null,
children: []
},
{
id: 94,
parentId: 36,
name: '表格',
type: 'MENU',
path: 'table',
component: 'demo/table',
sort: 7,
visible: 1,
icon: '',
redirect: '',
perm: null,
children: []
}
]
},
{
id: 89,
parentId: 0,
name: '功能演示',
type: 'CATALOG',
path: '/function',
component: 'Layout',
sort: 11,
visible: 1,
icon: 'menu',
redirect: '',
perm: null,
children: [
{
id: 97,
parentId: 89,
name: 'Icons',
type: 'MENU',
path: 'icon-demo',
component: 'demo/icons',
sort: 2,
visible: 1,
icon: 'el-icon-edit',
redirect: '',
perm: null,
children: []
},
{
id: 90,
parentId: 89,
name: 'Websocket',
type: 'MENU',
path: '/function/websocket',
component: 'demo/websocket',
sort: 3,
visible: 1,
icon: '',
redirect: '',
perm: null,
children: []
},
{
id: 91,
parentId: 89,
name: '敬请期待...',
type: 'CATALOG',
path: 'other',
component: 'demo/other',
sort: 4,
visible: 1,
icon: '',
redirect: '',
perm: null,
children: []
}
]
}
],
msg: '一切ok'
}
},
{
url: 'menus/options',
method: ['GET'],
body: {
code: '00000',
data: [
{
value: 1,
label: '系统管理',
children: [
{
value: 2,
label: '用户管理',
children: [
{
value: 31,
label: '用户新增'
},
{
value: 32,
label: '用户编辑'
},
{
value: 33,
label: '用户删除'
},
{
value: 88,
label: '重置密码'
}
]
},
{
value: 3,
label: '角色管理',
children: [
{
value: 70,
label: '角色新增'
},
{
value: 71,
label: '角色编辑'
},
{
value: 72,
label: '角色删除'
}
]
},
{
value: 4,
label: '菜单管理',
children: [
{
value: 73,
label: '菜单新增'
},
{
value: 74,
label: '菜单编辑'
},
{
value: 75,
label: '菜单删除'
}
]
},
{
value: 5,
label: '部门管理',
children: [
{
value: 76,
label: '部门新增'
},
{
value: 77,
label: '部门编辑'
},
{
value: 78,
label: '部门删除'
}
]
},
{
value: 6,
label: '字典管理',
children: [
{
value: 79,
label: '字典类型新增'
},
{
value: 81,
label: '字典类型编辑'
},
{
value: 84,
label: '字典类型删除'
},
{
value: 85,
label: '字典数据新增'
},
{
value: 86,
label: '字典数据编辑'
},
{
value: 87,
label: '字典数据删除'
}
]
}
]
},
{
value: 40,
label: '接口文档',
children: [
{
value: 41,
label: 'Apifox'
},
{
value: 103,
label: 'Swagger'
},
{
value: 104,
label: 'Knife4j'
}
]
},
{
value: 26,
label: '平台文档',
children: [
{
value: 102,
label: '平台文档(内嵌)'
},
{
value: 30,
label: '平台文档(外链)'
}
]
},
{
value: 20,
label: '多级菜单',
children: [
{
value: 21,
label: '菜单一级',
children: [
{
value: 22,
label: '菜单二级',
children: [
{
value: 23,
label: '菜单三级-1'
},
{
value: 24,
label: '菜单三级-2'
}
]
}
]
}
]
},
{
value: 36,
label: '组件封装',
children: [
{
value: 37,
label: '富文本编辑器'
},
{
value: 38,
label: '图片上传'
},
{
value: 39,
label: '图标选择器'
},
{
value: 95,
label: '字典组件'
},
{
value: 93,
label: '签名'
},
{
value: 94,
label: '表格'
}
]
},
{
value: 89,
label: '功能演示',
children: [
{
value: 97,
label: 'Icons'
},
{
value: 90,
label: 'Websocket'
},
{
value: 91,
label: '敬请期待...'
}
]
}
],
msg: '一切ok'
}
},
// 新增菜单
{
url: 'menus',
method: ['POST'],
body({ body }) {
return {
code: '00000',
data: null,
msg: '新增菜单' + body.name + '成功'
}
}
},
// 获取菜单表单数据
{
url: 'menus/:id/form',
method: ['GET'],
body: ({ params }) => {
return {
code: '00000',
data: menuMap[params.id],
msg: '一切ok'
}
}
},
// 修改菜单
{
url: 'menus/:id',
method: ['PUT'],
body({ body }) {
return {
code: '00000',
data: null,
msg: '修改菜单' + body.name + '成功'
}
}
},
// 删除菜单
{
url: 'menus/:id',
method: ['DELETE'],
body({ params }) {
return {
code: '00000',
data: null,
msg: '删除菜单' + params.id + '成功'
}
}
}
])
// 菜单映射表数据
const menuMap: Record<string, any> = {
1: {
id: 1,
parentId: 0,
name: '系统管理',
type: 'CATALOG',
path: '/system',
component: 'Layout',
perm: null,
visible: 1,
sort: 1,
icon: 'system',
redirect: '/system/user',
keepAlive: null,
alwaysShow: null
},
2: {
id: 2,
parentId: 1,
name: '用户管理',
type: 'MENU',
path: 'user',
component: 'system/user/index',
perm: null,
visible: 1,
sort: 1,
icon: 'user',
redirect: null,
keepAlive: 1,
alwaysShow: null
},
3: {
id: 3,
parentId: 1,
name: '角色管理',
type: 'MENU',
path: 'role',
component: 'system/role/index',
perm: null,
visible: 1,
sort: 2,
icon: 'role',
redirect: null,
keepAlive: 1,
alwaysShow: null
},
4: {
id: 4,
parentId: 1,
name: '菜单管理',
type: 'MENU',
path: 'menu',
component: 'system/menu/index',
perm: null,
visible: 1,
sort: 3,
icon: 'menu',
redirect: null,
keepAlive: 1,
alwaysShow: null
},
5: {
id: 5,
parentId: 1,
name: '部门管理',
type: 'MENU',
path: 'dept',
component: 'system/dept/index',
perm: null,
visible: 1,
sort: 4,
icon: 'tree',
redirect: null,
keepAlive: 1,
alwaysShow: null
},
6: {
id: 6,
parentId: 1,
name: '字典管理',
type: 'MENU',
path: 'dict',
component: 'system/dict/index',
perm: null,
visible: 1,
sort: 5,
icon: 'dict',
redirect: null,
keepAlive: 1,
alwaysShow: null
}
}