From 88c2e4979a53621db8b00b8e11a7c499febcd2da Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: Sat, 21 Mar 2026 23:29:22 +0800
Subject: [PATCH] 新增锁定屏幕功能
---
ruoyi-ui/src/permission.js | 18 ++++++++++++++++--
1 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/ruoyi-ui/src/permission.js b/ruoyi-ui/src/permission.js
index 8f54e99..1dac250 100644
--- a/ruoyi-ui/src/permission.js
+++ b/ruoyi-ui/src/permission.js
@@ -4,18 +4,32 @@
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
import { getToken } from '@/utils/auth'
+import { isPathMatch } from '@/utils/validate'
import { isRelogin } from '@/utils/request'
NProgress.configure({ showSpinner: false })
const whiteList = ['/login', '/register']
+const isWhiteList = (path) => {
+ return whiteList.some(pattern => isPathMatch(pattern, path))
+}
+
router.beforeEach((to, from, next) => {
NProgress.start()
if (getToken()) {
to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
+ const isLock = store.getters.isLock
/* has token*/
if (to.path === '/login') {
+ next({ path: '/' })
+ NProgress.done()
+ } else if (isWhiteList(to.path)) {
+ next()
+ } else if (isLock && to.path !== '/lock') {
+ next({ path: '/lock' })
+ NProgress.done()
+ } else if (!isLock && to.path === '/lock') {
next({ path: '/' })
NProgress.done()
} else {
@@ -41,11 +55,11 @@
}
} else {
// 没有token
- if (whiteList.indexOf(to.path) !== -1) {
+ if (isWhiteList(to.path)) {
// 在免登录白名单,直接进入
next()
} else {
- next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
+ next(`/login?redirect=${encodeURIComponent(to.fullPath)}`) // 否则全部重定向到登录页
NProgress.done()
}
}
--
Gitblit v1.9.3