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, alwaysShow: false, params: null, }, children: [ { path: "user", component: "system/user/index", name: "User", meta: { title: "用户管理", icon: "el-icon-User", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, { path: "role", component: "system/role/index", name: "Role", meta: { title: "角色管理", icon: "role", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, { path: "menu", component: "system/menu/index", name: "Menu", meta: { title: "菜单管理", icon: "menu", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, { path: "dept", component: "system/dept/index", name: "Dept", meta: { title: "部门管理", icon: "tree", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, { path: "dict", component: "system/dict/index", name: "Dict", meta: { title: "字典管理", icon: "dict", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, ], }, { path: "/api", component: "Layout", name: "/api", meta: { title: "接口文档", icon: "api", hidden: false, alwaysShow: true, params: null, }, children: [ { path: "apifox", component: "demo/api/apifox", name: "Apifox", meta: { title: "Apifox", icon: "api", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, ], }, { path: "/doc", component: "Layout", redirect: "https://juejin.cn/post/7228990409909108793", name: "/doc", meta: { title: "平台文档", icon: "document", hidden: false, alwaysShow: false, params: null, }, children: [ { path: "internal-doc", component: "demo/internal-doc", name: "InternalDoc", meta: { title: "平台文档(内嵌)", icon: "document", hidden: false, alwaysShow: false, params: null, }, }, { path: "https://juejin.cn/post/7228990409909108793", name: "Https://juejin.cn/post/7228990409909108793", meta: { title: "平台文档(外链)", icon: "el-icon-Link", hidden: false, alwaysShow: false, params: null, }, }, ], }, { path: "/multi-level", component: "Layout", name: "/multiLevel", meta: { title: "多级菜单", icon: "cascader", hidden: false, alwaysShow: true, params: null, }, children: [ { path: "multi-level1", component: "demo/multi-level/level1", name: "MultiLevel1", meta: { title: "菜单一级", icon: "", hidden: false, alwaysShow: true, params: null, }, children: [ { path: "multi-level2", component: "demo/multi-level/children/level2", name: "MultiLevel2", meta: { title: "菜单二级", icon: "", hidden: false, alwaysShow: false, params: null, }, children: [ { path: "multi-level3-1", component: "demo/multi-level/children/children/level3-1", name: "MultiLevel31", meta: { title: "菜单三级-1", icon: "", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, { path: "multi-level3-2", component: "demo/multi-level/children/children/level3-2", name: "MultiLevel32", meta: { title: "菜单三级-2", icon: "", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, ], }, ], }, ], }, { path: "/component", component: "Layout", name: "/component", meta: { title: "组件封装", icon: "menu", hidden: false, alwaysShow: false, params: null, }, children: [ { path: "curd", component: "demo/curd/index", name: "Curd", meta: { title: "增删改查", icon: "", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, { path: "table-select", component: "demo/table-select/index", name: "TableSelect", meta: { title: "列表选择器", icon: "", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, { path: "wang-editor", component: "demo/wang-editor", name: "WangEditor", meta: { title: "富文本编辑器", icon: "", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, { path: "upload", component: "demo/upload", name: "Upload", meta: { title: "图片上传", icon: "", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, { path: "icon-selector", component: "demo/icon-selector", name: "IconSelector", meta: { title: "图标选择器", icon: "", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, { path: "dict-demo", component: "demo/dict", name: "DictDemo", meta: { title: "字典组件", icon: "", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, ], }, { path: "/route-param", component: "Layout", name: "/routeParam", meta: { title: "路由参数", icon: "el-icon-ElementPlus", hidden: false, alwaysShow: true, params: null, }, children: [ { path: "route-param-type1", component: "demo/route-param", name: "RouteParamType1", meta: { title: "参数(type=1)", icon: "el-icon-Star", hidden: false, keepAlive: true, alwaysShow: false, params: { type: "1", }, }, }, { path: "route-param-type2", component: "demo/route-param", name: "RouteParamType2", meta: { title: "参数(type=2)", icon: "el-icon-StarFilled", hidden: false, keepAlive: true, alwaysShow: false, params: { type: "2", }, }, }, ], }, { path: "/function", component: "Layout", name: "/function", meta: { title: "功能演示", icon: "menu", hidden: false, alwaysShow: false, params: null, }, children: [ { path: "icon-demo", component: "demo/icons", name: "IconDemo", meta: { title: "Icons", icon: "el-icon-Notification", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, { path: "/function/websocket", component: "demo/websocket", name: "/function/websocket", meta: { title: "Websocket", icon: "", hidden: false, keepAlive: true, alwaysShow: false, params: null, }, }, { path: "other/:id", component: "demo/other", name: "Other/:id", meta: { title: "敬请期待...", icon: "", hidden: false, alwaysShow: false, params: null, }, }, ], }, ], msg: "一切ok", }, }, { url: "menus", method: ["GET"], body: { code: "00000", data: [ { id: 1, parentId: 0, name: "系统管理", type: "CATALOG", routeName: "", routePath: "/system", component: "Layout", sort: 1, visible: 1, icon: "system", redirect: "/system/user", perm: null, children: [ { id: 2, parentId: 1, name: "用户管理", type: "MENU", routeName: "User", routePath: "user", component: "system/user/index", sort: 1, visible: 1, icon: "el-icon-User", redirect: null, perm: null, children: [ { id: 105, parentId: 2, name: "用户查询", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 0, visible: 1, icon: "", redirect: null, perm: "sys:user:query", children: [], }, { id: 31, parentId: 2, name: "用户新增", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 1, visible: 1, icon: "", redirect: "", perm: "sys:user:add", children: [], }, { id: 32, parentId: 2, name: "用户编辑", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 2, visible: 1, icon: "", redirect: "", perm: "sys:user:edit", children: [], }, { id: 33, parentId: 2, name: "用户删除", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 3, visible: 1, icon: "", redirect: "", perm: "sys:user:delete", children: [], }, { id: 88, parentId: 2, name: "重置密码", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 4, visible: 1, icon: "", redirect: null, perm: "sys:user:password:reset", children: [], }, { id: 106, parentId: 2, name: "用户导入", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 5, visible: 1, icon: "", redirect: null, perm: "sys:user:import", children: [], }, { id: 107, parentId: 2, name: "用户导出", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 6, visible: 1, icon: "", redirect: null, perm: "sys:user:export", children: [], }, ], }, { id: 3, parentId: 1, name: "角色管理", type: "MENU", routeName: "Role", routePath: "role", component: "system/role/index", sort: 2, visible: 1, icon: "role", redirect: null, perm: null, children: [ { id: 70, parentId: 3, name: "角色新增", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 1, visible: 1, icon: "", redirect: null, perm: "sys:role:add", children: [], }, { id: 71, parentId: 3, name: "角色编辑", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 2, visible: 1, icon: "", redirect: null, perm: "sys:role:edit", children: [], }, { id: 72, parentId: 3, name: "角色删除", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 3, visible: 1, icon: "", redirect: null, perm: "sys:role:delete", children: [], }, ], }, { id: 4, parentId: 1, name: "菜单管理", type: "MENU", routeName: "Menu", routePath: "menu", component: "system/menu/index", sort: 3, visible: 1, icon: "menu", redirect: null, perm: null, children: [ { id: 73, parentId: 4, name: "菜单新增", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 1, visible: 1, icon: "", redirect: null, perm: "sys:menu:add", children: [], }, { id: 75, parentId: 4, name: "菜单删除", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 3, visible: 1, icon: "", redirect: null, perm: "sys:menu:delete", children: [], }, { id: 74, parentId: 4, name: "菜单编辑", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 3, visible: 1, icon: "", redirect: null, perm: "sys:menu:edit", children: [], }, ], }, { id: 5, parentId: 1, name: "部门管理", type: "MENU", routeName: "Dept", routePath: "dept", component: "system/dept/index", sort: 4, visible: 1, icon: "tree", redirect: null, perm: null, children: [ { id: 76, parentId: 5, name: "部门新增", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 1, visible: 1, icon: "", redirect: null, perm: "sys:dept:add", children: [], }, { id: 77, parentId: 5, name: "部门编辑", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 2, visible: 1, icon: "", redirect: null, perm: "sys:dept:edit", children: [], }, { id: 78, parentId: 5, name: "部门删除", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 3, visible: 1, icon: "", redirect: null, perm: "sys:dept:delete", children: [], }, ], }, { id: 6, parentId: 1, name: "字典管理", type: "MENU", routeName: "Dict", routePath: "dict", component: "system/dict/index", sort: 5, visible: 1, icon: "dict", redirect: null, perm: null, children: [ { id: 79, parentId: 6, name: "字典类型新增", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 1, visible: 1, icon: "", redirect: null, perm: "sys:dict_type:add", children: [], }, { id: 81, parentId: 6, name: "字典类型编辑", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 2, visible: 1, icon: "", redirect: null, perm: "sys:dict_type:edit", children: [], }, { id: 84, parentId: 6, name: "字典类型删除", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 3, visible: 1, icon: "", redirect: null, perm: "sys:dict_type:delete", children: [], }, { id: 85, parentId: 6, name: "字典数据新增", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 4, visible: 1, icon: "", redirect: null, perm: "sys:dict:add", children: [], }, { id: 86, parentId: 6, name: "字典数据编辑", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 5, visible: 1, icon: "", redirect: null, perm: "sys:dict:edit", children: [], }, { id: 87, parentId: 6, name: "字典数据删除", type: "BUTTON", routeName: null, routePath: "", component: null, sort: 6, visible: 1, icon: "", redirect: null, perm: "sys:dict:delete", children: [], }, ], }, ], }, { id: 40, parentId: 0, name: "接口文档", type: "CATALOG", routeName: null, routePath: "/api", component: "Layout", sort: 7, visible: 1, icon: "api", redirect: "", perm: null, children: [ { id: 41, parentId: 40, name: "Apifox", type: "MENU", routeName: null, routePath: "apifox", component: "demo/api/apifox", sort: 1, visible: 1, icon: "api", redirect: "", perm: null, children: [], }, ], }, { id: 26, parentId: 0, name: "平台文档", type: "CATALOG", routeName: null, routePath: "/doc", component: "Layout", sort: 8, visible: 1, icon: "document", redirect: "https://juejin.cn/post/7228990409909108793", perm: null, children: [ { id: 102, parentId: 26, name: "平台文档(内嵌)", type: "EXTLINK", routeName: null, routePath: "internal-doc", component: "demo/internal-doc", sort: 1, visible: 1, icon: "document", redirect: "", perm: null, children: [], }, { id: 30, parentId: 26, name: "平台文档(外链)", type: "EXTLINK", routeName: null, routePath: "https://juejin.cn/post/7228990409909108793", component: "", sort: 2, visible: 1, icon: "link", redirect: "", perm: null, children: [], }, ], }, { id: 20, parentId: 0, name: "多级菜单", type: "CATALOG", routeName: null, routePath: "/multi-level", component: "Layout", sort: 9, visible: 1, icon: "cascader", redirect: "", perm: null, children: [ { id: 21, parentId: 20, name: "菜单一级", type: "MENU", routeName: null, routePath: "multi-level1", component: "demo/multi-level/level1", sort: 1, visible: 1, icon: "", redirect: "", perm: null, children: [ { id: 22, parentId: 21, name: "菜单二级", type: "MENU", routeName: null, routePath: "multi-level2", component: "demo/multi-level/children/level2", sort: 1, visible: 1, icon: "", redirect: null, perm: null, children: [ { id: 23, parentId: 22, name: "菜单三级-1", type: "MENU", routeName: null, routePath: "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", routeName: null, routePath: "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", routeName: null, routePath: "/component", component: "Layout", sort: 10, visible: 1, icon: "menu", redirect: "", perm: null, children: [ { id: 108, parentId: 36, name: "增删改查", type: "MENU", routeName: null, routePath: "curd", component: "demo/curd/index", sort: 0, visible: 1, icon: "", redirect: "", perm: null, children: [], }, { id: 109, parentId: 36, name: "列表选择器", type: "MENU", routeName: null, routePath: "table-select", component: "demo/table-select/index", sort: 1, visible: 1, icon: "", redirect: "", perm: null, children: [], }, { id: 37, parentId: 36, name: "富文本编辑器", type: "MENU", routeName: null, routePath: "wang-editor", component: "demo/wang-editor", sort: 2, visible: 1, icon: "", redirect: "", perm: null, children: [], }, { id: 38, parentId: 36, name: "图片上传", type: "MENU", routeName: null, routePath: "upload", component: "demo/upload", sort: 3, visible: 1, icon: "", redirect: "", perm: null, children: [], }, { id: 95, parentId: 36, name: "字典组件", type: "MENU", routeName: null, routePath: "dict-demo", component: "demo/dict", sort: 4, visible: 1, icon: "", redirect: "", perm: null, children: [], }, { id: 39, parentId: 36, name: "图标选择器", type: "MENU", routeName: null, routePath: "icon-selector", component: "demo/icon-selector", sort: 4, visible: 1, icon: "", redirect: "", perm: null, children: [], }, ], }, { id: 110, parentId: 0, name: "路由参数", type: "CATALOG", routeName: null, routePath: "/route-param", component: "Layout", sort: 11, visible: 1, icon: "el-icon-ElementPlus", redirect: null, perm: null, children: [ { id: 111, parentId: 110, name: "参数(type=1)", type: "MENU", routeName: null, routePath: "route-param-type1", component: "demo/route-param", sort: 1, visible: 1, icon: "el-icon-Star", redirect: null, perm: null, children: [], }, { id: 112, parentId: 110, name: "参数(type=2)", type: "MENU", routeName: null, routePath: "route-param-type2", component: "demo/route-param", sort: 2, visible: 1, icon: "el-icon-StarFilled", redirect: null, perm: null, children: [], }, ], }, { id: 89, parentId: 0, name: "功能演示", type: "CATALOG", routeName: null, routePath: "/function", component: "Layout", sort: 12, visible: 1, icon: "menu", redirect: "", perm: null, children: [ { id: 97, parentId: 89, name: "Icons", type: "MENU", routeName: null, routePath: "icon-demo", component: "demo/icons", sort: 2, visible: 1, icon: "el-icon-Notification", redirect: "", perm: null, children: [], }, { id: 90, parentId: 89, name: "Websocket", type: "MENU", routeName: null, routePath: "/function/websocket", component: "demo/websocket", sort: 3, visible: 1, icon: "", redirect: "", perm: null, children: [], }, { id: 91, parentId: 89, name: "敬请期待...", type: "CATALOG", routeName: null, routePath: "other/:id", 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: 105, label: "用户查询", }, { value: 31, label: "用户新增", }, { value: 32, label: "用户编辑", }, { value: 33, label: "用户删除", }, { value: 88, label: "重置密码", }, { value: 106, label: "用户导入", }, { value: 107, label: "用户导出", }, ], }, { value: 3, label: "角色管理", children: [ { value: 70, label: "角色新增", }, { value: 71, label: "角色编辑", }, { value: 72, label: "角色删除", }, ], }, { value: 4, label: "菜单管理", children: [ { value: 73, label: "菜单新增", }, { value: 75, label: "菜单删除", }, { value: 74, 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: 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: 108, label: "增删改查", }, { value: 109, label: "列表选择器", }, { value: 37, label: "富文本编辑器", }, { value: 38, label: "图片上传", }, { value: 95, label: "字典组件", }, { value: 39, label: "图标选择器", }, ], }, { value: 110, label: "路由参数", children: [ { value: 111, label: "参数(type=1)", }, { value: 112, label: "参数(type=2)", }, ], }, { 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 = { 1: { id: 1, parentId: 0, name: "系统管理", type: "CATALOG", routeName: "", routePath: "/system", component: "Layout", perm: null, visible: 1, sort: 1, icon: "system", redirect: "/system/user", keepAlive: null, alwaysShow: null, params: null, }, 2: { id: 2, parentId: 1, name: "用户管理", type: "MENU", routeName: "User", routePath: "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", routeName: "Role", routePath: "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", routeName: "Menu", routePath: "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", routeName: "Dept", routePath: "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", routeName: "Dict", routePath: "dict", component: "system/dict/index", perm: null, visible: 1, sort: 5, icon: "dict", redirect: null, keepAlive: 1, alwaysShow: null, }, };