diff --git a/src/layouts/components/MenuContent.tsx b/src/layouts/components/MenuContent.tsx index 2132661..4b35286 100755 --- a/src/layouts/components/MenuContent.tsx +++ b/src/layouts/components/MenuContent.tsx @@ -7,6 +7,10 @@ const getMenuList = (list: MenuRoute[], basePath?: string): MenuRoute[] => { if (!list) { return []; } + // 如果meta中有orderNo则按照从小到大排序 + list.sort((a, b) => { + return (a.meta?.orderNo || 0) - (b.meta?.orderNo || 0); + }); return list .map((item) => { const path = basePath ? `${basePath}/${item.path}` : item.path; diff --git a/src/router/index.ts b/src/router/index.ts index 5921674..09ad02b 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -1,13 +1,21 @@ import { useRoute, createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router'; -import baseRouters from './modules/base'; -import componentsRouters from './modules/components'; -import othersRouters from './modules/others'; +// 自动导入modules文件夹下所有ts文件 +const modules = import.meta.globEager('./modules/**/*.ts'); + +// 路由暂存 +const routeModuleList: Array = []; + +Object.keys(modules).forEach((key) => { + const mod = modules[key].default || {}; + const modList = Array.isArray(mod) ? [...mod] : [mod]; + routeModuleList.push(...modList); +}); // 关于单层路由,meta 中设置 { single: true } 即可为单层路由,{ hidden: true } 即可在侧边栏隐藏该路由 // 存放动态路由 -export const asyncRouterList: Array = [...baseRouters, ...componentsRouters, ...othersRouters]; +export const asyncRouterList: Array = [...routeModuleList]; // 存放固定的路由 const defaultRouterList: Array = [ diff --git a/src/types/globals.d.ts b/src/types/globals.d.ts index 7a5db4b..49efe88 100644 --- a/src/types/globals.d.ts +++ b/src/types/globals.d.ts @@ -10,13 +10,6 @@ declare module '*.vue' { declare type ClassName = { [className: string]: any } | ClassName[] | string; -declare interface ImportMeta { - env: { - MODE: 'mock' | 'development' | 'test' | 'release'; - }; - glob: (url: string) => { url }; -} - declare module '*.svg' { const CONTENT: string; export default CONTENT; diff --git a/tsconfig.json b/tsconfig.json index 110f73c..56263f0 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -7,7 +7,10 @@ "sourceMap": true, "resolveJsonModule": true, "esModuleInterop": true, + "skipLibCheck": true, + "allowSyntheticDefaultImports": true, "lib": ["esnext", "dom"], + "types": ["vite/client"], "noEmit": true, "baseUrl": "./", "paths": {