index.ts 1.3 KB

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