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'), }