index.ts 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router";
  2. export const Layout = () => import("@/layout/index.vue");
  3. // 静态路由
  4. export const constantRoutes: RouteRecordRaw[] = [
  5. {
  6. path: "/redirect",
  7. component: Layout,
  8. meta: { hidden: true },
  9. children: [
  10. {
  11. path: "/redirect/:path(.*)",
  12. component: () => import("@/views/redirect/index.vue"),
  13. },
  14. ],
  15. },
  16. {
  17. path: "/login",
  18. component: () => import("@/views/login/index.vue"),
  19. meta: { hidden: true },
  20. },
  21. {
  22. path: "/",
  23. name: "/",
  24. meta: { hidden: true },
  25. component: Layout,
  26. redirect: "/welcome",
  27. children: [
  28. {
  29. path: "welcome",
  30. component: () => import("@/views/welcome/index.vue"),
  31. name: "Welcome",
  32. meta: { hidden: true },
  33. },
  34. ],
  35. },
  36. {
  37. path: "/:pathMatch(.*)*", // 必备
  38. meta: { hidden: true },
  39. component: () => import("@/views/error-page/404.vue"),
  40. },
  41. // ===============大屏
  42. {
  43. path: "/taskScreen",
  44. meta: { hidden: true },
  45. component: () =>
  46. import("@/views/report/statistics/screens/tasks/index.vue"),
  47. },
  48. {
  49. path: "/capacityScreen",
  50. meta: { hidden: true },
  51. component: () =>
  52. import("@/views/report/statistics/screens/capacity/index.vue"),
  53. },
  54. {
  55. path: "/qualityScreen",
  56. meta: { hidden: true },
  57. component: () =>
  58. import("@/views/report/statistics/screens/quality/index.vue"),
  59. },
  60. {
  61. path: "/lineScreen",
  62. meta: { hidden: true },
  63. component: () => import("@/views/report/statistics/screens/line/index.vue"),
  64. },
  65. {
  66. path: "/repertoryStatistic",
  67. meta: { hidden: true },
  68. component: () =>
  69. import("@/views/report/statistics/screens/repertoryStatistic/index.vue"),
  70. },
  71. // 外部链接
  72. // {
  73. // path: "/external-link",
  74. // component: Layout,
  75. // children: [ {
  76. // component: () => import("@/views/external-link/index.vue"),
  77. // path: "https://www.cnblogs.com/haoxianrui/",
  78. // meta: { title: "外部链接", icon: "link" },
  79. // },
  80. // ],
  81. // },
  82. // 多级嵌套路由
  83. /* {
  84. path: '/nested',
  85. component: Layout,
  86. redirect: '/nested/level1/level2',
  87. name: 'Nested',
  88. meta: {title: '多级菜单', icon: 'nested'},
  89. children: [
  90. {
  91. path: 'level1',
  92. component: () => import('@/views/nested/level1/index.vue'),
  93. name: 'Level1',
  94. meta: {title: '菜单一级'},
  95. redirect: '/nested/level1/level2',
  96. children: [
  97. {
  98. path: 'level2',
  99. component: () => import('@/views/nested/level1/level2/index.vue'),
  100. name: 'Level2',
  101. meta: {title: '菜单二级'},
  102. redirect: '/nested/level1/level2/level3',
  103. children: [
  104. {
  105. path: 'level3-1',
  106. component: () => import('@/views/nested/level1/level2/level3/index1.vue'),
  107. name: 'Level3-1',
  108. meta: {title: '菜单三级-1'}
  109. },
  110. {
  111. path: 'level3-2',
  112. component: () => import('@/views/nested/level1/level2/level3/index2.vue'),
  113. name: 'Level3-2',
  114. meta: {title: '菜单三级-2'}
  115. }
  116. ]
  117. }
  118. ]
  119. },
  120. ]
  121. }*/
  122. ];
  123. /**
  124. * 创建路由
  125. */
  126. const router = createRouter({
  127. history: createWebHistory(),
  128. routes: constantRoutes,
  129. // 刷新时,滚动条位置还原
  130. scrollBehavior: () => ({ left: 0, top: 0 }),
  131. });
  132. /**
  133. * 重置路由
  134. */
  135. export function resetRouter() {
  136. router.replace({ path: "/login" });
  137. }
  138. export default router;