1
0
mirror of https://github.com/zclzone/vue-naive-admin.git synced 2025-05-01 06:39:01 +08:00

Compare commits

..

2 Commits

Author SHA1 Message Date
zclzone
8cb3d2cf19 fix: 优化接口异常弹窗及消息提醒方式 2024-07-05 17:41:58 +08:00
zclzone
c5d93628f0 chore: 更新插件推荐列表,修改settings.json 2024-07-05 17:38:42 +08:00
6 changed files with 17 additions and 16 deletions

View File

@ -6,6 +6,7 @@
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"sdras.vue-vscode-snippets",
"mikestead.dotenv"
"mikestead.dotenv",
"simonhe.common-intellisense"
]
}

View File

@ -23,5 +23,6 @@
"markdown",
"json",
"jsonc"
]
],
"common-intellisense.ui": ["naiveUi2"]
}

View File

@ -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}`),
// 获取角色权限

View File

@ -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
}

View File

@ -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 })
}

View File

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