diff --git a/src/router/index.ts b/src/router/index.ts index b818421c2c11561d1e672998058832e1fb3f8152..f3771add2cd3440209e0aba1b54840fd16955614 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,13 +1,40 @@ import type { App } from 'vue' import type { RouteRecordRaw } from 'vue-router' import { createRouter, createWebHistory } from 'vue-router' -import remainingRouter from './modules/remaining' + +// 自动导入modules目录下的所有静态路由,项目可以按模块分类增加路由文件 +// by panda 25.03.21 +const loadRouters = async (): Promise => { + const modules: any = import.meta.glob('./modules/*.ts') + const allRouters: RouteRecordRaw[] = [] + + try { + // 等待所有模块加载完成 + const loadedModules = await Promise.all( + Object.values(modules).map((importFn: () => Promise) => importFn()) + ) + + loadedModules.forEach((module) => { + if (Array.isArray(module.default)) { + allRouters.push(...module.default) + } else { + console.warn('Module does not export an array of routes:', module) + } + }) + } catch (error) { + console.error('Error loading route modules:', error) + } + + return allRouters +} + +const allRouters = await loadRouters() // 创建路由实例 const router = createRouter({ history: createWebHistory(import.meta.env.VITE_BASE_PATH), // createWebHashHistory URL带#,createWebHistory URL不带# strict: true, - routes: remainingRouter as RouteRecordRaw[], + routes: allRouters, //自动导入的所有静态路由 by panda 25.03.21 scrollBehavior: () => ({ left: 0, top: 0 }) })