import axios from 'axios' import { Message } from 'element-ui' import router from '@/router' const service = axios.create({ baseURL: process.env.VUE_APP_BASE_API || '', timeout: 10000 }) // 请求拦截器 service.interceptors.request.use( config => { const token = localStorage.getItem('token') if (token) { config.headers['Authorization'] = `Bearer ${token}` } return config }, error => { console.error('请求错误:', error) return Promise.reject(error) } ) // 响应拦截器 service.interceptors.response.use( response => { const res = response.data if (res.code === 200) { return res } else { Message.error(res.message || '请求失败') return Promise.reject(new Error(res.message || '请求失败')) } }, error => { console.error('响应错误:', error) if (error.response) { if (error.response.status === 401) { Message.error('登录已过期,请重新登录') localStorage.clear() router.push('/login') } else { Message.error(error.response.data?.message || '请求失败') } } else { Message.error('网络请求失败') } return Promise.reject(error) } ) export default service