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.
271 lines
5.9 KiB
TypeScript
271 lines
5.9 KiB
TypeScript
import { resultSuccess, resultError, getRequestToken, requestParams,baseUrl} from '../_util';
|
|
import { MockMethod } from 'vite-plugin-mock';
|
|
import { createFakeUserList } from './user';
|
|
|
|
// single
|
|
const dashboardRoute = {
|
|
path: '/dashboard',
|
|
name: 'Dashboard',
|
|
component: 'LAYOUT',
|
|
redirect: '/dashboard/analysis',
|
|
meta: {
|
|
title: 'routes.dashboard.dashboard',
|
|
hideChildrenInMenu: true,
|
|
icon: 'bx:bx-home',
|
|
},
|
|
children: [
|
|
{
|
|
path: 'analysis',
|
|
name: 'Analysis',
|
|
component: '/dashboard/Analysis/index',
|
|
meta: {
|
|
hideMenu: true,
|
|
hideBreadcrumb: true,
|
|
title: 'routes.dashboard.analysis',
|
|
currentActiveMenu: '/dashboard',
|
|
icon: 'bx:bx-home',
|
|
},
|
|
},
|
|
{
|
|
path: 'workbench',
|
|
name: 'Workbench',
|
|
component: '/dashboard/workbench/index',
|
|
meta: {
|
|
hideMenu: true,
|
|
hideBreadcrumb: true,
|
|
title: 'routes.dashboard.workbench',
|
|
currentActiveMenu: '/dashboard',
|
|
icon: 'bx:bx-home',
|
|
},
|
|
},
|
|
],
|
|
};
|
|
|
|
const backRoute = {
|
|
path: 'back',
|
|
name: 'PermissionBackDemo',
|
|
meta: {
|
|
title: 'routes.demo.permission.back',
|
|
},
|
|
|
|
children: [
|
|
{
|
|
path: 'page',
|
|
name: 'BackAuthPage',
|
|
component: '/demo/permission/back/index',
|
|
meta: {
|
|
title: 'routes.demo.permission.backPage',
|
|
},
|
|
},
|
|
{
|
|
path: 'btn',
|
|
name: 'BackAuthBtn',
|
|
component: '/demo/permission/back/Btn',
|
|
meta: {
|
|
title: 'routes.demo.permission.backBtn',
|
|
},
|
|
},
|
|
],
|
|
};
|
|
|
|
const authRoute = {
|
|
path: '/permission',
|
|
name: 'Permission',
|
|
component: 'LAYOUT',
|
|
redirect: '/permission/front/page',
|
|
meta: {
|
|
icon: 'carbon:user-role',
|
|
title: 'routes.demo.permission.permission',
|
|
},
|
|
children: [backRoute],
|
|
};
|
|
|
|
const levelRoute = {
|
|
path: '/level',
|
|
name: 'Level',
|
|
component: 'LAYOUT',
|
|
redirect: '/level/menu1/menu1-1',
|
|
meta: {
|
|
icon: 'carbon:user-role',
|
|
title: 'routes.demo.level.level',
|
|
},
|
|
|
|
children: [
|
|
{
|
|
path: 'menu1',
|
|
name: 'Menu1Demo',
|
|
meta: {
|
|
title: 'Menu1',
|
|
},
|
|
children: [
|
|
{
|
|
path: 'menu1-1',
|
|
name: 'Menu11Demo',
|
|
meta: {
|
|
title: 'Menu1-1',
|
|
},
|
|
children: [
|
|
{
|
|
path: 'menu1-1-1',
|
|
name: 'Menu111Demo',
|
|
component: '/demo/level/Menu111',
|
|
meta: {
|
|
title: 'Menu111',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: 'menu1-2',
|
|
name: 'Menu12Demo',
|
|
component: '/demo/level/Menu12',
|
|
meta: {
|
|
title: 'Menu1-2',
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
path: 'menu2',
|
|
name: 'Menu2Demo',
|
|
component: '/demo/level/Menu2',
|
|
meta: {
|
|
title: 'Menu2',
|
|
},
|
|
},
|
|
],
|
|
};
|
|
|
|
const sysRoute = {
|
|
path: '/system',
|
|
name: 'System',
|
|
component: 'LAYOUT',
|
|
redirect: '/system/account',
|
|
meta: {
|
|
icon: 'ion:settings-outline',
|
|
title: 'routes.demo.system.moduleName',
|
|
},
|
|
children: [
|
|
{
|
|
path: 'account',
|
|
name: 'AccountManagement',
|
|
meta: {
|
|
title: 'routes.demo.system.account',
|
|
ignoreKeepAlive: true,
|
|
},
|
|
component: '/demo/system/account/index',
|
|
},
|
|
{
|
|
path: 'account_detail/:id',
|
|
name: 'AccountDetail',
|
|
meta: {
|
|
hideMenu: true,
|
|
title: 'routes.demo.system.account_detail',
|
|
ignoreKeepAlive: true,
|
|
showMenu: false,
|
|
currentActiveMenu: '/system/account',
|
|
},
|
|
component: '/demo/system/account/AccountDetail',
|
|
},
|
|
{
|
|
path: 'role',
|
|
name: 'RoleManagement',
|
|
meta: {
|
|
title: 'routes.demo.system.role',
|
|
ignoreKeepAlive: true,
|
|
},
|
|
component: '/demo/system/role/index',
|
|
},
|
|
|
|
{
|
|
path: 'menu',
|
|
name: 'MenuManagement',
|
|
meta: {
|
|
title: 'routes.demo.system.menu',
|
|
ignoreKeepAlive: true,
|
|
},
|
|
component: '/demo/system/menu/index',
|
|
},
|
|
{
|
|
path: 'dept',
|
|
name: 'DeptManagement',
|
|
meta: {
|
|
title: 'routes.demo.system.dept',
|
|
ignoreKeepAlive: true,
|
|
},
|
|
component: '/demo/system/dept/index',
|
|
},
|
|
{
|
|
path: 'changePassword',
|
|
name: 'ChangePassword',
|
|
meta: {
|
|
title: 'routes.demo.system.password',
|
|
ignoreKeepAlive: true,
|
|
},
|
|
component: '/demo/system/password/index',
|
|
},
|
|
],
|
|
};
|
|
|
|
const linkRoute = {
|
|
path: '/link',
|
|
name: 'Link',
|
|
component: 'LAYOUT',
|
|
meta: {
|
|
icon: 'ion:tv-outline',
|
|
title: 'routes.demo.iframe.frame',
|
|
},
|
|
children: [
|
|
{
|
|
path: 'doc',
|
|
name: 'Doc',
|
|
meta: {
|
|
title: 'routes.demo.iframe.doc',
|
|
frameSrc: 'https://vvbin.cn/doc-next/',
|
|
},
|
|
},
|
|
{
|
|
path: 'https://vvbin.cn/doc-next/',
|
|
name: 'DocExternal',
|
|
component: 'LAYOUT',
|
|
meta: {
|
|
title: 'routes.demo.iframe.docExternal',
|
|
},
|
|
},
|
|
],
|
|
};
|
|
|
|
export default [
|
|
{
|
|
url: `${baseUrl}/sys/permission/getUserPermissionByToken`,
|
|
timeout: 1000,
|
|
method: 'get',
|
|
response: (request: requestParams) => {
|
|
const token = getRequestToken(request);
|
|
if (!token) {
|
|
return resultError('Invalid token!');
|
|
}
|
|
const checkUser = createFakeUserList().find((item) => item.token === token);
|
|
if (!checkUser) {
|
|
return resultError('Invalid user token!');
|
|
}
|
|
const id = checkUser.userId;
|
|
let menu: Object[];
|
|
switch (id) {
|
|
case '1':
|
|
dashboardRoute.redirect = dashboardRoute.path + '/' + dashboardRoute.children[0].path;
|
|
menu = [dashboardRoute, authRoute, levelRoute, sysRoute, linkRoute];
|
|
break;
|
|
case '2':
|
|
dashboardRoute.redirect = dashboardRoute.path + '/' + dashboardRoute.children[1].path;
|
|
menu = [dashboardRoute, authRoute, levelRoute, linkRoute];
|
|
break;
|
|
default:
|
|
menu = [];
|
|
}
|
|
|
|
return resultSuccess(menu);
|
|
},
|
|
},
|
|
] as MockMethod[];
|