From 8cb3d2cf197219cf33c5e55da2a52659600f6515 Mon Sep 17 00:00:00 2001 From: zclzone Date: Fri, 5 Jul 2024 17:41:58 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=BC=B9=E7=AA=97=E5=8F=8A=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E6=8F=90=E9=86=92=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/index.js | 2 +- src/utils/http/helpers.js | 7 ++++--- src/utils/http/interceptors.js | 16 +++++++--------- src/views/login/api.js | 2 +- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/api/index.js b/src/api/index.js index 44eb0dc..23cbe93 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -14,7 +14,7 @@ export default { // 刷新token refreshToken: () => request.get('/auth/refresh/token'), // 登出 - logout: () => request.post('/auth/logout'), + logout: () => request.post('/auth/logout', {}, { needTip: false }), // 切换当前角色 switchCurrentRole: role => request.post(`/auth/current-role/switch/${role}`), // 获取角色权限 diff --git a/src/utils/http/helpers.js b/src/utils/http/helpers.js index d5be638..b7de8bb 100644 --- a/src/utils/http/helpers.js +++ b/src/utils/http/helpers.js @@ -10,10 +10,10 @@ import { useAuthStore } from '@/store' let isConfirming = false -export function resolveResError(code, message) { +export function resolveResError(code, message, needTip = true) { switch (code) { case 401: - if (isConfirming) + if (isConfirming || !needTip) return isConfirming = true $dialog.confirm({ @@ -32,7 +32,7 @@ export function resolveResError(code, message) { return false case 11007: case 11008: - if (isConfirming) + if (isConfirming || !needTip) return isConfirming = true $dialog.confirm({ @@ -62,5 +62,6 @@ export function resolveResError(code, message) { message = message ?? `【${code}】: 未知异常!` break } + needTip && window.$message?.error(message) return message } diff --git a/src/utils/http/interceptors.js b/src/utils/http/interceptors.js index c265c9f..d048d3d 100644 --- a/src/utils/http/interceptors.js +++ b/src/utils/http/interceptors.js @@ -13,7 +13,7 @@ import { useAuthStore } from '@/store' export function setupInterceptors(axiosInstance) { function reqResolve(config) { // 处理不需要token的请求 - if (config.noNeedToken) { + if (config.needToken === false) { return config } @@ -39,11 +39,11 @@ export function setupInterceptors(axiosInstance) { } const code = data?.code ?? status - // 根据code处理对应的操作,并返回处理后的message - const message = resolveResError(code, data?.message ?? statusText) + const needTip = config?.needTip !== false + + // 根据code处理对应的操作,并返回处理后的message + const message = resolveResError(code, data?.message ?? statusText, needTip) - // 需要错误提醒 - !config?.noNeedTip && message && window.$message?.error(message) return Promise.reject({ code, message, error: data ?? response }) } return Promise.resolve(data ?? response) @@ -54,16 +54,14 @@ export function setupInterceptors(axiosInstance) { const code = error?.code /** 根据code处理对应的操作,并返回处理后的message */ const message = resolveResError(code, error.message) - window.$message?.error(message) return Promise.reject({ code, message, error }) } const { data, status, config } = error.response const code = data?.code ?? status - const message = resolveResError(code, data?.message ?? error.message) - /** 需要错误提醒 */ - !config?.noNeedTip && message && window.$message?.error(message) + const needTip = config?.needTip !== false + const message = resolveResError(code, data?.message ?? error.message, needTip) return Promise.reject({ code, message, error: error.response?.data || error.response }) } diff --git a/src/views/login/api.js b/src/views/login/api.js index d363957..9c4f939 100644 --- a/src/views/login/api.js +++ b/src/views/login/api.js @@ -10,6 +10,6 @@ import { request } from '@/utils' export default { toggleRole: data => request.post('/auth/role/toggle', data), - login: data => request.post('/auth/login', data, { noNeedToken: true }), + login: data => request.post('/auth/login', data, { needToken: false }), getUser: () => request.get('/user/detail'), }