index.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. import Vue from 'vue';
  2. import VueRouter from 'vue-router';
  3. import Layout from '@/layouts';
  4. import Login from '@/views/login';
  5. Vue.use(VueRouter);
  6. const routes = [
  7. {
  8. path: '/login',
  9. component: Login
  10. },
  11. {
  12. path: '/404',
  13. component: () => import('@/views/404')
  14. },
  15. {
  16. path: '/',
  17. component: Layout,
  18. redirect: '/main',
  19. children: [
  20. {
  21. path: '/main',
  22. name: 'Main',
  23. component: () => import('@/views/teacher/main')
  24. }
  25. ]
  26. },
  27. // 创建课程
  28. {
  29. path: '/create_course',
  30. component: Layout,
  31. redirect: '/create_course/index',
  32. meta: { title: '课程列表' },
  33. children: [
  34. {
  35. path: '/create_course/index',
  36. component: () => import('@/views/teacher/create_course/index'),
  37. meta: { title: '创建课程' }
  38. }
  39. ]
  40. },
  41. {
  42. path: '/create_course_step_table',
  43. component: Layout,
  44. redirect: '/create_course_step_table/course_info',
  45. children: [
  46. {
  47. path: '/create_course_step_table/course_info',
  48. component: () => import('@/views/teacher/create_course/step_table/CourseInfo')
  49. },
  50. {
  51. path: '/create_course_step_table/select_book/:id',
  52. name: 'SelectBook',
  53. component: () => import('@/views/teacher/create_course/step_table/SelectBook')
  54. }
  55. ]
  56. },
  57. {
  58. path: '/cs_item_detail',
  59. component: Layout,
  60. redirect: '/cs_item_detail/index/:id',
  61. children: [
  62. {
  63. path: '/cs_item_detail/index/:id',
  64. name: 'CSItemDetail',
  65. component: () => import('@/views/teacher/cs_item_detail')
  66. }
  67. ]
  68. },
  69. {
  70. path: '/add_course',
  71. component: Layout,
  72. redirect: '/add_course/index',
  73. children: [
  74. {
  75. path: '/add_course/index',
  76. name: 'AddCourse',
  77. component: () => import('@/views/teacher/add_course')
  78. }
  79. ]
  80. },
  81. {
  82. path: '/live',
  83. component: Layout,
  84. redirect: '/live/teacher',
  85. children: [
  86. {
  87. path: '/live/teacher',
  88. name: 'TeacherLive',
  89. component: () => import('@/views/live')
  90. }
  91. ]
  92. },
  93. {
  94. path: '*',
  95. redirect: '/404'
  96. }
  97. ];
  98. const createRouter = () =>
  99. new VueRouter({
  100. // mode: 'history',
  101. scrollBehavior: () => ({ y: 0 }),
  102. routes
  103. });
  104. const router = createRouter();
  105. // 重置路由
  106. export function resetRouter() {
  107. const newRouter = createRouter();
  108. router.matcher = newRouter.matcher;
  109. }
  110. export default router;