import axios from 'axios'
import util from './util'
import {showFullScreenLoading, tryHideFullScreenLoading} from './axiosHelperLoading'
export default function () {
axios.interceptors.request.use(
req => {
req.headers.token = localStorage.getItem('token') || '';
showFullScreenLoading();
return req
},
err => {
return Promise.reject(err)
}
);
axios.interceptors.response.use(
res => {
if (res.data.code === -2004) {
// 登录失效,清楚token,刷新页面
util.localStorage.remove('token');
window.location.href = window.location.origin + "/#/login";
return;
}
if (res.data.code === -2006) {
window.location.href = window.location.origin + "/#/unauthorizedPage";
return;
}
if (res.status !== 200 || res.data.code === '-1') {
return Promise.reject(res)
}
tryHideFullScreenLoading();
return res;
},
err => {
return Promise.reject(err)
}
)
}
loading下面
import {Loading} from 'element-ui'; import _ from 'lodash'; let needLoadingRequestCount = 0; let loading; function startLoading () { loading = Loading.service({ lock: true, text: '加载中……', background: 'rgba(0, 0, 0, 0.7)' }) } function endLoading() { loading.close() } const tryCloseLoading = () => { if (needLoadingRequestCount === 0) { endLoading(); } }; export function showFullScreenLoading () { if (needLoadingRequestCount === 0) { startLoading(); } needLoadingRequestCount++; } export function tryHideFullScreenLoading () { if (needLoadingRequestCount <= 0) return; needLoadingRequestCount--; if (needLoadingRequestCount === 0) { _.debounce(tryCloseLoading, 300)() } }
浙公网安备 33010602011771号