测试暂未发现问题

This commit is contained in:
ChoChoX
2026-06-25 21:49:55 +08:00
parent 5cd569797c
commit 984d5b8118
26 changed files with 2414 additions and 636 deletions

53
src/api/request.js Normal file
View File

@@ -0,0 +1,53 @@
import axios from 'axios'
import { ElMessage } from 'element-plus'
import router from '../router'
// 创建 axios 实例
const request = axios.create({
baseURL: '/api',
timeout: 10000
})
// 请求拦截器:自动添加 token
request.interceptors.request.use(
(config) => {
const token = localStorage.getItem('token')
if (token) {
config.headers.Authorization = `Bearer ${token}`
}
return config
},
(error) => {
return Promise.reject(error)
}
)
// 响应拦截器统一处理错误config.quiet = true 时不弹窗)
request.interceptors.response.use(
(response) => {
return response.data
},
(error) => {
const status = error.response?.status
const message = error.response?.data?.message || '请求失败'
const quiet = error.config?.quiet
const isLogin = error.config?.url?.includes('/user/login')
if (!quiet) {
if (status === 401) {
localStorage.removeItem('token')
localStorage.removeItem('userInfo')
router.push('/login')
ElMessage.error('登录已过期,请重新登录')
} else if (status === 403 && !isLogin) {
ElMessage.error('权限不足')
} else {
ElMessage.error(message)
}
}
return Promise.reject(error)
}
)
export default request