index.ts 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import type { AppRouteRecordRaw, AppRouteModule } from '/@/router/types';
  2. import { PAGE_NOT_FOUND_ROUTE, REDIRECT_ROUTE } from '/@/router/routes/basic';
  3. import { mainOutRoutes } from './mainOut';
  4. import { PageEnum } from '/@/enums/pageEnum';
  5. import { t } from '/@/hooks/web/useI18n';
  6. import { isArray } from '@vben/shared';
  7. // import.meta.globEager() 直接引入所有的模块 Vite 独有的功能
  8. const modules = import.meta.globEager('./modules/**/*.ts');
  9. const routeModuleList: AppRouteModule[] = [];
  10. // 加入到路由集合中
  11. Object.keys(modules).forEach((key) => {
  12. const mod = modules[key].default || {};
  13. const modList = isArray(mod) ? [...mod] : [mod];
  14. routeModuleList.push(...modList);
  15. });
  16. export const asyncRoutes = [PAGE_NOT_FOUND_ROUTE, ...routeModuleList];
  17. // 根路由
  18. export const RootRoute: AppRouteRecordRaw = {
  19. path: '/',
  20. name: 'Root',
  21. redirect: PageEnum.BASE_HOME,
  22. meta: {
  23. title: 'Root',
  24. },
  25. };
  26. export const LoginRoute: AppRouteRecordRaw = {
  27. path: '/login',
  28. name: 'Login',
  29. component: () => import('/@/views/sys/login/Login.vue'),
  30. meta: {
  31. title: t('routes.basic.login'),
  32. },
  33. };
  34. // Basic routing without permission
  35. // 未经许可的基本路由
  36. export const basicRoutes = [
  37. LoginRoute,
  38. RootRoute,
  39. ...mainOutRoutes,
  40. REDIRECT_ROUTE,
  41. PAGE_NOT_FOUND_ROUTE,
  42. ];