zhanghua
2025-02-11 59d30d49f2a37c294ee98e495de9bc42dcdfe6ce
src/router/index.js
@@ -1,10 +1,10 @@
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
@@ -30,100 +30,184 @@
 * 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',
@@ -138,64 +222,66 @@
  //   ]
  // },
  {
    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',
@@ -209,21 +295,28 @@
  // },
  // 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;