diff --git a/packages/components/loading/__tests__/loading.spec.ts b/packages/components/loading/__tests__/loading.spec.ts index 1c25006d46..e2e98c71b4 100644 --- a/packages/components/loading/__tests__/loading.spec.ts +++ b/packages/components/loading/__tests__/loading.spec.ts @@ -261,6 +261,7 @@ describe('Loading', () => { await nextTick() let masks = document.querySelectorAll('.el-loading-mask') + expect(loadingInstance).toEqual(loadingInstance2) expect(masks.length).toEqual(1) loadingInstance2.close() jest.runAllTimers() diff --git a/packages/components/loading/src/loading.ts b/packages/components/loading/src/loading.ts index 35b66bab34..cfa4144e14 100644 --- a/packages/components/loading/src/loading.ts +++ b/packages/components/loading/src/loading.ts @@ -44,6 +44,7 @@ export function createLoadingComponent(options: LoadingOptionsResolved) { removeClass(target, 'el-loading-parent--hidden') } remvoeElLoadingChild() + loadingInstance.unmount() } function remvoeElLoadingChild(): void { vm.$el?.parentNode?.removeChild(vm.$el) @@ -140,7 +141,8 @@ export function createLoadingComponent(options: LoadingOptionsResolved) { }, } - const vm = createApp(elLoadingComponent).mount(document.createElement('div')) + const loadingInstance = createApp(elLoadingComponent) + const vm = loadingInstance.mount(document.createElement('div')) return { ...toRefs(data), diff --git a/packages/components/loading/src/service.ts b/packages/components/loading/src/service.ts index 91c0c5b4f3..14d62b0ec8 100644 --- a/packages/components/loading/src/service.ts +++ b/packages/components/loading/src/service.ts @@ -19,8 +19,7 @@ export const Loading = function ( const resolved = resolveOptions(options) if (resolved.fullscreen && fullscreenInstance) { - fullscreenInstance.remvoeElLoadingChild() - fullscreenInstance.close() + return fullscreenInstance } const instance = createLoadingComponent({