routes.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import { menuToRoutes, eachTreeData } from 'ele-admin';
  2. import { HOME_PATH, LAYOUT_PATH, REDIRECT_PATH } from '@/config/setting';
  3. import EleLayout from '@/layout/index.vue';
  4. import RedirectLayout from '@/components/RedirectLayout';
  5. import { iframeMixins } from '@/utils/iframe-mixin';
  6. /**
  7. * 静态路由
  8. */
  9. export const routes = [
  10. {
  11. path: '/login',
  12. component: () => import('@/views/login/index.vue'),
  13. meta: { title: '登录' }
  14. },
  15. {
  16. path: '/forget',
  17. component: () => import('@/views/forget/index.vue'),
  18. meta: { title: '忘记密码' }
  19. },
  20. // {
  21. // path: '/bpm',
  22. // component: Layout,
  23. // hidden: true,
  24. // children: [
  25. // {
  26. // path: 'definition',
  27. // component: (resolve) =>
  28. // require(['@/views/bpm/definition/index'], resolve),
  29. // name: 'BpmProcessDefinition',
  30. // meta: { title: '流程定义', activeMenu: '/bpm/model' }
  31. // },
  32. // {
  33. // path: 'model/design',
  34. // component: (resolve) =>
  35. // require(['@/views/bpm/model/modelEditor'], resolve),
  36. // name: 'BpmModelEditor',
  37. // meta: { title: '设计流程', activeMenu: '/bpm/model' }
  38. // }
  39. // ]
  40. // }
  41. // 404
  42. // {
  43. // path: '*',
  44. // component: () => import('@/views/exception/404/index.vue')
  45. // }
  46. // {
  47. // path: '/system/role',
  48. // component: () => import('@/views/system/role/index.vue'),
  49. // meta: { title: '编码信息' }
  50. // }
  51. ];
  52. /**
  53. * 添加动态路由
  54. * @param menus 菜单数据
  55. * @param homePath 菜单数据的第一个页面地址
  56. */
  57. export function getMenuRoutes (menus, homePath) {
  58. const routes = [
  59. // 用于刷新的路由
  60. {
  61. path: REDIRECT_PATH + '/:path(.*)',
  62. component: RedirectLayout,
  63. meta: { hideFooter: true }
  64. }
  65. ];
  66. // 路由铺平处理
  67. eachTreeData(
  68. menuToRoutes(menus, getComponent, [], null, null, iframeMixins),
  69. (route) => {
  70. routes.push({ ...route, children: null });
  71. }
  72. );
  73. return {
  74. path: LAYOUT_PATH,
  75. component: EleLayout,
  76. redirect: HOME_PATH ?? homePath,
  77. children: routes
  78. };
  79. }
  80. /**
  81. * 获取路由组件
  82. * @param component 组件名称
  83. */
  84. function getComponent (component) {
  85. if (component) {
  86. return () => import('@/views/' + component);
  87. }
  88. }