import axios from 'axios' import { ElMessage } from 'element-plus' // 1. 创建 axios 实例 const service = axios.create({ // 这里的 '/api' 配合 vite.config.ts 的 proxy 使用 baseURL: '/api/v1', timeout: 5000 // 请求超时时间 }) // 2. 请求拦截器 (可以在这里加 Token) service.interceptors.request.use( (config) => { // 如果以后有登录 token,就在这里加 // const token = localStorage.getItem('token') // if (token) { // config.headers['Authorization'] = 'Bearer ' + token // } return config }, (error) => { return Promise.reject(error) } ) // 3. 响应拦截器 (统一处理错误) service.interceptors.response.use( (response) => { const res = response.data // 这里可以根据后端的 code 来判断 // 假设你的后端成功返回 code: 200 if (res.code && res.code !== 200) { ElMessage.error(res.msg || 'Error') return Promise.reject(new Error(res.msg || 'Error')) } else { return res // 直接返回数据部分 } }, (error) => { console.log('err' + error) ElMessage.error(error.message || '请求失败') return Promise.reject(error) } ) // 4. 【关键】必须默认导出 service export default service