import type { RouteRecordRaw } from 'vue-router' const pageTitle = (name: string): string => { return `pagesTitle.${name}` } /** * 后台基础路由路径 */ export const adminBaseRoutePath = '/admin' export const adminBaseRoute = { path: adminBaseRoutePath, name: 'admin', component: () => import('@/layouts/admin/index.vue'), // 直接重定向到 loading 路由 redirect: adminBaseRoutePath + '/loading', meta: { title: `pagesTitle.admin` }, children: [ { path: 'loading/:to?', name: 'adminMainLoading', component: () => import('@/layouts/common/components/loading.vue'), meta: { title: `pagesTitle.loading` } }, { // 在线补召 path: '/supplementaryRecruitment', name: 'supplementaryRecruitment', component: () => import('@/views/govern/device/control/supplementaryRecruitment.vue'), meta: { title: pageTitle('router.supplementaryRecruitment') } }, { // 版本维护 path: '/version', name: 'version', component: () => import('@/views/govern/manage/basic/version.vue'), meta: { title: pageTitle('router.version') } }, { path: 'cockpit', name: '项目管理', meta: { title: pageTitle('runManage'), icon: 'ep:management', alwaysShow: true }, children: [ { path: 'popup', component: () => import('@/views/pqs/cockpit/setUp/components/popup.vue'), name: '新增项目', meta: { title: pageTitle('router.popup') } }, { path: 'view', component: () => import('@/views/pqs/cockpit/setUp/components/view.vue'), name: '预览项目', meta: { title: pageTitle('router.view') } } ] } ] } /* * 静态路由 * 自动加载 ./static 目录的所有文件,并 push 到以下数组 */ const staticRoutes: Array = [ adminBaseRoute, { path: '/', redirect: to => { return { name: 'adminMainLoading' } } }, { // 管理员登录页 - 不放在 adminBaseRoute.children 因为登录页不需要使用后台的布局 path: '/login', name: 'login', component: () => import('@/views/user/login.vue'), meta: { title: pageTitle('login') } }, { path: '/:path(.*)*', redirect: '/404' }, { path: '/:path(.*)*', redirect: '/policy' }, { path: '/:path(.*)*', redirect: '/agreement' }, { path: '/404', name: 'notFound', component: () => import('@/views/common/error/404.vue'), meta: { title: pageTitle('notFound') // 页面不存在 } }, { // 隐私政策 path: '/policy', name: 'policy', component: () => import('@/views/common/policy/index.vue'), meta: { title: pageTitle('policy') // 页面不存在 } }, { // 用户协议 path: '/agreement', name: 'agreement', component: () => import('@/views/common/agreement/index.vue'), meta: { title: pageTitle('agreement') // 页面不存在 } }, { // 后台找不到页面了-可能是路由未加载上 path: adminBaseRoutePath + ':path(.*)*', redirect: to => { return { name: 'adminMainLoading', params: { to: JSON.stringify({ path: to.path, query: to.query }) } } } } ] export default staticRoutes