import { getToken } from '@/utils' import { resolveResError } from './helpers' export function reqResolve(config) { if (config.url.includes('/admin')) { config.url = config.url.replace(new RegExp('^/admin'), '') console.log(config) config.baseURL = import.meta.env.VITE_ADMIN_API } else { config.baseURL = import.meta.env.VITE_BASE_API } // 处理不需要token的请求 if (config.noNeedToken) { return config } const token = getToken() if (!token) { return Promise.reject({ code: 401, message: '登录已过期,请重新登录!' }) } /** * * 加上 token * ! 认证方案: JWT Bearer */ config.headers.Authorization = config.headers.Authorization || 'Bearer ' + token return config } export function reqReject(error) { return Promise.reject(error) } export function resResolve(response) { // TODO: 处理不同的 response.headers const { data, status, config, statusText } = response if (data?.code !== 200) { const code = data?.code ?? status /** 根据code处理对应的操作,并返回处理后的message */ const message = resolveResError(code, data?.msg ?? statusText) /** 需要错误提醒 */ !config.noNeedTip && window.$message?.error(message) return Promise.reject({ code, message, error: data || response }) } return Promise.resolve(data) } export function resReject(error) { if (!error || !error.response) { 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 && window.$message?.error(message) return Promise.reject({ code, message, error: error.response?.data || error.response }) }