272 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
			
		
		
	
	
			272 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
import { resultSuccess, resultError, getRequestToken, requestParams,baseUrl} from '../_util';
 | 
						|
import { MockMethod } from 'vite-plugin-mock';
 | 
						|
import { createFakeUserList } from './user';
 | 
						|
import { PageEnum } from '/@/enums/pageEnum';
 | 
						|
 | 
						|
// single
 | 
						|
const dashboardRoute = {
 | 
						|
  path: '/dashboard',
 | 
						|
  name: 'Dashboard',
 | 
						|
  component: 'LAYOUT',
 | 
						|
  redirect: PageEnum.BASE_HOME,
 | 
						|
  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[];
 |