|
@@ -4,7 +4,7 @@ import type { LoadingProps } from './types';
|
|
|
import { createVNode, render, reactive, h } from 'vue';
|
|
|
import Loading from './index.vue';
|
|
|
|
|
|
-export function createLoading(props?: Partial<LoadingProps>, target?: HTMLElement) {
|
|
|
+export function createLoading(props?: Partial<LoadingProps>, target?: HTMLElement, wait = false) {
|
|
|
let vm: Nullable<VNode> = null;
|
|
|
const data = reactive({
|
|
|
tip: '',
|
|
@@ -13,16 +13,21 @@ export function createLoading(props?: Partial<LoadingProps>, target?: HTMLElemen
|
|
|
});
|
|
|
|
|
|
const LoadingWrap = defineComponent({
|
|
|
- setup() {
|
|
|
- return () => {
|
|
|
- return h(Loading, { ...data });
|
|
|
- };
|
|
|
+ render() {
|
|
|
+ return h(Loading, { ...data });
|
|
|
},
|
|
|
});
|
|
|
|
|
|
vm = createVNode(LoadingWrap);
|
|
|
|
|
|
- render(vm, document.createElement('div'));
|
|
|
+ // TODO fix https://github.com/anncwb/vue-vben-admin/issues/438
|
|
|
+ if (wait) {
|
|
|
+ setTimeout(() => {
|
|
|
+ render(vm, document.createElement('div'));
|
|
|
+ }, 0);
|
|
|
+ } else {
|
|
|
+ render(vm, document.createElement('div'));
|
|
|
+ }
|
|
|
|
|
|
function close() {
|
|
|
if (vm?.el && vm.el.parentNode) {
|