import { resultSuccess, resultError, getRequestToken, requestParams } 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: '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: '/basic-api/getMenuList', 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[]