From f96d4ed77603ca1f908dcdc4a51bd2ce2178d10c Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期三, 19 六月 2024 10:10:58 +0800
Subject: [PATCH] 登录logo,其他

---
 src/components/Loading/src/createLoading.ts |   14 ++++++++++----
 1 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/components/Loading/src/createLoading.ts b/src/components/Loading/src/createLoading.ts
index b91db1f..8c88541 100644
--- a/src/components/Loading/src/createLoading.ts
+++ b/src/components/Loading/src/createLoading.ts
@@ -1,4 +1,4 @@
-import { VNode, defineComponent, createVNode, render, reactive, h } from 'vue';
+import { createVNode, defineComponent, h, reactive, render, VNode } from 'vue';
 import type { LoadingProps } from './typing';
 
 import Loading from './Loading.vue';
@@ -19,13 +19,13 @@
 
   vm = createVNode(LoadingWrap);
 
+  let container: Nullable<HTMLElement> = null;
   if (wait) {
-    // TODO fix https://github.com/anncwb/vue-vben-admin/issues/438
     setTimeout(() => {
-      render(vm, document.createElement('div'));
+      render(vm, (container = document.createElement('div')));
     }, 0);
   } else {
-    render(vm, document.createElement('div'));
+    render(vm, (container = document.createElement('div')));
   }
 
   function close() {
@@ -41,6 +41,11 @@
     target.appendChild(vm.el as HTMLElement);
   }
 
+  function destroy() {
+    container && render(null, container);
+    container = vm = null;
+  }
+
   if (target) {
     open(target);
   }
@@ -48,6 +53,7 @@
     vm,
     close,
     open,
+    destroy,
     setTip: (tip: string) => {
       data.tip = tip;
     },

--
Gitblit v1.9.3