|
@@ -2,6 +2,7 @@ import { createRouter, createWebHistory } from 'vue-router'
|
|
import type { menu } from '@/types/Tool'
|
|
import type { menu } from '@/types/Tool'
|
|
|
|
|
|
import SkeletonPage from '@/views/SkeletonPage.vue'
|
|
import SkeletonPage from '@/views/SkeletonPage.vue'
|
|
|
|
+import ErrorPage from '@/views/ErrorPage.vue'
|
|
|
|
|
|
const router = createRouter({
|
|
const router = createRouter({
|
|
history: createWebHistory(import.meta.env.BASE_URL),
|
|
history: createWebHistory(import.meta.env.BASE_URL),
|
|
@@ -80,6 +81,12 @@ const router = createRouter({
|
|
},
|
|
},
|
|
],
|
|
],
|
|
})
|
|
})
|
|
|
|
+// 添加一个用于 404 页面的路由
|
|
|
|
+router.addRoute({
|
|
|
|
+ path: '/:catchAll(.*)', // 匹配所有未匹配的路由
|
|
|
|
+ name: 'NotFound',
|
|
|
|
+ component: ErrorPage,
|
|
|
|
+})
|
|
|
|
|
|
const checkAuth = (list: menu[], path: string): menu => {
|
|
const checkAuth = (list: menu[], path: string): menu => {
|
|
let out: menu = {}
|
|
let out: menu = {}
|
|
@@ -99,7 +106,7 @@ const checkAuth = (list: menu[], path: string): menu => {
|
|
// 路由卫士
|
|
// 路由卫士
|
|
router.beforeEach((to, from, next) => {
|
|
router.beforeEach((to, from, next) => {
|
|
// 如果是登录页面,直接放行
|
|
// 如果是登录页面,直接放行
|
|
- if (to.path === '/login') return next()
|
|
|
|
|
|
+ if (to.name === 'NotFound' || to.path === '/login') return next()
|
|
const token = localStorage.getItem('token')
|
|
const token = localStorage.getItem('token')
|
|
const {
|
|
const {
|
|
role: { menus },
|
|
role: { menus },
|