import axios from 'axios' import { Message } from 'element-ui' const service = axios.create({ baseURL: process.env.VUE_APP_BASE_API || '/', timeout: 15000 }) service.interceptors.request.use( config => { const token = localStorage.getItem('store_token') if (token) { config.headers['Authorization'] = token } if (config.method === 'get' && config.data) { config.params = config.data delete config.data } return config }, error => Promise.reject(error) ) service.interceptors.response.use( response => { const res = response.data if (res.code === 600 || res.code === 601 || res.code === 602) { localStorage.removeItem('store_token') localStorage.removeItem('store_user') localStorage.removeItem('store_info') Message.error('登录已过期,请重新登录') setTimeout(() => { window.location.href = '#/login' }, 1000) return Promise.reject(new Error('登录过期')) } if (res.code !== undefined && res.code !== 200) { Message.error(res.msg || '请求失败') return Promise.reject(new Error(res.msg || '请求失败')) } return res }, error => { if (error.response && (error.response.status === 401 || error.response.status === 403)) { localStorage.removeItem('store_token') localStorage.removeItem('store_user') localStorage.removeItem('store_info') window.location.href = '#/login' } Message.error(error.message || '网络错误') return Promise.reject(error) } ) export default service