You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

860 lines
20 KiB
TypeScript

import Mock from 'mockjs'
import { SUCCESS_CODE } from '@/constants'
import { toAnyString } from '@/utils'
const timeout = 1000
const adminList = [
{
path: '/dashboard',
component: '#',
name: 'Dashboard',
meta: {},
children: [
{
path: 'analysis',
component: 'views/Dashboard/Analysis',
name: 'Analysis',
meta: {
title: 'router.dashboard',
icon: 'vi-ant-design:dashboard-filled',
noCache: true,
affix: true
}
}
]
},
{
path: '/student',
component: '#',
redirect: '/student/list',
name: 'StudentManagement',
meta: {
title: 'router.studentManagement',
icon: 'vi-carbon:user-multiple',
alwaysShow: true
},
children: [
{
path: 'list',
component: 'views/Student/Student',
name: 'StudentList',
meta: {
title: 'router.studentList'
}
},
{
path: 'add',
component: 'views/Student/StudentAdd',
name: 'StudentAdd',
meta: {
title: 'router.studentAdd',
noTagsView: true,
noCache: true,
hidden: true,
canTo: true,
activeMenu: '/student/list'
}
},
{
path: 'edit/:id',
component: 'views/Student/StudentEdit',
name: 'StudentEdit',
meta: {
title: 'router.studentEdit',
noTagsView: true,
noCache: true,
hidden: true,
canTo: true,
activeMenu: '/student/list'
}
},
{
path: 'detail/:id',
component: 'views/Student/StudentDetail',
name: 'StudentDetail',
meta: {
title: 'router.studentDetail',
noTagsView: true,
noCache: true,
hidden: true,
canTo: true,
activeMenu: '/student/list'
}
}
]
},
{
path: '/teacher',
component: '#',
redirect: '/teacher/list',
name: 'TeacherManagement',
meta: {
title: 'router.teacherManagement',
icon: 'vi-carbon:user-speaker',
alwaysShow: true
},
children: [
{
path: 'list',
component: 'views/Teacher/Teacher',
name: 'TeacherList',
meta: {
title: 'router.teacherList'
}
},
{
path: 'add',
component: 'views/Teacher/TeacherAdd',
name: 'TeacherAdd',
meta: {
title: 'router.teacherAdd',
noTagsView: true,
noCache: true,
hidden: true,
canTo: true,
activeMenu: '/teacher/list'
}
},
{
path: 'edit/:id',
component: 'views/Teacher/TeacherEdit',
name: 'TeacherEdit',
meta: {
title: 'router.teacherEdit',
noTagsView: true,
noCache: true,
hidden: true,
canTo: true,
activeMenu: '/teacher/list'
}
},
{
path: 'detail/:id',
component: 'views/Teacher/TeacherDetail',
name: 'TeacherDetail',
meta: {
title: 'router.teacherDetail',
noTagsView: true,
noCache: true,
hidden: true,
canTo: true,
activeMenu: '/teacher/list'
}
}
]
},
{
path: '/major',
component: '#',
redirect: '/major/list',
name: 'MajorManagement',
meta: {
title: 'router.majorManagement',
icon: 'vi-carbon:education',
alwaysShow: true
},
children: [
{
path: 'list',
component: 'views/Major/Major',
name: 'MajorList',
meta: {
title: 'router.majorList'
}
},
{
path: 'add',
component: 'views/Major/MajorAdd',
name: 'MajorAdd',
meta: {
title: 'router.majorAdd',
noTagsView: true,
noCache: true,
hidden: true,
canTo: true,
activeMenu: '/major/list'
}
},
{
path: 'edit/:id',
component: 'views/Major/MajorEdit',
name: 'MajorEdit',
meta: {
title: 'router.majorEdit',
noTagsView: true,
noCache: true,
hidden: true,
canTo: true,
activeMenu: '/major/list'
}
},
{
path: 'detail/:id',
component: 'views/Major/MajorDetail',
name: 'MajorDetail',
meta: {
title: 'router.majorDetail',
noTagsView: true,
noCache: true,
hidden: true,
canTo: true,
activeMenu: '/major/list'
}
}
]
},
{
path: '/class',
component: '#',
redirect: '/class/list',
name: 'ClassManagement',
meta: {
title: 'router.classManagement',
icon: 'vi-ep:calendar',
alwaysShow: true
},
children: [
{
path: 'list',
component: 'views/Class/Class',
name: 'ClassList',
meta: {
title: 'router.classList'
}
},
{
path: 'add',
component: 'views/Class/ClassAdd',
name: 'ClassAdd',
meta: {
title: 'router.classAdd',
noTagsView: true,
noCache: true,
hidden: true,
canTo: true,
activeMenu: '/class/list'
}
},
{
path: 'edit/:id',
component: 'views/Class/ClassEdit',
name: 'ClassEdit',
meta: {
title: 'router.classEdit',
noTagsView: true,
noCache: true,
hidden: true,
canTo: true,
activeMenu: '/class/list'
}
},
{
path: 'detail/:id',
component: 'views/Class/ClassDetail',
name: 'ClassDetail',
meta: {
title: 'router.classDetail',
noTagsView: true,
noCache: true,
hidden: true,
canTo: true,
activeMenu: '/class/list'
}
}
]
},
{
path: '/system',
component: '#',
redirect: '/system/user',
name: 'SystemManagement',
meta: {
title: 'router.systemManagement',
icon: 'vi-carbon:settings',
alwaysShow: true
},
children: [
{
path: 'user',
component: 'views/Authorization/User/User',
name: 'User',
meta: {
title: 'router.user'
}
},
{
path: 'role',
component: 'views/Authorization/Role/Role',
name: 'Role',
meta: {
title: 'router.role'
}
},
{
path: 'menu',
component: 'views/Authorization/Menu/Menu',
name: 'Menu',
meta: {
title: 'router.menuManagement'
}
}
]
}
]
const testList: string[] = [
'/dashboard',
'/dashboard/analysis',
'/dashboard/workplace',
'external-link',
'https://element-plus-admin-doc.cn/',
'/guide',
'/guide/index',
'/components',
'/components/form',
'/components/form/default-form',
'/components/form/use-form',
'/components/form/ref-form',
'/components/table',
'/components/table/default-table',
'/components/table/use-table',
'/components/table/tree-table',
'/components/table/table-image-preview',
'/components/table/table-video-preview',
'/components/table/ref-table',
'/components/table/card-table',
'/components/editor-demo',
'/components/editor-demo/editor',
'/components/editor-demo/json-editor',
'/components/editor-demo/code-editor',
'/components/search',
'/components/descriptions',
'/components/image-viewer',
'/components/dialog',
'/components/icon',
'/components/iconPicker',
'/components/echart',
'/components/count-to',
'/components/qrcode',
'/components/highlight',
'/components/infotip',
'/components/input-password',
'/components/waterfall',
'/components/image-cropping',
'/components/video-player',
'/components/avatars',
'/components/i-agree',
'function',
'/function/multiple-tabs',
'/function/multiple-tabs-demo/:id',
'/function/request',
'/function/test',
'/hooks',
'/hooks/useWatermark',
'/hooks/useTagsView',
'/hooks/useValidator',
'/hooks/useCrudSchemas',
'/hooks/useClipboard',
'/hooks/useNetwork',
'/level',
'/level/menu1',
'/level/menu1/menu1-1',
'/level/menu1/menu1-1/menu1-1-1',
'/level/menu1/menu1-2',
'/level/menu2',
'/example',
'/example/example-dialog',
'/example/example-page',
'/example/example-add',
'/example/example-edit',
'/example/example-detail',
'/authorization',
'/authorization/department',
'/authorization/user',
'/authorization/role',
'/authorization/menu',
'/error',
'/error/404-demo',
'/error/403-demo',
'/error/500-demo'
]
const List: any[] = []
const roleNames = ['超级管理员', '管理员', '普通用户', '游客']
const menus = [
[
{
path: '/dashboard',
component: '#',
redirect: '/dashboard/analysis',
name: 'Dashboard',
status: Mock.Random.integer(0, 1),
id: 1,
meta: {
title: '首页',
icon: 'vi-ant-design:dashboard-filled',
alwaysShow: true
},
children: [
{
path: 'analysis',
component: 'views/Dashboard/Analysis',
name: 'Analysis',
status: Mock.Random.integer(0, 1),
id: 2,
meta: {
title: '分析页',
noCache: true
}
},
{
path: 'workplace',
component: 'views/Dashboard/Workplace',
name: 'Workplace',
status: Mock.Random.integer(0, 1),
id: 3,
meta: {
title: '工作台',
noCache: true
}
}
]
},
{
path: '/external-link',
component: '#',
meta: {
title: '文档',
icon: 'vi-clarity:document-solid'
},
name: 'ExternalLink',
status: Mock.Random.integer(0, 1),
id: 4,
children: [
{
path: 'https://element-plus-admin-doc.cn/',
name: 'DocumentLink',
status: Mock.Random.integer(0, 1),
id: 5,
meta: {
title: '文档'
}
}
]
},
{
path: '/level',
component: '#',
redirect: '/level/menu1/menu1-1/menu1-1-1',
name: 'Level',
status: Mock.Random.integer(0, 1),
id: 6,
meta: {
title: '菜单',
icon: 'vi-carbon:skill-level-advanced'
},
children: [
{
path: 'menu1',
name: 'Menu1',
component: '##',
status: Mock.Random.integer(0, 1),
id: 7,
redirect: '/level/menu1/menu1-1/menu1-1-1',
meta: {
title: '菜单1'
},
children: [
{
path: 'menu1-1',
name: 'Menu11',
component: '##',
status: Mock.Random.integer(0, 1),
id: 8,
redirect: '/level/menu1/menu1-1/menu1-1-1',
meta: {
title: '菜单1-1',
alwaysShow: true
},
children: [
{
path: 'menu1-1-1',
name: 'Menu111',
component: 'views/Level/Menu111',
status: Mock.Random.integer(0, 1),
id: 9,
permission: ['edit', 'add', 'delete'],
meta: {
title: '菜单1-1-1',
permission: ['edit', 'add', 'delete']
}
}
]
},
{
path: 'menu1-2',
name: 'Menu12',
component: 'views/Level/Menu12',
status: Mock.Random.integer(0, 1),
id: 10,
permission: ['edit', 'add', 'delete'],
meta: {
title: '菜单1-2',
permission: ['edit', 'add', 'delete']
}
}
]
},
{
path: 'menu2',
name: 'Menu2Demo',
component: 'views/Level/Menu2',
status: Mock.Random.integer(0, 1),
id: 11,
permission: ['edit', 'add', 'delete'],
meta: {
title: '菜单2',
permission: ['edit', 'add', 'delete']
}
}
]
},
{
path: '/example',
component: '#',
redirect: '/example/example-dialog',
name: 'Example',
status: Mock.Random.integer(0, 1),
id: 12,
meta: {
title: '综合示例',
icon: 'vi-ep:management',
alwaysShow: true
},
children: [
{
path: 'example-dialog',
component: 'views/Example/Dialog/ExampleDialog',
name: 'ExampleDialog',
status: Mock.Random.integer(0, 1),
id: 13,
permission: ['edit', 'add', 'delete'],
meta: {
title: '综合示例-弹窗',
permission: ['edit', 'add', 'delete']
}
},
{
path: 'example-page',
component: 'views/Example/Page/ExamplePage',
name: 'ExamplePage',
status: Mock.Random.integer(0, 1),
id: 14,
permission: ['edit', 'add', 'delete'],
meta: {
title: '综合示例-页面',
permission: ['edit', 'add', 'delete']
}
},
{
path: 'example-add',
component: 'views/Example/Page/ExampleAdd',
name: 'ExampleAdd',
status: Mock.Random.integer(0, 1),
id: 15,
permission: ['edit', 'add', 'delete'],
meta: {
title: '综合示例-新增',
noTagsView: true,
noCache: true,
hidden: true,
showMainRoute: true,
activeMenu: '/example/example-page',
permission: ['edit', 'add', 'delete']
}
},
{
path: 'example-edit',
component: 'views/Example/Page/ExampleEdit',
name: 'ExampleEdit',
status: Mock.Random.integer(0, 1),
id: 16,
permission: ['edit', 'add', 'delete'],
meta: {
title: '综合示例-编辑',
noTagsView: true,
noCache: true,
hidden: true,
showMainRoute: true,
activeMenu: '/example/example-page',
permission: ['edit', 'add', 'delete']
}
},
{
path: 'example-detail',
component: 'views/Example/Page/ExampleDetail',
name: 'ExampleDetail',
status: Mock.Random.integer(0, 1),
id: 17,
permission: ['edit', 'add', 'delete'],
meta: {
title: '综合示例-详情',
noTagsView: true,
noCache: true,
hidden: true,
showMainRoute: true,
activeMenu: '/example/example-page',
permission: ['edit', 'add', 'delete']
}
}
]
}
],
[
{
path: '/dashboard',
component: '#',
redirect: '/dashboard/analysis',
name: 'Dashboard',
status: Mock.Random.integer(0, 1),
id: 1,
meta: {
title: '首页',
icon: 'vi-ant-design:dashboard-filled',
alwaysShow: true
},
children: [
{
path: 'analysis',
component: 'views/Dashboard/Analysis',
name: 'Analysis',
status: Mock.Random.integer(0, 1),
id: 2,
meta: {
title: '分析页',
noCache: true
}
},
{
path: 'workplace',
component: 'views/Dashboard/Workplace',
name: 'Workplace',
status: Mock.Random.integer(0, 1),
id: 3,
meta: {
title: '工作台',
noCache: true
}
}
]
}
],
[
{
path: '/external-link',
component: '#',
meta: {
title: '文档',
icon: 'vi-clarity:document-solid'
},
name: 'ExternalLink',
status: Mock.Random.integer(0, 1),
id: 4,
children: [
{
path: 'https://element-plus-admin-doc.cn/',
name: 'DocumentLink',
status: Mock.Random.integer(0, 1),
id: 5,
meta: {
title: '文档'
}
}
]
},
{
path: '/level',
component: '#',
redirect: '/level/menu1/menu1-1/menu1-1-1',
name: 'Level',
status: Mock.Random.integer(0, 1),
id: 6,
meta: {
title: '菜单',
icon: 'vi-carbon:skill-level-advanced'
},
children: [
{
path: 'menu1',
name: 'Menu1',
component: '##',
status: Mock.Random.integer(0, 1),
id: 7,
redirect: '/level/menu1/menu1-1/menu1-1-1',
meta: {
title: '菜单1'
},
children: [
{
path: 'menu1-1',
name: 'Menu11',
component: '##',
status: Mock.Random.integer(0, 1),
id: 8,
redirect: '/level/menu1/menu1-1/menu1-1-1',
meta: {
title: '菜单1-1',
alwaysShow: true
},
children: [
{
path: 'menu1-1-1',
name: 'Menu111',
component: 'views/Level/Menu111',
status: Mock.Random.integer(0, 1),
id: 9,
permission: ['edit', 'add', 'delete'],
meta: {
title: '菜单1-1-1',
permission: ['edit', 'add', 'delete']
}
}
]
},
{
path: 'menu1-2',
name: 'Menu12',
component: 'views/Level/Menu12',
status: Mock.Random.integer(0, 1),
id: 10,
permission: ['edit', 'add', 'delete'],
meta: {
title: '菜单1-2',
permission: ['edit', 'add', 'delete']
}
}
]
},
{
path: 'menu2',
name: 'Menu2Demo',
component: 'views/Level/Menu2',
status: Mock.Random.integer(0, 1),
id: 11,
permission: ['edit', 'add', 'delete'],
meta: {
title: '菜单2',
permission: ['edit', 'add', 'delete']
}
}
]
}
],
[
{
path: '/example',
component: '#',
redirect: '/example/example-dialog',
name: 'Example',
status: Mock.Random.integer(0, 1),
id: 12,
meta: {
title: '综合示例',
icon: 'vi-ep:management',
alwaysShow: true
},
children: [
{
path: 'example-detail',
component: 'views/Example/Page/ExampleDetail',
name: 'ExampleDetail',
status: Mock.Random.integer(0, 1),
id: 17,
permission: ['edit', 'add', 'delete'],
meta: {
title: '综合示例-详情',
noTagsView: true,
noCache: true,
hidden: true,
showMainRoute: true,
activeMenu: '/example/example-page',
permission: ['edit', 'add', 'delete']
}
}
]
}
]
]
for (let i = 0; i < 4; i++) {
List.push(
Mock.mock({
id: toAnyString(),
// timestamp: +Mock.Random.date('T'),
roleName: roleNames[i],
role: '@first',
status: Mock.Random.integer(0, 1),
createTime: '@datetime',
remark: '@cword(10, 15)',
menu: menus[i]
})
)
}
export default [
// 列表接口
{
url: '/mock/role/list',
method: 'get',
timeout,
response: () => {
return {
code: SUCCESS_CODE,
data: adminList
}
}
},
{
url: '/mock/role/table',
method: 'get',
timeout,
response: () => {
return {
code: SUCCESS_CODE,
data: {
list: List,
total: 4
}
}
}
},
// 列表接口
{
url: '/mock/role/list2',
method: 'get',
timeout,
response: () => {
return {
code: SUCCESS_CODE,
data: testList
}
}
},
{
url: '/mock/role/table',
method: 'get',
timeout,
response: () => {
return {
code: SUCCESS_CODE,
data: {
list: List,
total: 4
}
}
}
}
]