This commit is contained in:
huangjin
2026-06-29 17:34:59 +08:00
commit fe3ad20fe2
271 changed files with 51767 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
import { createAlova } from 'alova'
import VueHook from 'alova/vue'
import adapterFetch from 'alova/fetch'
import { ElMessage } from 'element-plus'
export const request = createAlova({
baseURL: import.meta.env.VITE_API_BASEURL || '',
// 设置为null即可全局关闭全部请求缓存
cacheFor: null,
statesHook: VueHook,
requestAdapter: adapterFetch(),
beforeRequest(method) {
const token = localStorage.getItem('admin_token')
if (token) {
method.config.headers = { ...method.config.headers, Authorization: `Bearer ${token}` }
}
},
responded: {
onSuccess: async (response) => {
const data = await response.json()
if (data.code !== 200) {
if (response.status === 401 || data.code === 401) {
localStorage.removeItem('admin_token')
window.location.href = '/login'
throw new Error('redirect')
}
ElMessage.error(data.msg)
throw new Error(data.msg)
}
return data
},
onError: (error) => {
if (error?.message === 'redirect') return
if (error?.response?.status === 401) {
localStorage.removeItem('admin_token')
window.location.href = '/login'
return
}
ElMessage.error(error.message || '请求失败')
},
},
})
export default request