import { setupLayouts } from 'virtual:generated-layouts' import generatedRoutes from 'virtual:generated-pages' // import commonRoute from './modules/system' import homeRoute from './modules/pc' import mobileRoute from './modules/mobile' import type { Route } from '@/global' import useSettingsStore from '@/store/modules/settings' import config from '/public/config/config.json' // console.log(config) // 固定路由(默认路由) 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 userAgent = navigator.userAgent || navigator.vendor || window.opera // const isMobile = /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini/i.test(userAgent) // window.localStorage.setItem('browser-type-bj-well', `${isMobile ? 'mobile' : 'pc'}`) const isMobile = config.mode === 'mobile' window.localStorage.setItem('browser-type-bj-well', `${isMobile ? 'mobile' : 'pc'}`) // 系统路由 const systemRoutes: Route.recordRaw[] = [ { path: '/dashboard', component: isMobile ? null : () => 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[] = isMobile ? [{ // 移动端路由 meta: { title: '', icon: '', }, children: [ ...mobileRoute, ], }] : [{ // pc端路由 meta: { title: '', icon: '', }, children: [ ...homeRoute, ], }, ] 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, }