1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| import { createRouter, createWebHistory } from "vue-router";
const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes: [ { path: "/", name: "Manager", component: () => import("@/views/Manager.vue"), redirect: "/home", children: [ { path: "home", name: "Home", component: () => import("@/views/manager/Home.vue"), meta: { requiresAuth: true }, }, { path: "course", name: "Course", component: () => import("@/views/manager/Course.vue"), meta: { requiresAuth: true }, }, { path: "student", name: "Student", component: () => import("@/views/manager/Student.vue"), meta: { requiresAuth: true }, }, { path: "person", name: "Person", component: () => import("@/views/manager/Person.vue"), meta: { requiresAuth: true }, }, { path: "courseList", name: "CourseList", component: () => import("@/views/manager/CourseList.vue"), meta: { requiresAuth: true }, }, { path: "studentCourse", name: "StudentCourse", component: () => import("@/views/manager/StudentCourse.vue"), meta: { requiresAuth: true }, }, { path: "grade", name: "Grade", component: () => import("@/views/manager/Grade.vue"), meta: { requiresAuth: true }, }, ], }, { path: "/login", name: "Login", component: () => import("@/views/Login.vue"), }, { path: "/register", name: "Register", component: () => import("@/views/Register.vue"), }, ], });
router.beforeEach((to, from, next) => { const requiresAuth = to.matched.some((record) => record.meta.requiresAuth); const user = JSON.parse(localStorage.getItem("student-user")); if (requiresAuth && !user) { next("/login"); } else { next(); } });
export default router;
|