import { App } from 'vue'; import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'; import { RedirectRoute } from '@/router/base'; import { PageEnum } from '@/enums/pageEnum'; import { createRouterGuards } from './router-guards'; const modules: any = import.meta.glob('./modules/**/*.ts', { eager: true }); const routeModuleList: RouteRecordRaw[] = []; Object.keys(modules).forEach((key) => { const mod = modules[key].default || {}; const modList = Array.isArray(mod) ? [...mod] : [mod]; routeModuleList.push(...modList); }); function sortRoute(a, b) { return (a.meta?.sort || 0) - (b.meta?.sort || 0); } routeModuleList.sort(sortRoute); export const RootRoute: RouteRecordRaw = { path: '/', name: 'Root', redirect: PageEnum.BASE_HOME, meta: { title: 'Root', }, }; export const LoginRoute: RouteRecordRaw = { path: '/login', name: 'Login', // component: () => import('@/views/login/index.vue'), //v1.x 模板 // component: () => import('@/views/login/newLogin.vue'), // 2.x新模板 component: () => import('@/views/login/newLogin2.vue'), // 2.x全新模板 meta: { title: '登录', }, }; //需要验证权限 export const asyncRoutes = [...routeModuleList]; //普通路由 无需验证权限 export const constantRouter: any[] = [LoginRoute, RootRoute, RedirectRoute]; export const router = createRouter({ history: createWebHistory(''), routes: constantRouter, strict: true, scrollBehavior(to) { if (to.hash) { return { el: to.hash, behavior: 'smooth', }; } }, }); export function setupRouter(app: App) { app.use(router); // 创建路由守卫 createRouterGuards(router); } export default router;