提交 20da0656 编写于 作者: Yuanzhao.dai's avatar Yuanzhao.dai

全局loading

上级 63458f4b
import axios from 'axios' import axios from 'axios'
import { Loading } from 'element-ui';
import store from '../store' import store from '../store'
// import { getHostnameAndPort } from '../utils' // import { getHostnameAndPort } from '../utils'
// axios.defaults.withCredentials = true // axios.defaults.withCredentials = true
...@@ -9,8 +10,41 @@ const service = axios.create({ ...@@ -9,8 +10,41 @@ const service = axios.create({
withCredentials: false withCredentials: false
}) })
/*loading*/
let loadingInstance = () => {
return Loading.service({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
}
let loading;
let needLoadingRequestCount = 0;
let showFullScreenLoading = () => {
if (needLoadingRequestCount === 0) {
loadingInstance();
}
needLoadingRequestCount++;
};
let tryHideFullScreenLoading = () => {
if (needLoadingRequestCount > 0) {
needLoadingRequestCount--;
}
if (needLoadingRequestCount === 0) {
loadingInstance().close();
}
};
// request拦截器 // request拦截器
service.interceptors.request.use(config => { service.interceptors.request.use(config => {
if (config.noLoading) {
}else{
showFullScreenLoading();
}
const noSysCode = config.headers.noSysCode; const noSysCode = config.headers.noSysCode;
if(noSysCode){ if(noSysCode){
delete config.headers.sysCode; delete config.headers.sysCode;
...@@ -36,12 +70,18 @@ service.interceptors.request.use(config => { ...@@ -36,12 +70,18 @@ service.interceptors.request.use(config => {
return config return config
}, error => { }, error => {
// logger.debug('service.interceptors.request: ', error) // logger.debug('service.interceptors.request: ', error)
tryHideFullScreenLoading();
Promise.reject(error) Promise.reject(error)
}) })
// respone拦截器 // respone拦截器
service.interceptors.response.use( service.interceptors.response.use(
response => { response => {
if (response.config.noLoading) {
}else{
tryHideFullScreenLoading()
}
const res = response.data const res = response.data
/* /*
baseUrl时,返回000000为成功 baseUrl时,返回000000为成功
...@@ -55,6 +95,8 @@ service.interceptors.response.use( ...@@ -55,6 +95,8 @@ service.interceptors.response.use(
}, },
error => { error => {
// logger.error('err' + error) // logger.error('err' + error)
tryHideFullScreenLoading();
return Promise.reject(error) return Promise.reject(error)
} }
) )
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册