guzhi/web/src/utils/http/interceptors.js
若拙_233 934187376b debug
2025-10-14 14:16:18 +08:00

69 lines
1.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { getToken } from '@/utils'
import { resolveResError } from './helpers'
import { useUserStore } from '@/store'
export function reqResolve(config) {
// 处理不需要token的请求
if (config.noNeedToken) {
return config
}
const token = getToken()
if (token) {
config.headers.token = config.headers.token || token
}
return config
}
export function reqReject(error) {
return Promise.reject(error)
}
export function resResolve(response) {
const { data, status, statusText } = response
if (data?.code !== 200) {
const code = data?.code ?? status
/** 根据code处理对应的操作并返回处理后的message */
const message = resolveResError(code, data?.msg ?? statusText)
console.log(message,'message')
if(message){
window.$message?.error(message, { keepAliveOnHover: true })
}
return Promise.reject({ code, message, error: data || response })
}
return Promise.resolve(data)
}
export async function resReject(error) {
if (!error || !error.response) {
const code = error?.code
/** 根据code处理对应的操作并返回处理后的message */
const message = resolveResError(code, error.message)
console.log(message,'message')
if(message){
window.$message?.error(message)
}
return Promise.reject({ code, message, error })
}
const { data, status } = error.response
if (data?.code === 401) {
try {
const userStore = useUserStore()
userStore.logout()
} catch (error) {
console.log('resReject error', error)
return
}
}
// 后端返回的response数据
const code = data?.code ?? status
const message = resolveResError(code, data?.msg ?? error.message)
console.log(message,'message')
if(message){
window.$message?.error(message, { keepAliveOnHover: true })
}
return Promise.reject({ code, message, error: error.response?.data || error.response })
}