vue-pure-admin/mock/system.ts
xiaoming c314b0cd1c
feat: 添加系统管理-菜单管理 (#929)
* feat: 添加系统管理-菜单管理

* chore: update

* chore: add Copyright in login page

* chore: 将页脚放在一屏可视区

* chore: 依赖更新

* chore: update

* chore: update

* chore: 更新依赖

* chore: update `husky v9`

* style: 适配`el-dialog`样式的更新

* style: update `src/layout/components/search/components/SearchResult.vue`

* chore: update

* style: update

* fix: 修复`ReDialog`中点击取消和确定按钮会触发两次关闭回调

* chore: update

* chore: update src/views/system/menu/README.md

* chore: update

* chore: update

* chore: done

* chore: update
2024-02-26 22:17:40 +08:00

900 lines
25 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { defineFakeRoute } from "vite-plugin-fake-server/client";
import { faker } from "@faker-js/faker/locale/zh_CN";
export default defineFakeRoute([
// 用户管理
{
url: "/user",
method: "post",
response: ({ body }) => {
let list = [
{
username: "admin",
nickname: "admin",
avatar: "https://avatars.githubusercontent.com/u/44761321",
phone: "15888886789",
email: faker.internet.email(),
sex: 0,
id: 1,
status: 1,
dept: {
// 部门id
id: 103,
// 部门名称
name: "研发部门"
},
remark: "管理员",
createTime: 1605456000000
},
{
username: "common",
nickname: "common",
avatar: "https://avatars.githubusercontent.com/u/52823142",
phone: "18288882345",
email: faker.internet.email(),
sex: 1,
id: 2,
status: 1,
dept: {
id: 105,
name: "测试部门"
},
remark: "普通用户",
createTime: 1605456000000
}
];
list = list.filter(item => item.username.includes(body?.username));
list = list.filter(item =>
String(item.status).includes(String(body?.status))
);
if (body.phone) list = list.filter(item => item.phone === body.phone);
if (body.deptId) list = list.filter(item => item.dept.id === body.deptId);
return {
success: true,
data: {
list,
total: list.length, // 总条目数
pageSize: 10, // 每页显示条目个数
currentPage: 1 // 当前页数
}
};
}
},
// 用户管理-获取所有角色列表
{
url: "/list-all-role",
method: "get",
response: () => {
return {
success: true,
data: [
{ id: 1, name: "超级管理员" },
{ id: 2, name: "普通角色" }
]
};
}
},
// 用户管理-根据userId获取对应角色id列表userId用户id
{
url: "/list-role-ids",
method: "post",
response: ({ body }) => {
if (body.userId) {
if (body.userId == 1) {
return {
success: true,
data: [1]
};
} else if (body.userId == 2) {
return {
success: true,
data: [2]
};
}
} else {
return {
success: false,
data: []
};
}
}
},
// 角色管理
{
url: "/role",
method: "post",
response: ({ body }) => {
let list = [
{
createTime: 1605456000000, // 时间戳毫秒ms
updateTime: 1684512000000,
id: 1,
name: "超级管理员",
code: "admin",
status: 1, // 状态 1 启用 0 停用
remark: "超级管理员拥有最高权限"
},
{
createTime: 1605456000000,
updateTime: 1684512000000,
id: 2,
name: "普通角色",
code: "common",
status: 1,
remark: "普通角色拥有部分权限"
}
];
list = list.filter(item => item.name.includes(body?.name));
list = list.filter(item =>
String(item.status).includes(String(body?.status))
);
if (body.code) list = list.filter(item => item.code === body.code);
return {
success: true,
data: {
list,
total: list.length, // 总条目数
pageSize: 10, // 每页显示条目个数
currentPage: 1 // 当前页数
}
};
}
},
// 菜单管理
{
url: "/menu",
method: "post",
response: () => {
return {
success: true,
data: [
// 外部页面
{
parentId: 0,
id: 100,
menuType: 0, // 菜单类型0代表菜单、1代表iframe、2代表外链、3代表按钮
title: "menus.hsExternalPage",
name: "PureIframe",
path: "/iframe",
component: "",
rank: 7,
redirect: "",
icon: "ep:monitor",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 100,
id: 101,
menuType: 0,
title: "menus.hsExternalDoc",
name: "PureIframeExternal",
path: "/iframe/external",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 101,
id: 102,
menuType: 2,
title: "menus.externalLink",
name: "https://yiming_chang.gitee.io/pure-admin-doc",
path: "/external",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 101,
id: 103,
menuType: 2,
title: "menus.pureutilsLink",
name: "https://pure-admin-utils.netlify.app/",
path: "/pureutilsLink",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 100,
id: 104,
menuType: 1,
title: "menus.hsEmbeddedDoc",
name: "PureIframeEmbedded",
path: "/iframe/embedded",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 104,
id: 105,
menuType: 1,
title: "menus.hsEpDocument",
name: "FrameEp",
path: "/iframe/ep",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "https://element-plus.org/zh-CN/",
frameLoading: true,
keepAlive: true,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 104,
id: 106,
menuType: 1,
title: "menus.hsTailwindcssDocument",
name: "FrameTailwindcss",
path: "/iframe/tailwindcss",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "https://tailwindcss.com/docs/installation",
frameLoading: true,
keepAlive: true,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 104,
id: 107,
menuType: 1,
title: "menus.hsVueDocument",
name: "FrameVue",
path: "/iframe/vue3",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "https://cn.vuejs.org/",
frameLoading: true,
keepAlive: true,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 104,
id: 108,
menuType: 1,
title: "menus.hsViteDocument",
name: "FrameVite",
path: "/iframe/vite",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "https://cn.vitejs.dev/",
frameLoading: true,
keepAlive: true,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 104,
id: 109,
menuType: 1,
title: "menus.hsPiniaDocument",
name: "FramePinia",
path: "/iframe/pinia",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "https://pinia.vuejs.org/zh/index.html",
frameLoading: true,
keepAlive: true,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 104,
id: 110,
menuType: 1,
title: "menus.hsRouterDocument",
name: "FrameRouter",
path: "/iframe/vue-router",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "https://router.vuejs.org/zh/",
frameLoading: true,
keepAlive: true,
hiddenTag: false,
showLink: true,
showParent: false
},
// 权限管理
{
parentId: 0,
id: 200,
menuType: 0,
title: "menus.permission",
name: "PurePermission",
path: "/permission",
component: "",
rank: 9,
redirect: "",
icon: "ep:lollipop",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 200,
id: 201,
menuType: 0,
title: "menus.permissionPage",
name: "PermissionPage",
path: "/permission/page/index",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 200,
id: 202,
menuType: 0,
title: "menus.permissionButton",
name: "PermissionButton",
path: "/permission/button/index",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 202,
id: 203,
menuType: 3,
title: "添加",
name: "",
path: "",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "permission:btn:add",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 202,
id: 204,
menuType: 3,
title: "修改",
name: "",
path: "",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "permission:btn:edit",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 202,
id: 205,
menuType: 3,
title: "删除",
name: "",
path: "",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "permission:btn:delete",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
// 系统管理
{
parentId: 0,
id: 300,
menuType: 0,
title: "menus.hssysManagement",
name: "PureSystem",
path: "/system",
component: "",
rank: 10,
redirect: "",
icon: "ri:settings-3-line",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 300,
id: 301,
menuType: 0,
title: "menus.hsUser",
name: "SystemUser",
path: "/system/user/index",
component: "",
rank: null,
redirect: "",
icon: "ri:admin-line",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 300,
id: 302,
menuType: 0,
title: "menus.hsRole",
name: "SystemRole",
path: "/system/role/index",
component: "",
rank: null,
redirect: "",
icon: "ri:admin-fill",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 300,
id: 303,
menuType: 0,
title: "menus.hsSystemMenu",
name: "SystemMenu",
path: "/system/menu/index",
component: "",
rank: null,
redirect: "",
icon: "ep:menu",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 300,
id: 304,
menuType: 0,
title: "menus.hsDept",
name: "SystemDept",
path: "/system/dept/index",
component: "",
rank: null,
redirect: "",
icon: "ri:git-branch-line",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
// 标签页操作
{
parentId: 0,
id: 400,
menuType: 0,
title: "menus.hstabs",
name: "PureTabs",
path: "/tabs",
component: "",
rank: 11,
redirect: "",
icon: "ri:bookmark-2-line",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 400,
id: 401,
menuType: 0,
title: "menus.hstabs",
name: "Tabs",
path: "/tabs/index",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: true,
showParent: false
},
{
parentId: 400,
id: 402,
menuType: 0,
title: "query传参模式",
name: "TabQueryDetail",
path: "/tabs/query-detail",
component: "",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "/tabs/index",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: false,
showParent: false
},
{
parentId: 400,
id: 403,
menuType: 0,
title: "params传参模式",
name: "TabParamsDetail",
path: "/tabs/params-detail/:id",
component: "params-detail",
rank: null,
redirect: "",
icon: "",
extraIcon: "",
enterTransition: "",
leaveTransition: "",
activePath: "/tabs/index",
auths: "",
frameSrc: "",
frameLoading: true,
keepAlive: false,
hiddenTag: false,
showLink: false,
showParent: false
}
]
};
}
},
// 部门管理
{
url: "/dept",
method: "post",
response: () => {
return {
success: true,
data: [
{
name: "杭州总公司",
parentId: 0,
id: 100,
sort: 0,
phone: "15888888888",
principal: faker.person.firstName(),
email: faker.internet.email(),
status: 1, // 状态 1 启用 0 停用
type: 1, // 1 公司 2 分公司 3 部门
createTime: 1605456000000,
remark: "这里是备注信息这里是备注信息这里是备注信息这里是备注信息"
},
{
name: "郑州分公司",
parentId: 100,
id: 101,
sort: 1,
phone: "15888888888",
principal: faker.person.firstName(),
email: faker.internet.email(),
status: 1,
type: 2,
createTime: 1605456000000,
remark: "这里是备注信息这里是备注信息这里是备注信息这里是备注信息"
},
{
name: "研发部门",
parentId: 101,
id: 103,
sort: 1,
phone: "15888888888",
principal: faker.person.firstName(),
email: faker.internet.email(),
status: 1,
type: 3,
createTime: 1605456000000,
remark: "这里是备注信息这里是备注信息这里是备注信息这里是备注信息"
},
{
name: "市场部门",
parentId: 102,
id: 108,
sort: 1,
phone: "15888888888",
principal: faker.person.firstName(),
email: faker.internet.email(),
status: 1,
type: 3,
createTime: 1605456000000,
remark: "这里是备注信息这里是备注信息这里是备注信息这里是备注信息"
},
{
name: "深圳分公司",
parentId: 100,
id: 102,
sort: 2,
phone: "15888888888",
principal: faker.person.firstName(),
email: faker.internet.email(),
status: 1,
type: 2,
createTime: 1605456000000,
remark: "这里是备注信息这里是备注信息这里是备注信息这里是备注信息"
},
{
name: "市场部门",
parentId: 101,
id: 104,
sort: 2,
phone: "15888888888",
principal: faker.person.firstName(),
email: faker.internet.email(),
status: 1,
type: 3,
createTime: 1605456000000,
remark: "这里是备注信息这里是备注信息这里是备注信息这里是备注信息"
},
{
name: "财务部门",
parentId: 102,
id: 109,
sort: 2,
phone: "15888888888",
principal: faker.person.firstName(),
email: faker.internet.email(),
status: 1,
type: 3,
createTime: 1605456000000,
remark: "这里是备注信息这里是备注信息这里是备注信息这里是备注信息"
},
{
name: "测试部门",
parentId: 101,
id: 105,
sort: 3,
phone: "15888888888",
principal: faker.person.firstName(),
email: faker.internet.email(),
status: 0,
type: 3,
createTime: 1605456000000,
remark: "这里是备注信息这里是备注信息这里是备注信息这里是备注信息"
},
{
name: "财务部门",
parentId: 101,
id: 106,
sort: 4,
phone: "15888888888",
principal: faker.person.firstName(),
email: faker.internet.email(),
status: 1,
type: 3,
createTime: 1605456000000,
remark: "这里是备注信息这里是备注信息这里是备注信息这里是备注信息"
},
{
name: "运维部门",
parentId: 101,
id: 107,
sort: 5,
phone: "15888888888",
principal: faker.person.firstName(),
email: faker.internet.email(),
status: 0,
type: 3,
createTime: 1605456000000,
remark: "这里是备注信息这里是备注信息这里是备注信息这里是备注信息"
}
]
};
}
}
]);