| | |
| | | import Vue from 'vue' |
| | | import Router from 'vue-router' |
| | | import Vue from "vue"; |
| | | import Router from "vue-router"; |
| | | |
| | | Vue.use(Router) |
| | | Vue.use(Router); |
| | | |
| | | /* Layout */ |
| | | import Layout from '@/layout' |
| | | import Layout from "@/layout"; |
| | | |
| | | /** |
| | | * Note: sub-menu only appear when route children.length >= 1 |
| | |
| | | * a base page that does not have permission requirements |
| | | * all roles can be accessed |
| | | */ |
| | | export const constantRoutes = [ |
| | | { |
| | | path: '/login', |
| | | component: () => import('@/views/login/index'), |
| | | hidden: true |
| | | export const constantRoutes = [{ |
| | | path: "/login", |
| | | component: () => import("@/views/login/index"), |
| | | hidden: true, |
| | | }, |
| | | |
| | | { |
| | | path: '/404', |
| | | component: () => import('@/views/404'), |
| | | hidden: true |
| | | path: "/404", |
| | | component: () => import("@/views/404"), |
| | | hidden: true, |
| | | }, |
| | | |
| | | // { |
| | | // path: "/", |
| | | // component: Layout, |
| | | // redirect: "/home", |
| | | // children: [ |
| | | // { |
| | | // path: "home", |
| | | // name: "home", |
| | | // component: () => import("@/views/home/index"), |
| | | // meta: { title: "首页", icon: "dashboard" }, |
| | | // }, |
| | | // ], |
| | | // }, |
| | | // { |
| | | // path: "/", |
| | | // component: Layout, |
| | | // redirect: "/curriculum", |
| | | // children: [ |
| | | // { |
| | | // path: "/curriculum", |
| | | // name: "Curriculum", |
| | | // component: () => import("@/views/curriculum/index"), |
| | | // meta: { title: "课表", icon: "table" }, |
| | | // }, |
| | | // ], |
| | | // }, |
| | | { |
| | | path: '/', |
| | | path: "/", |
| | | component: Layout, |
| | | redirect: '/home', |
| | | redirect: "/student", |
| | | children: [{ |
| | | path: 'home', |
| | | name: 'home', |
| | | component: () => import('@/views/home/index'), |
| | | meta: { title: '首页', icon: 'dashboard' } |
| | | }] |
| | | path: "/student", |
| | | name: "Student", |
| | | component: () => import("@/views/student/index"), |
| | | meta: { |
| | | title: "学员列表", |
| | | icon: "user" |
| | | }, |
| | | }, |
| | | { |
| | | path: "student/details", |
| | | name: "StudentDetails", |
| | | component: () => import("@/views/student/components/details.vue"), |
| | | meta: { |
| | | title: "学员详情" |
| | | }, |
| | | hidden: true, |
| | | }, |
| | | ], |
| | | }, |
| | | |
| | | { |
| | | path: '/educational', |
| | | path: "/", |
| | | component: Layout, |
| | | redirect: '/educational/student', |
| | | name: 'Educational', |
| | | meta: { title: '教务', icon: 'el-icon-s-help' }, |
| | | children: [ |
| | | { |
| | | path: 'student', |
| | | name: 'Student', |
| | | component: () => import('@/views/student/index'), |
| | | meta: { title: '学员', icon: 'table' } |
| | | redirect: "/class", |
| | | children: [{ |
| | | path: "/class", |
| | | name: "Class", |
| | | component: () => import("@/views/class/index"), |
| | | meta: { |
| | | title: "班级列表", |
| | | icon: "table" |
| | | }, |
| | | { |
| | | path: 'class', |
| | | name: 'Class', |
| | | component: () => import('@/views/class/index'), |
| | | meta: { title: '班级', icon: 'tree' } |
| | | }, ], |
| | | },{ |
| | | path: "/", |
| | | component: Layout, |
| | | redirect: "/order", |
| | | children: [{ |
| | | path: "/order", |
| | | name: "Order", |
| | | component: () => import("@/views/order/index"), |
| | | meta: { |
| | | title: "学员订单", |
| | | icon: "form" |
| | | }, |
| | | { |
| | | path: 'scheduleCourses', |
| | | name: 'ScheduleCourses', |
| | | component: () => import('@/views/scheduleCourses/index'), |
| | | meta: { title: '排课', icon: 'table' } |
| | | }, ], |
| | | },{ |
| | | path: "/", |
| | | component: Layout, |
| | | redirect: "/attendance", |
| | | children: [{ |
| | | path: "/attendance", |
| | | name: "Attendance", |
| | | component: () => import("@/views/attendance/index"), |
| | | meta: { |
| | | title: "考勤报表", |
| | | icon: "dashboard" |
| | | }, |
| | | { |
| | | path: 'work', |
| | | name: 'Work', |
| | | component: () => import('@/views/work/index'), |
| | | meta: { title: '作业', icon: 'tree' } |
| | | }, |
| | | { |
| | | path: 'comment', |
| | | name: 'Comment', |
| | | component: () => import('@/views/comment/index'), |
| | | meta: { title: '点评', icon: 'table' } |
| | | }, |
| | | { |
| | | path: 'curriculum', |
| | | name: 'Curriculum', |
| | | component: () => import('@/views/curriculum/index'), |
| | | meta: { title: '课表', icon: 'tree' } |
| | | }, |
| | | { |
| | | path: 'table', |
| | | name: 'Table', |
| | | component: () => import('@/views/student/index'), |
| | | meta: { title: '日程', icon: 'table' } |
| | | }, |
| | | { |
| | | path: 'development', |
| | | name: 'Development', |
| | | component: () => import('@/views/development/index'), |
| | | meta: { title: '成长', icon: 'tree' } |
| | | }, |
| | | { |
| | | path: 'integral', |
| | | name: 'Integral', |
| | | component: () => import('@/views/integral/index'), |
| | | meta: { title: '积分', icon: 'tree' } |
| | | }, |
| | | { |
| | | path: 'rollCall', |
| | | name: 'RollCall', |
| | | component: () => import('@/views/rollCall/index'), |
| | | meta: { title: '点评', icon: 'tree' } |
| | | } |
| | | ] |
| | | }, ], |
| | | }, |
| | | // { |
| | | // path: "/educational", |
| | | // component: Layout, |
| | | // redirect: "/educational/student", |
| | | // name: "Educational", |
| | | // meta: { title: "教务", icon: "el-icon-s-help" }, |
| | | // children: [ |
| | | // { |
| | | // path: "student", |
| | | // name: "Student", |
| | | // component: () => import("@/views/student/index"), |
| | | // meta: { title: "学员", icon: "table" }, |
| | | // }, |
| | | // { |
| | | // path: "student/details", |
| | | // name: "StudentDetails", |
| | | // component: () => import("@/views/student/components/details.vue"), |
| | | // meta: { title: "学员详情" }, |
| | | // hidden: true, |
| | | // }, |
| | | // { |
| | | // path: "class", |
| | | // name: "Class", |
| | | // component: () => import("@/views/class/index"), |
| | | // meta: { title: "班级", icon: "tree" }, |
| | | // }, |
| | | // { |
| | | // path: "scheduleCourses", |
| | | // name: "ScheduleCourses", |
| | | // component: () => import("@/views/scheduleCourses/index"), |
| | | // meta: { title: "排课", icon: "table" }, |
| | | // }, |
| | | // { |
| | | // path: "work", |
| | | // name: "Work", |
| | | // component: () => import("@/views/work/index"), |
| | | // meta: { title: "作业", icon: "tree" }, |
| | | // }, |
| | | // { |
| | | // path: "comment", |
| | | // name: "Comment", |
| | | // component: () => import("@/views/comment/index"), |
| | | // meta: { title: "点评", icon: "table" }, |
| | | // }, |
| | | // { |
| | | // path: "curriculum", |
| | | // name: "Curriculum", |
| | | // component: () => import("@/views/curriculum/index"), |
| | | // meta: { title: "课表", icon: "tree" }, |
| | | // }, |
| | | // { |
| | | // path: "table", |
| | | // name: "Table", |
| | | // component: () => import("@/views/student/index"), |
| | | // meta: { title: "日程", icon: "table" }, |
| | | // }, |
| | | // { |
| | | // path: "development", |
| | | // name: "Development", |
| | | // component: () => import("@/views/development/index"), |
| | | // meta: { title: "成长", icon: "tree" }, |
| | | // }, |
| | | // { |
| | | // path: "integral", |
| | | // name: "Integral", |
| | | // component: () => import("@/views/integral/index"), |
| | | // meta: { title: "积分", icon: "tree" }, |
| | | // }, |
| | | // { |
| | | // path: "rollCall", |
| | | // name: "RollCall", |
| | | // component: () => import("@/views/rollCall/index"), |
| | | // meta: { title: "点评", icon: "tree" }, |
| | | // }, |
| | | // ], |
| | | // }, |
| | | |
| | | // { |
| | | // path: '/form', |
| | |
| | | // ] |
| | | // }, |
| | | |
| | | { |
| | | path: '/nested', |
| | | component: Layout, |
| | | redirect: '/nested/menu1', |
| | | name: 'Nested', |
| | | meta: { |
| | | title: 'Nested', |
| | | icon: 'nested' |
| | | }, |
| | | children: [ |
| | | { |
| | | path: 'menu1', |
| | | component: () => import('@/views/nested/menu1/index'), // Parent router-view |
| | | name: 'Menu1', |
| | | meta: { title: 'Menu1' }, |
| | | children: [ |
| | | { |
| | | path: 'menu1-1', |
| | | component: () => import('@/views/nested/menu1/menu1-1'), |
| | | name: 'Menu1-1', |
| | | meta: { title: 'Menu1-1' } |
| | | }, |
| | | { |
| | | path: 'menu1-2', |
| | | component: () => import('@/views/nested/menu1/menu1-2'), |
| | | name: 'Menu1-2', |
| | | meta: { title: 'Menu1-2' }, |
| | | children: [ |
| | | { |
| | | path: 'menu1-2-1', |
| | | component: () => import('@/views/nested/menu1/menu1-2/menu1-2-1'), |
| | | name: 'Menu1-2-1', |
| | | meta: { title: 'Menu1-2-1' } |
| | | }, |
| | | { |
| | | path: 'menu1-2-2', |
| | | component: () => import('@/views/nested/menu1/menu1-2/menu1-2-2'), |
| | | name: 'Menu1-2-2', |
| | | meta: { title: 'Menu1-2-2' } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: 'menu1-3', |
| | | component: () => import('@/views/nested/menu1/menu1-3'), |
| | | name: 'Menu1-3', |
| | | meta: { title: 'Menu1-3' } |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | path: 'menu2', |
| | | component: () => import('@/views/nested/menu2/index'), |
| | | name: 'Menu2', |
| | | meta: { title: 'menu2' } |
| | | } |
| | | ] |
| | | }, |
| | | // { |
| | | // path: "/nested", |
| | | // component: Layout, |
| | | // redirect: "/nested/menu1", |
| | | // name: "Nested", |
| | | // meta: { |
| | | // title: "Nested", |
| | | // icon: "nested", |
| | | // }, |
| | | // children: [ |
| | | // { |
| | | // path: "menu1", |
| | | // component: () => import("@/views/nested/menu1/index"), // Parent router-view |
| | | // name: "Menu1", |
| | | // meta: { title: "Menu1" }, |
| | | // children: [ |
| | | // { |
| | | // path: "menu1-1", |
| | | // component: () => import("@/views/nested/menu1/menu1-1"), |
| | | // name: "Menu1-1", |
| | | // meta: { title: "Menu1-1" }, |
| | | // }, |
| | | // { |
| | | // path: "menu1-2", |
| | | // component: () => import("@/views/nested/menu1/menu1-2"), |
| | | // name: "Menu1-2", |
| | | // meta: { title: "Menu1-2" }, |
| | | // children: [ |
| | | // { |
| | | // path: "menu1-2-1", |
| | | // component: () => |
| | | // import("@/views/nested/menu1/menu1-2/menu1-2-1"), |
| | | // name: "Menu1-2-1", |
| | | // meta: { title: "Menu1-2-1" }, |
| | | // }, |
| | | // { |
| | | // path: "menu1-2-2", |
| | | // component: () => |
| | | // import("@/views/nested/menu1/menu1-2/menu1-2-2"), |
| | | // name: "Menu1-2-2", |
| | | // meta: { title: "Menu1-2-2" }, |
| | | // }, |
| | | // ], |
| | | // }, |
| | | // { |
| | | // path: "menu1-3", |
| | | // component: () => import("@/views/nested/menu1/menu1-3"), |
| | | // name: "Menu1-3", |
| | | // meta: { title: "Menu1-3" }, |
| | | // }, |
| | | // ], |
| | | // }, |
| | | // { |
| | | // path: "menu2", |
| | | // component: () => import("@/views/nested/menu2/index"), |
| | | // name: "Menu2", |
| | | // meta: { title: "menu2" }, |
| | | // }, |
| | | // ], |
| | | // }, |
| | | |
| | | // { |
| | | // path: 'external-link', |
| | |
| | | // }, |
| | | |
| | | // 404 page must be placed at the end !!! |
| | | { path: '*', redirect: '/404', hidden: true } |
| | | ] |
| | | { |
| | | path: "*", |
| | | redirect: "/404", |
| | | hidden: true |
| | | }, |
| | | ]; |
| | | |
| | | const createRouter = () => new Router({ |
| | | // mode: 'history', // require service support |
| | | scrollBehavior: () => ({ y: 0 }), |
| | | routes: constantRoutes |
| | | }) |
| | | const createRouter = () => |
| | | new Router({ |
| | | // mode: 'history', // require service support |
| | | scrollBehavior: () => ({ |
| | | y: 0 |
| | | }), |
| | | routes: constantRoutes, |
| | | }); |
| | | |
| | | const router = createRouter() |
| | | const router = createRouter(); |
| | | |
| | | // Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 |
| | | export function resetRouter() { |
| | | const newRouter = createRouter() |
| | | router.matcher = newRouter.matcher // reset router |
| | | const newRouter = createRouter(); |
| | | router.matcher = newRouter.matcher; // reset router |
| | | } |
| | | |
| | | export default router |
| | | export default router; |