|
@@ -1,8 +1,17 @@
|
|
|
import { createRouter, createWebHistory } from 'vue-router'
|
|
import { createRouter, createWebHistory } from 'vue-router'
|
|
|
|
|
+import {useStore} from "@/store";
|
|
|
|
|
|
|
|
const router = createRouter({
|
|
const router = createRouter({
|
|
|
history: createWebHistory(import.meta.env.BASE_URL),
|
|
history: createWebHistory(import.meta.env.BASE_URL),
|
|
|
routes: [
|
|
routes: [
|
|
|
|
|
+ {
|
|
|
|
|
+ path: "/404",
|
|
|
|
|
+ component: () => import("@/views/404.vue")
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ path: "/:catchAll(.*)",
|
|
|
|
|
+ redirect: "/404"
|
|
|
|
|
+ },
|
|
|
{
|
|
{
|
|
|
path: "/",
|
|
path: "/",
|
|
|
redirect: "/login"
|
|
redirect: "/login"
|
|
@@ -22,6 +31,43 @@ const router = createRouter({
|
|
|
name: 'course',
|
|
name: 'course',
|
|
|
component: () => import('../views/CoursePage/CoursePage.vue')
|
|
component: () => import('../views/CoursePage/CoursePage.vue')
|
|
|
},
|
|
},
|
|
|
|
|
+ {
|
|
|
|
|
+ path: "/admin/login",
|
|
|
|
|
+ name: 'adminLogin',
|
|
|
|
|
+ component: () => import("../views/AdminPage/LoginPage/AdminLoginPage.vue"),
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ path: "/manager",
|
|
|
|
|
+ name: "manager",
|
|
|
|
|
+ // redirect: '/manager/course',
|
|
|
|
|
+ component: () => import("../layout/AdminLayout/AdminLayout.vue"),
|
|
|
|
|
+ children: [
|
|
|
|
|
+ {
|
|
|
|
|
+ path: "course",
|
|
|
|
|
+ name: "courseManage",
|
|
|
|
|
+ component: () => import("../views/AdminPage/CourseManage/CourseManage.vue"),
|
|
|
|
|
+ meta: {
|
|
|
|
|
+ roles: ['ADMIN']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ path: "user",
|
|
|
|
|
+ name: "userManage",
|
|
|
|
|
+ component: () => import("../views/AdminPage/UserManage/UserManage.vue"),
|
|
|
|
|
+ meta: {
|
|
|
|
|
+ roles: ['ADMIN']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ {
|
|
|
|
|
+ path: "file",
|
|
|
|
|
+ name: "fileManage",
|
|
|
|
|
+ component: () => import("../views/AdminPage/FileManage/FileManage.vue"),
|
|
|
|
|
+ meta: {
|
|
|
|
|
+ roles: ['ADMIN']
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
{
|
|
{
|
|
|
path: '/home',
|
|
path: '/home',
|
|
|
name: 'home',
|
|
name: 'home',
|
|
@@ -91,4 +137,22 @@ const router = createRouter({
|
|
|
]
|
|
]
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
|
|
+/*
|
|
|
|
|
+ 路由守卫
|
|
|
|
|
+ */
|
|
|
|
|
+router.beforeEach((to) => {
|
|
|
|
|
+ const store = useStore()
|
|
|
|
|
+ const role = store.user.role
|
|
|
|
|
+ // 1.守卫管理员权限界面
|
|
|
|
|
+ if(to.meta.roles != null){
|
|
|
|
|
+ for(let i = 0; i < to.meta.roles.length; i++){
|
|
|
|
|
+ if(to.meta.roles[i] == role){
|
|
|
|
|
+ console.log("路由权限满足")
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ router.push('/login')
|
|
|
|
|
+ }
|
|
|
|
|
+})
|
|
|
|
|
+
|
|
|
export default router
|
|
export default router
|