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)() } }