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[] = []; const modulesVue = import.meta.glob('/src/views/**/*.vue'); export function getModulesKey() { return Object.keys(modulesVue).map((item) => item.replace('/src/views', '').replace('.vue', '')); } 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'), // component: () => import('@/views/login/newLogin.vue'), 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;