Files
HIS/front/mock/menu.mock.ts
2025-05-04 23:07:09 +08:00

312 lines
6.8 KiB
TypeScript

import { defineMock } from "./base";
export default defineMock([
{
url: "menus/routes",
method: ["GET"],
body: {
code: "00000",
data: [
{
path: "/Home",
component: "@/pages/HomePage.vue",
name: "Home",
meta: {
title: "首页",
icon: "home-icon",
hidden: false,
alwaysShow: true,
keepAlive: true,
params: null
},
children: [
{
path: "/menjizhen-item",
component: "@/pages/zl-station/menjizhenItemView.vue",
name: "MenjizhenItem",
meta: {
title: "门急诊医生站",
icon: "doctor-icon",
hidden: false,
alwaysShow: true,
keepAlive: true,
params: null
}
},
{
path: "/zhuyuan-item",
component: "@/pages/zl-station/zhuyuanItemView.vue",
name: "ZhuyuanItem",
meta: {
title: "住院医生站",
icon: "hospital-icon",
hidden: false,
alwaysShow: true,
keepAlive: true,
params: null
},
}
]
},
{
path: "/login",
component: "@/pages/LoginPage.vue",
name: "LoginView",
meta: {
title: "登录",
icon: "login-icon",
hidden: true,
alwaysShow: false,
keepAlive: false,
params: null
},
children: []
},
{
path: "/:pathMatch(.*)*",
component: "@/pages/404/notFoundPage.vue",
name: "NotFound",
meta: {
title: "404",
icon: "error-icon",
hidden: true,
alwaysShow: false,
keepAlive: false,
params: null
},
children: []
}
],
msg: "获取菜单路由成功"
}
},
// 获取菜单树形表格列表
{
url: "menus",
method: ["GET"],
body: {
code: "00000",
"data": [
{
"id": 1,
"parentId": 0,
"name": "首页",
"type": "CATALOG",
"routeName": "Home",
"routePath": "/Home",
"component": "@/pages/HomePage.vue",
"sort": 1,
"visible": 1,
"icon": "home-icon",
"redirect": null,
"perm": null,
"children": [
{
"id": 11,
"parentId": 1,
"name": "门急诊医生站",
"type": "MENU",
"routeName": "MenjizhenItem",
"routePath": "/menjizhen-item",
"component": "@/pages/zl-station/menjizhenItemView.vue",
"sort": 1,
"visible": 1,
"icon": "doctor-icon",
"redirect": null,
"perm": null,
"children": []
},
{
"id": 12,
"parentId": 1,
"name": "住院医生站",
"type": "MENU",
"routeName": "ZhuyuanItem",
"routePath": "/zhuyuan-item",
"component": "@/pages/zl-station/zhuyuanItemView.vue",
"sort": 2,
"visible": 1,
"icon": "hospital-icon",
"redirect": null,
"perm": null,
"children": []
}
]
},
{
"id": 2,
"parentId": 0,
"name": "登录",
"type": "MENU",
"routeName": "LoginView",
"routePath": "/login",
"component": "@/pages/LoginPage.vue",
"sort": 99,
"visible": 0, // 对应hidden: true
"icon": "login-icon",
"redirect": null,
"perm": null,
"children": []
}
],
msg: "一切ok",
},
},
// 获取菜单树形下拉列表
{
url: "menus/options",
method: ["GET"],
body: {
code: "00000",
"data": [
{
"value": 1,
"label": "首页",
"children": [
{
"value": 11,
"label": "门急诊医生站",
},
{
"value": 12,
"label": "住院医生站",
}
]
},
{
"value": 2,
"label": "登录",
"children": []
}
],
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",
routeName: "Home",
routePath: "/Home",
component: "@/pages/HomePage.vue",
perm: null,
visible: 1,
sort: 1,
icon: "home-icon",
redirect: null,
keepAlive: 1,
alwaysShow: 1,
params: null
},
11: {
id: 11,
parentId: 1,
name: "门急诊医生站",
type: "MENU",
routeName: "MenjizhenItem",
routePath: "/menjizhen-item",
component: "@/pages/zl-station/menjizhenItemView.vue",
perm: null,
visible: 1,
sort: 1,
icon: "doctor-icon",
redirect: null,
keepAlive: 1,
alwaysShow: 1,
params: null
},
12: {
id: 12,
parentId: 1,
name: "住院医生站",
type: "MENU",
routeName: "ZhuyuanItem",
routePath: "/zhuyuan-item",
component: "@/pages/zl-station/zhuyuanItemView.vue",
perm: null,
visible: 1,
sort: 2,
icon: "hospital-icon",
redirect: null,
keepAlive: 1,
alwaysShow: 1,
params: null
},
2: {
id: 2,
parentId: 0,
name: "登录",
type: "MENU",
routeName: "LoginView",
routePath: "/login",
component: "@/pages/LoginPage.vue",
perm: null,
visible: 0,
sort: 99,
icon: "login-icon",
redirect: null,
keepAlive: 0,
alwaysShow: 0,
params: null
}
};