import axios from 'axios'; import Vue from 'vue'; import { MessageBox, Message } from 'element-ui'; import Loading from './vab'; import store from '@/store'; import qs from 'qs'; import { getStorage, setStorage } from '@/utils/sessionStorage'; const service = axios.create({ baseURL: process.env.VUE_APP_BASE_API, // api 的 base_url process.env.VUE_APP_BASE_API timeout: 50000 // 请求超时时间 }); //请求 service.interceptors.request.use(config => { return config; error => { console.log(error); return Promise.reject(error); }; }); // //响应 service.interceptors.response.use( response => { const res = response.data; if (response.status === 200) { return Promise.resolve(response); } else { Message.error('接口请求错误'); return Promise.reject(response); } }, error => { if (error.response) { switch (error.response.status) { case 401: MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { confirmButtonText: '重新登录', cancelButtonText: '取消', type: 'warning' }) .then(() => { store.dispatch('user/logout').then(() => { window.location.href = '/'; }); }) .catch(() => { if (!getStorage('accessToken')) { store.dispatch('user/logout').then(() => { window.location.href = '/'; }); } }); break; case 404: Message({ message: '很抱歉,资源未找到!', type: 'error' }); break; case 500: Message({ message: '网络错误,请稍后再试!', type: 'error' }); break; case 503: Message({ message: '系统错误,请稍后再试!', type: 'error' }); break; case 504: Message({ message: '网络超时,请稍后再试!', type: 'error' }); break; } Vue.prototype.$Loading(); return Promise.reject(error); } } ); export default service;