4x/irrigation-monitor-frontend/mock/menu.mock.ts

1445 lines
37 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: "wang-editor",
component: "demo/wang-editor",
name: "WangEditor",
meta: {
title: "富文本编辑器",
icon: "",
hidden: false,
roles: ["ADMIN"],
keepAlive: true,
},
},
{
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,
},
};