index.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  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: '/course/:id',
  83. name: 'CourseDetail',
  84. component: CourseDetail,
  85. meta: { title: 'route.courseDetail' }
  86. },
  87. {
  88. path: '/my-learning',
  89. name: 'MyLearningHome',
  90. component: Layout,
  91. meta: { title: 'route.myLearning' },
  92. children: [
  93. {
  94. path: '',
  95. name: 'MyLearning',
  96. component: MyLearning,
  97. meta: { title: 'route.myLearning' }
  98. },
  99. {
  100. path: 'course/:id',
  101. name: 'MyLearningCourseDetail',
  102. component: CourseDetail,
  103. meta: { title: 'route.myLearningCourseDetail' }
  104. }
  105. ]
  106. }
  107. ]
  108. const router = createRouter({
  109. history: createWebHistory(import.meta.env.BASE_URL),
  110. routes,
  111. // 添加scrollBehavior配置项,实现页面切换时滚轴置顶
  112. scrollBehavior() {
  113. return { top: 0 }
  114. }
  115. })
  116. // 全局路由守卫
  117. router.beforeEach((to, from, next) => {
  118. console.log(33333333333, to)
  119. // 设置页面标题
  120. // document.title = to.meta.title || 'Boom Ai'
  121. // 动态设置路由的meta.title
  122. const lastRoute = to.matched?.[to.matched.length - 1]
  123. if (lastRoute && to.query.metaTitle) {
  124. to.meta.title = to.query.metaTitle;
  125. lastRoute.meta.title = to.query.metaTitle;
  126. }
  127. next()
  128. })
  129. export default router