This commit is contained in:
sjk
2025-11-17 14:11:46 +08:00
commit ad4a600af9
1659 changed files with 171560 additions and 0 deletions

View File

@@ -0,0 +1,74 @@
import axios from 'axios'
import { ElMessage } from 'element-plus'
import { useAuthStore } from '@/stores/auth'
// 创建axios实例
const request = axios.create({
baseURL: '/api',
timeout: 10000,
headers: {
'Content-Type': 'application/json'
}
})
// 请求拦截器
request.interceptors.request.use(
(config) => {
const authStore = useAuthStore()
if (authStore.token) {
config.headers.Authorization = `Bearer ${authStore.token}`
}
return config
},
(error) => {
return Promise.reject(error)
}
)
// 响应拦截器
request.interceptors.response.use(
(response) => {
const { code, message, data } = response.data
if (code === 200) {
return { data, message }
} else {
// 静默处理错误,不显示错误提示
console.log('请求失败:', message)
return Promise.reject(new Error(message || '请求失败'))
}
},
(error) => {
if (error.response) {
const { status, data } = error.response
switch (status) {
case 401:
ElMessage.error('登录已过期,请重新登录')
const authStore = useAuthStore()
authStore.logout()
window.location.href = '/login'
break
case 403:
ElMessage.error('没有权限访问')
break
case 404:
ElMessage.error('请求的资源不存在')
break
case 500:
ElMessage.error('服务器内部错误')
break
default:
// 静默处理网络错误
console.log('网络错误:', data?.message || '网络错误')
}
} else {
// 静默处理网络连接失败
console.log('网络连接失败')
}
return Promise.reject(error)
}
)
export default request

View File

@@ -0,0 +1,75 @@
import axios from 'axios'
import { ElMessage } from 'element-plus'
import { useAuthStore } from '@/stores/auth'
// 创建axios实例 - 生产环境配置
const request = axios.create({
baseURL: '', // 生产环境不使用/api前缀直接使用完整路径
timeout: 10000,
headers: {
'Content-Type': 'application/json'
}
})
// 请求拦截器
request.interceptors.request.use(
config => {
const authStore = useAuthStore()
if (authStore.token) {
config.headers.Authorization = `Bearer ${authStore.token}`
}
return config
},
error => {
return Promise.reject(error)
}
)
// 响应拦截器
request.interceptors.response.use(
response => {
const { code, message, data } = response.data
if (code === 200) {
return data
} else {
ElMessage.error(message || '请求失败')
return Promise.reject(new Error(message || '请求失败'))
}
},
error => {
console.error('请求错误:', error)
if (error.response) {
const { status, data } = error.response
switch (status) {
case 401:
ElMessage.error('未授权,请重新登录')
const authStore = useAuthStore()
authStore.logout()
window.location.href = '/login'
break
case 403:
ElMessage.error('拒绝访问')
break
case 404:
ElMessage.error('请求的资源不存在')
break
case 500:
ElMessage.error('服务器内部错误')
break
default:
ElMessage.error(data?.message || '网络错误')
}
} else if (error.request) {
ElMessage.error('网络连接失败,请检查网络')
} else {
ElMessage.error('请求配置错误')
}
return Promise.reject(error)
}
)
export default request