index.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. import { createRouter, createWebHistory } from 'vue-router'
  2. import Home from '../pages/Home.vue'
  3. import CourseDetail from '../pages/CourseDetail.vue'
  4. import MyLearning from '../pages/MyLearning.vue'
  5. import MyLearningHome from '../pages/MyLearningHome.vue'
  6. import Layout from '@/components/Layout.vue'
  7. const routes = [
  8. {
  9. path: '/',
  10. name: 'Home',
  11. component: Home,
  12. redirect: '/index',
  13. meta: { title: 'route.home' },
  14. children: [
  15. {
  16. path: 'index',
  17. name: 'Index',
  18. component: Home,
  19. meta: { title: 'route.home' }
  20. }
  21. ]
  22. },
  23. {
  24. path: '/search-platform',
  25. name: 'SearchPlatformHome',
  26. component:() => import('@/pages/SearchPlatform.vue'),
  27. meta: { title: 'SearchPlatformHome' },
  28. children: [
  29. // {
  30. // path: 'search-platform',
  31. // name: 'SearchPlatform',
  32. // component: () => import('@/pages/SearchPlatform.vue'),
  33. // meta: { title: '' }
  34. // },
  35. {
  36. path: 'workflow-detail',
  37. name: 'WorkflowDetail',
  38. component: () => import('@/pages/WorkflowDetail.vue'),
  39. meta: { title: '' }
  40. },
  41. {
  42. path: 'workflow-add',
  43. name: 'WorkflowAdd',
  44. component: () => import('@/pages/WorkflowAdd.vue'),
  45. meta: { title: 'common.chuangjiangongzuoliu' }
  46. }
  47. ]
  48. },
  49. {
  50. path: '/workflow-add',
  51. name: 'WorkflowAddHome',
  52. component: () => import('@/pages/WorkflowAdd.vue'),
  53. meta: { title: 'common.chuangjiangongzuoliu' }
  54. },
  55. {
  56. path: '/workflow-detail',
  57. name: 'WorkflowDetailHome',
  58. component: () => import('@/pages/WorkflowDetail.vue'),
  59. meta: { title: '' }
  60. },
  61. {
  62. path: '/workflow-trade',
  63. name: 'WorkflowTradeHome',
  64. component: () => import('@/pages/workflowTrade/workflowTrade.vue'),
  65. meta: { title: 'common.gongzuoliu_trade' },
  66. children: [
  67. {
  68. path: 'workflow-trade-detail',
  69. name: 'WorkflowTradeDetail',
  70. component: () => import('@/pages/workflowTrade/workflowTradeDetail.vue'),
  71. meta: { title: '' }
  72. },
  73. {
  74. path: 'workflow-trade-add',
  75. name: 'WorkflowTradeAdd',
  76. component: () => import('@/pages/workflowTrade/workflowTradeAdd.vue'),
  77. meta: { title: 'route.gongzuoliu_trade_add' }
  78. }
  79. ]
  80. },
  81. {
  82. path: '/learning-system',
  83. name: 'LearningSystemHome',
  84. component: () => import('@/pages/LearningSystem/LearningSystem.vue'),
  85. meta: { title: 'route.learning_system' },
  86. children: [
  87. {
  88. path: 'detail',
  89. name: 'LearningSystemDetail',
  90. component: () => import('@/pages/LearningSystem/LearningSystemDetail.vue'),
  91. meta: { title: '' },
  92. children: [
  93. {
  94. path: 'course',
  95. name: 'CourseDetail',
  96. component: () => import('@/pages/LearningSystem/CourseDetail.vue'),
  97. meta: { title: '' }
  98. }
  99. ]
  100. },
  101. ]
  102. },
  103. {
  104. path: '/order-confirm',
  105. name: 'OrderConfirmHome',
  106. component: () => import('@/pages/order/orderConfirm.vue'),
  107. meta: { title: 'route.orderConfirm' }
  108. },
  109. // 一下是demon内容
  110. {
  111. path: '/course/:id',
  112. name: 'CourseDetail2',
  113. component: CourseDetail,
  114. meta: { title: 'route.courseDetail' }
  115. },
  116. {
  117. path: '/my-learning',
  118. name: 'MyLearningHome',
  119. component: Layout,
  120. meta: { title: 'route.myLearning' },
  121. children: [
  122. {
  123. path: '',
  124. name: 'MyLearning',
  125. component: MyLearning,
  126. meta: { title: 'route.myLearning' }
  127. },
  128. {
  129. path: 'course/:id',
  130. name: 'MyLearningCourseDetail',
  131. component: CourseDetail,
  132. meta: { title: 'route.myLearningCourseDetail' }
  133. }
  134. ]
  135. }
  136. ]
  137. const router = createRouter({
  138. history: createWebHistory(import.meta.env.BASE_URL),
  139. routes,
  140. // 添加scrollBehavior配置项,实现页面切换时滚轴置顶
  141. scrollBehavior() {
  142. return { top: 0 }
  143. }
  144. })
  145. // 全局路由守卫
  146. router.beforeEach((to, from, next) => {
  147. console.log(33333333333, to)
  148. // 设置页面标题
  149. // document.title = to.meta.title || 'Boom Ai'
  150. // 动态设置路由的meta.title
  151. const lastRoute = to.matched?.[to.matched.length - 1]
  152. if (lastRoute && to.query.metaTitle) {
  153. to.meta.title = to.query.metaTitle;
  154. lastRoute.meta.title = to.query.metaTitle;
  155. }
  156. next()
  157. })
  158. export default router