import { fourDotsSpinnerSvg } from '@/assets/svg/loading'
|
const getLoadingBackground = () => {
|
const isDark = document.documentElement.classList.contains('dark')
|
return isDark ? 'rgba(7, 7, 7, 0.85)' : '#fff'
|
}
|
const DEFAULT_LOADING_CONFIG = {
|
lock: true,
|
get background() {
|
return getLoadingBackground()
|
},
|
svg: fourDotsSpinnerSvg,
|
svgViewBox: '0 0 40 40',
|
customClass: 'art-loading-fix'
|
}
|
let loadingInstance = null
|
const loadingService = {
|
/**
|
* 显示 loading
|
* @returns 关闭 loading 的函数
|
*/
|
showLoading() {
|
if (!loadingInstance) {
|
const config = {
|
...DEFAULT_LOADING_CONFIG,
|
background: getLoadingBackground()
|
}
|
loadingInstance = ElLoading.service(config)
|
}
|
return () => this.hideLoading()
|
},
|
/**
|
* 隐藏 loading
|
*/
|
hideLoading() {
|
if (loadingInstance) {
|
loadingInstance.close()
|
loadingInstance = null
|
}
|
}
|
}
|
export { loadingService }
|