From 8c94c48ab53a85b394b6c12250f6512144f22b4a Mon Sep 17 00:00:00 2001 From: RuoYi Date: Sat, 19 Feb 2022 17:18:19 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=99=BB=E5=BD=95=E8=B6=85?= =?UTF-8?q?=E6=97=B6=E5=88=B7=E6=96=B0=E9=A1=B5=E9=9D=A2=E8=B7=B3=E8=BD=AC?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=A1=B5=E9=9D=A2=E8=BF=98=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E7=99=BB=E5=BD=95=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/permission.js | 3 +++ src/utils/request.js | 15 ++++++--------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/permission.js b/src/permission.js index 11c27ed..82a8a59 100644 --- a/src/permission.js +++ b/src/permission.js @@ -5,6 +5,7 @@ import NProgress from 'nprogress' import 'nprogress/nprogress.css' import { getToken } from '@/utils/auth' import { isHttp } from '@/utils/validate' +import { isRelogin } from '@/utils/request' NProgress.configure({ showSpinner: false }); @@ -20,8 +21,10 @@ router.beforeEach((to, from, next) => { NProgress.done() } else { if (store.getters.roles.length === 0) { + isRelogin.show = true // 判断当前用户是否已拉取完user_info信息 store.dispatch('GetInfo').then(() => { + isRelogin.show = false store.dispatch('GenerateRoutes').then(accessRoutes => { // 根据roles权限生成可访问的路由表 accessRoutes.forEach(route => { diff --git a/src/utils/request.js b/src/utils/request.js index 46b55b2..e82383a 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -9,7 +9,7 @@ import { saveAs } from 'file-saver' let downloadLoadingInstance; // 是否显示重新登录 -let isReloginShow; +export let isRelogin = { show: false }; axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' // 创建axios实例 @@ -76,23 +76,20 @@ service.interceptors.response.use(res => { return res.data } if (code === 401) { - if (!isReloginShow) { - isReloginShow = true; + if (!isRelogin.show) { + isRelogin.show = true; ElMessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' } ).then(() => { - isReloginShow = false; + isRelogin.show = false; store.dispatch('LogOut').then(() => { - // 如果是登录页面不需要重新加载 - if (window.location.hash.indexOf("#/login") != 0) { - location.href = '/index'; - } + location.href = '/index'; }) }).catch(() => { - isReloginShow = false; + isRelogin.show = false; }); } return Promise.reject('无效的会话,或者会话已过期,请重新登录。')