import { Loading } from 'element-ui' /** 定义loading变量 */ let loading /** 使用Element loading-start 方法 */ function startLoading() { loading = Loading.service({ lock: true, text: '加载中……', background: 'rgba(0, 0, 0, 0.7)' }) } /** 使用Element loading-close 方法 */ function endLoading() { loading.close() } /** * 那么 showFullScreenLoading() tryHideFullScreenLoading() 要干的事儿就是将同一时刻的请求合并。 * 声明一个变量 needLoadingRequestCount,每次调用showFullScreenLoading方法 needLoadingRequestCount + 1。 * 调用tryHideFullScreenLoading()方法,needLoadingRequestCount - 1。needLoadingRequestCount为 0 时,结束 loading。 */ let needLoadingRequestCount = 0 /** 显示Loading */ export function showFullScreenLoading() { if (needLoadingRequestCount === 0) { startLoading() } needLoadingRequestCount++ } /** 隐藏Loading */ export function tryHideFullScreenLoading() { if (needLoadingRequestCount <= 0) return needLoadingRequestCount-- if (needLoadingRequestCount === 0) { endLoading() } } export default { showFullScreenLoading, tryHideFullScreenLoading }