NPP_Vue/src/utils/loading.ts
2025-06-03 16:45:54 +08:00

45 lines
1.3 KiB
TypeScript

import { nextTick } from 'vue'
import '/@/theme/loading.scss'
/**
* 页面全局 Loading
* @method start 创建 loading
* @method done 移除 loading
*/
export const NextLoading = {
// 创建 loading
start: () => {
const bodys: Element = document.body
const div = <HTMLElement>document.createElement('div')
div.setAttribute('class', 'loading-next')
const htmls = `
<div class="loading-next-box">
<div class="loading-next-box-warp">
<div class="loading-next-box-item"></div>
<div class="loading-next-box-item"></div>
<div class="loading-next-box-item"></div>
<div class="loading-next-box-item"></div>
<div class="loading-next-box-item"></div>
<div class="loading-next-box-item"></div>
<div class="loading-next-box-item"></div>
<div class="loading-next-box-item"></div>
<div class="loading-next-box-item"></div>
</div>
</div>
`
div.innerHTML = htmls
bodys.insertBefore(div, bodys.childNodes[0])
window.nextLoading = true
},
// 移除 loading
done: (time: number = 0) => {
nextTick(() => {
setTimeout(() => {
window.nextLoading = false
const el = <HTMLElement>document.querySelector('.loading-next')
el?.parentNode?.removeChild(el)
}, time)
})
},
}