import Vue from 'vue'; import VueRouter from 'vue-router'; import Layout from '@/layouts'; import store from '@/store'; Vue.use(VueRouter); const routes = [ { path: '/login', component: () => import('@/views/login') }, { path: '/404', component: () => import('@/views/404') }, // 外部跳转 { path: '/EnterSys', beforeEnter: (to, from, next) => { store .dispatch('user/enterSys') .then(() => { next('/'); }) .catch(() => { store.dispatch('user/signOut'); next('/login'); }); } }, // 首页 { path: '/', component: Layout, redirect: '/main', children: [ { path: '/main', name: 'Main', component: () => import('@/views/main') } ] }, // 创建课程 { path: '/create_course', component: Layout, redirect: '/create_course/index', meta: { title: '课程列表', link: '/?tab=CurriculaList' }, children: [ { path: '/create_course/index', component: () => import(/* webpackChunkName: 'create_course'*/ '@/views/teacher/create_course/index'), meta: { title: '创建课程' } } ] }, // 新建课程 分步表单 { path: '/create_course_step_table', component: Layout, redirect: '/create_course_step_table/course_info', children: [ // 分步表单 -> 第一步 { path: '/create_course_step_table/course_info', component: () => import( /* webpackChunkName: 'create_course'*/ '@/views/teacher/create_course/step_table/CourseInfo' ) }, // 分步表单 -> 第二步 { path: '/create_course_step_table/select_book/:id', name: 'SelectBook', component: () => import( /* webpackChunkName: 'create_course'*/ '@/views/teacher/create_course/step_table/SelectBook' ) }, // 分步表单 -> 第三步 { path: '/create_course_step_table/create_task/:id', component: () => import( /* webpackChunkName: 'create_course'*/ '@/views/teacher/create_course/step_table/CreateTask' ) }, // 分步表单 -> 第三步 -> 新建课节任务 { path: '/create_course_step_table/new_task/:time_type/:id/:cs_item_id', component: () => import( /* webpackChunkName: 'create_course'*/ '@/views/teacher/create_course/step_table/NewTask' ) } ] }, // 任务详情 { path: '/task_detail', component: Layout, meta: { title: '任务列表', link: '/' }, children: [ { path: '/task_detail/student/:id', component: () => import('@/views/task_details/student') }, { path: '/task_detail/teacher/:id', component: () => import('@/views/task_details/teacher') } ] }, { path: '/task_detail/show_courseware/:coursewareId', component: () => import('@/views/task_details/ShowCourseware') }, // 课程列表 -> 学生列表 { path: '/student_list', component: Layout, redirect: '/student_list/index/:id', children: [ { path: '/student_list/index/:id', component: () => import(/* webpackChunkName: 'course'*/ '@/views/teacher/student_list') } ] }, // 直播 { path: '/live', component: Layout, redirect: '/live/student', children: [ { path: '/live/teacher', component: () => import(/* webpackChunkName: 'live'*/ '@/views/live/teacher') }, { path: '/live/teacher/group', component: () => import(/* webpackChunkName: 'live'*/ '@/views/live/teacher/group.vue') }, { path: '/live/student', component: () => import(/* webpackChunkName: 'live'*/ '@/views/live/student') }, { path: '/live/student/group', component: () => import(/* webpackChunkName: 'live'*/ '@/views/live/student/group.vue') } ] }, { path: '/course_details', component: Layout, redirect: '/GoodsDetail', children: [ { path: '/GoodsDetail', component: () => import('@/views/course_details/index') } ] }, { path: '*', redirect: '/404' } ]; const createRouter = () => new VueRouter({ // mode: 'history', scrollBehavior: () => ({ y: 0 }), routes }); const router = createRouter(); // 重置路由 export function resetRouter() { const newRouter = createRouter(); router.matcher = newRouter.matcher; } export default router;