| | |
| | | import { resultSuccess } from '../_util'; |
| | | import { resultSuccess, resultError, getRequestToken, requestParams } from '../_util'; |
| | | import { MockMethod } from 'vite-plugin-mock'; |
| | | import { createFakeUserList } from './user'; |
| | | |
| | | // single |
| | | const dashboardRoute = { |
| | | path: '/home', |
| | | name: 'Welcome', |
| | | component: '/dashboard/welcome/index', |
| | | path: '/dashboard', |
| | | name: 'Dashboard', |
| | | component: 'LAYOUT', |
| | | redirect: '/dashboard/analysis', |
| | | meta: { |
| | | title: 'routes.dashboard.welcome', |
| | | affix: true, |
| | | title: 'routes.dashboard.dashboard', |
| | | hideChildrenInMenu: true, |
| | | icon: 'bx:bx-home', |
| | | }, |
| | | }; |
| | | |
| | | const frontRoute = { |
| | | path: 'front', |
| | | name: 'PermissionFrontDemo', |
| | | meta: { |
| | | title: 'routes.demo.permission.front', |
| | | }, |
| | | children: [ |
| | | { |
| | | path: 'page', |
| | | name: 'FrontPageAuth', |
| | | component: '/demo/permission/front/index', |
| | | path: 'analysis', |
| | | name: 'Analysis', |
| | | component: '/dashboard/analysis/index', |
| | | meta: { |
| | | title: 'routes.demo.permission.frontPage', |
| | | hideMenu: true, |
| | | hideBreadcrumb: true, |
| | | title: 'routes.dashboard.analysis', |
| | | currentActiveMenu: '/dashboard', |
| | | icon: 'bx:bx-home', |
| | | }, |
| | | }, |
| | | { |
| | | path: 'btn', |
| | | name: 'FrontBtnAuth', |
| | | component: '/demo/permission/front/Btn', |
| | | path: 'workbench', |
| | | name: 'Workbench', |
| | | component: '/dashboard/workbench/index', |
| | | meta: { |
| | | title: 'routes.demo.permission.frontBtn', |
| | | }, |
| | | }, |
| | | { |
| | | path: 'auth-pageA', |
| | | name: 'FrontAuthPageA', |
| | | component: '/demo/permission/front/AuthPageA', |
| | | meta: { |
| | | title: 'routes.demo.permission.frontTestA', |
| | | }, |
| | | }, |
| | | { |
| | | path: 'auth-pageB', |
| | | name: 'FrontAuthPageB', |
| | | component: '/demo/permission/front/AuthPageB', |
| | | meta: { |
| | | title: 'routes.demo.permission.frontTestB', |
| | | hideMenu: true, |
| | | hideBreadcrumb: true, |
| | | title: 'routes.dashboard.workbench', |
| | | currentActiveMenu: '/dashboard', |
| | | icon: 'bx:bx-home', |
| | | }, |
| | | }, |
| | | ], |
| | | }; |
| | | |
| | | const backRoute = { |
| | | path: 'back', |
| | | name: 'PermissionBackDemo', |
| | |
| | | }, |
| | | ], |
| | | }; |
| | | const authRoute = { |
| | | path: '/permission', |
| | | name: 'Permission', |
| | | component: 'LAYOUT', |
| | | redirect: '/permission/front/page', |
| | | meta: { |
| | | icon: 'carbon:user-role', |
| | | title: 'routes.demo.permission.permission', |
| | | }, |
| | | children: [frontRoute, backRoute], |
| | | }; |
| | | |
| | | const authRoute1 = { |
| | | const authRoute = { |
| | | path: '/permission', |
| | | name: 'Permission', |
| | | component: 'LAYOUT', |
| | |
| | | }, |
| | | ], |
| | | }; |
| | | |
| | | 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://doc.vvbin.cn/', |
| | | }, |
| | | }, |
| | | { |
| | | path: 'https://doc.vvbin.cn/', |
| | | name: 'DocExternal', |
| | | component: 'LAYOUT', |
| | | meta: { |
| | | title: 'routes.demo.iframe.docExternal', |
| | | }, |
| | | }, |
| | | ], |
| | | }; |
| | | |
| | | export default [ |
| | | { |
| | | url: '/basic-api/getMenuListById', |
| | | url: '/basic-api/getMenuList', |
| | | timeout: 1000, |
| | | method: 'get', |
| | | response: ({ query }) => { |
| | | const { id } = query; |
| | | if (!id || id === '1') { |
| | | return resultSuccess([dashboardRoute, authRoute, levelRoute]); |
| | | response: (request: requestParams) => { |
| | | const token = getRequestToken(request); |
| | | if (!token) { |
| | | return resultError('Invalid token!'); |
| | | } |
| | | if (id === '2') { |
| | | return resultSuccess([dashboardRoute, authRoute1, levelRoute]); |
| | | 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[]; |