import { Loading } from 'element-ui';
let loadingCount = 0;
let loading;
const startLoading = () => {
loading = Loading.service({
lock: true,
text: '加载中……',
background: 'rgba(0, 0, 0, 0.7)'
});
};
const endLoading = () => {
loading.close();
};
export const showLoading = () => {
if (loadingCount === 0) {
startLoading();
}
loadingCount += 1;
};
export const hideLoading = () => {
if (loadingCount <= 0) {
return;
}
loadingCount -= 1;
if (loadingCount === 0) {
endLoading();
}
};
就是用一个变量来控制:loadingCount ,在请求里面使用:请求创建的时候+1,得到响应-1,为0才关闭
export function axiosHttp(_this,method,url,params,responseType,successCallback,failCallback){
let loadingInstance = Loading.service({
fullscreen: true,
background: 'rgba(0, 0, 0, .7)'
});
store.state.request++
axios({
method: method,
url: url + '?token=' + localStorage.getItem('token'), data: params,
responseType:responseType? responseType : "json"
}).then(res => {
store.state.request--
if (store.state.request == 0) {
loadingInstance.close()
}
if (res.data.status || res.status == 200) {
successCallback(res)
} else {
failCallback && failCallback(res)
toast(_this,res.data.msg,'error')
console.log(res)
}
})
}