From 665bdbec7a055817aaf0ebe67abd49ad95a7ab43 Mon Sep 17 00:00:00 2001 From: pany <939630029@qq.com> Date: Thu, 29 Jun 2023 18:00:03 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=B7=AF=E7=94=B1=E7=99=BD=E5=90=8D?= =?UTF-8?q?=E5=8D=95=E5=8A=9F=E8=83=BD=E6=94=AF=E6=8C=81=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E8=B7=AF=E7=94=B1=20Name?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/white-list.ts | 17 ++++++++++++++--- src/router/permission.ts | 4 ++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/config/white-list.ts b/src/config/white-list.ts index 1a09b6c..df47b23 100644 --- a/src/config/white-list.ts +++ b/src/config/white-list.ts @@ -1,4 +1,15 @@ -/** 免登录白名单 */ -const whiteList = ["/login"] +import { type RouteLocationNormalized } from "vue-router" -export { whiteList } +/** 免登录白名单(匹配路由 path) */ +const whiteListByPath: string[] = ["/login"] + +/** 免登录白名单(匹配路由 name) */ +const whiteListByName: string[] = [] + +/** 判断是否在白名单 */ +const isWhiteList = (to: RouteLocationNormalized) => { + // path 和 name 任意一个匹配上即可 + return whiteListByPath.indexOf(to.path) !== -1 || whiteListByName.indexOf(to.name as any) !== -1 +} + +export default isWhiteList diff --git a/src/router/permission.ts b/src/router/permission.ts index 290f9a5..7f87227 100644 --- a/src/router/permission.ts +++ b/src/router/permission.ts @@ -2,9 +2,9 @@ import router from "@/router" import { useUserStoreHook } from "@/store/modules/user" import { usePermissionStoreHook } from "@/store/modules/permission" import { ElMessage } from "element-plus" -import { whiteList } from "@/config/white-list" import { getToken } from "@/utils/cache/cookies" import asyncRouteSettings from "@/config/async-route" +import isWhiteList from "@/config/white-list" import NProgress from "nprogress" import "nprogress/nprogress.css" @@ -55,7 +55,7 @@ router.beforeEach(async (to, _from, next) => { } } else { // 如果没有 Token - if (whiteList.indexOf(to.path) !== -1) { + if (isWhiteList(to)) { // 如果在免登录的白名单中,则直接进入 next() } else {