Bladeren bron

feat:404页面补充

白白 1 jaar geleden
bovenliggende
commit
62a4992a72
3 gewijzigde bestanden met toevoegingen van 77 en 0 verwijderingen
  1. BIN
      src/image/404.jpg
  2. 64 0
      src/router/index.ts
  3. 13 0
      src/views/404.vue

BIN
src/image/404.jpg


+ 64 - 0
src/router/index.ts

@@ -1,8 +1,17 @@
 import { createRouter, createWebHistory } from 'vue-router'
+import {useStore} from "@/store";
 
 const router = createRouter({
   history: createWebHistory(import.meta.env.BASE_URL),
   routes: [
+    {
+      path: "/404",
+      component: () => import("@/views/404.vue")
+    },
+    {
+      path: "/:catchAll(.*)",
+      redirect: "/404"
+    },
     {
       path: "/",
       redirect: "/login"
@@ -22,6 +31,43 @@ const router = createRouter({
       name: 'course',
       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',
       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

+ 13 - 0
src/views/404.vue

@@ -0,0 +1,13 @@
+<template>
+  <div>
+    <div style="height: 100vh; display: flex; justify-content: center; align-items: center">
+      <div style="width: 30%">
+        <img src="@/image/seecoderLogo.png" alt="seecoder" style="width: 100%">
+        <div style="font-size: 30px; text-align: center">找不到页面啦!</div>
+        <div style="font-size: 30px; text-align: center"><router-link to="/">返回主页</router-link></div>
+      </div>
+    </div>
+  </div>
+</template>
+<script setup lang="ts">
+</script>