import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' import systemRoute from './modules/system' import equipment from './modules/equipment' import resource from './modules/resource' import business from './modules/business' import quality from './modules/quality' import workbench from './modules/workbench' import dataManagement from './modules/dataManagement' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' // 固定路由(默认路由) const constantRoutes: Route.recordRaw[] = [ { path: '/', redirect: '/dashboard', meta: { title: '' } }, { path: '/login', name: 'login', component: () => import('@/views/login.vue'), meta: { title: '登录' } }, { path: '/:all(.*)*', name: 'notFound', component: () => import('@/views/[...all].vue'), meta: { title: '找不到页面' } } ] // 系统路由 const systemRoutes: Route.recordRaw[] = [ { path: '/dashboard', component: () => import('@/layouts/index.vue'), meta: { title: () => useSettingsStore().dashboard.title, breadcrumb: false }, children: [ { path: '', name: 'dashboard', component: () => import('@/views/index.vue'), meta: { title: () => useSettingsStore().dashboard.title, breadcrumb: false } } ] }, { path: '/personal', component: () => import('@/layouts/index.vue'), redirect: '/personal/setting', meta: { title: '个人中心', breadcrumb: false }, children: [ { path: 'setting', name: 'personalSetting', component: () => import('@/views/personal/setting.vue'), meta: { title: '个人设置', cache: 'personalEditPassword' } }, { path: 'edit/password', name: 'personalEditPassword', component: () => import('@/views/personal/edit.password.vue'), meta: { title: '修改密码' } } ] }, { path: '/reload', component: () => import('@/layouts/index.vue'), meta: { title: '重新加载', breadcrumb: false }, children: [ { path: '', name: 'reload', component: () => import('@/views/reload.vue'), meta: { title: '重新加载', breadcrumb: false } } ] } ] // 动态路由(异步路由、导航栏路由) const asyncRoutes: Route.recordMainRaw[] = [ { meta: { title: '工作台', icon: '', auth: '/workbench' }, children: [...workbench], }, { meta: { title: '计量与检定业务', icon: '', auth: '/business' }, children: [...business], }, { meta: { title: '智能模型与装置', icon: '', auth: '/equipment' }, children: [...equipment], }, { meta: { title: '资源管理', icon: '', auth: '/resource' }, children: [...resource], }, { meta: { title: '质量活动', icon: '', auth: '/quality' }, children: [...quality], }, { meta: { title: '数据管理', icon: '', auth: '/dataManagement' }, children: [...dataManagement], }, { meta: { title: '系统设置', icon: '', auth: '/system' }, children: [...systemRoute], }, ] const constantRoutesByFilesystem = generatedRoutes.filter(item => { return item.meta?.enabled !== false && item.meta?.constant === true }) const asyncRoutesByFilesystem = setupLayouts( generatedRoutes.filter((item) => { return ( item.meta?.enabled !== false && item.meta?.constant !== true && item.meta?.layout !== false ) }), ) as Route.recordRaw[] export { constantRoutes, systemRoutes, asyncRoutes, constantRoutesByFilesystem, asyncRoutesByFilesystem }