| | |
| | | import type { Menu, MenuModule } from '/@/router/types'; |
| | | import type { Menu, MenuModule } from '@/router/types'; |
| | | import type { RouteRecordNormalized } from 'vue-router'; |
| | | |
| | | import { useAppStoreWithOut } from '/@/store/modules/app'; |
| | | import { usePermissionStore } from '/@/store/modules/permission'; |
| | | import { transformMenuModule, getAllParentPath } from '/@/router/helper/menuHelper'; |
| | | import { filter } from '/@/utils/helper/treeHelper'; |
| | | import { isUrl } from '/@/utils/is'; |
| | | import { router } from '/@/router'; |
| | | import { PermissionModeEnum } from '/@/enums/appEnum'; |
| | | import { useAppStoreWithOut } from '@/store/modules/app'; |
| | | import { usePermissionStore } from '@/store/modules/permission'; |
| | | import { transformMenuModule, getAllParentPath } from '@/router/helper/menuHelper'; |
| | | import { filter } from '@/utils/helper/treeHelper'; |
| | | import { isHttpUrl } from '@/utils/is'; |
| | | import { router } from '@/router'; |
| | | import { PermissionModeEnum } from '@/enums/appEnum'; |
| | | import { pathToRegexp } from 'path-to-regexp'; |
| | | |
| | | const modules = import.meta.globEager('./modules/**/*.ts'); |
| | | const modules = import.meta.glob('../routes/modules/**/*.ts', { eager: true }); |
| | | |
| | | const menuModules: MenuModule[] = []; |
| | | |
| | | Object.keys(modules).forEach((key) => { |
| | | const mod = modules[key].default || {}; |
| | | const mod = (modules as Recordable)[key].default || {}; |
| | | const modList = Array.isArray(mod) ? [...mod] : [mod]; |
| | | menuModules.push(...modList); |
| | | }); |
| | |
| | | function basicFilter(routes: RouteRecordNormalized[]) { |
| | | return (menu: Menu) => { |
| | | const matchRoute = routes.find((route) => { |
| | | if (isUrl(menu.path)) return true; |
| | | if (isHttpUrl(menu.path)) return true; |
| | | |
| | | if (route.meta?.carryParam) { |
| | | return pathToRegexp(route.path).test(menu.path); |