Переглянути джерело

修复弹窗表单重复提交的问题

tzdxf 1 рік тому
батько
коміт
1b5227a22b
1 змінених файлів з 7 додано та 1 видалено
  1. 7 1
      src/components/Dialog/src/Dialog.vue

+ 7 - 1
src/components/Dialog/src/Dialog.vue

@@ -55,6 +55,8 @@ const dialogStyle = computed(() => {
     height: unref(dialogHeight)
     height: unref(dialogHeight)
   }
   }
 })
 })
+
+const closing = ref(false)
 </script>
 </script>
 
 
 <template>
 <template>
@@ -68,6 +70,8 @@ const dialogStyle = computed(() => {
     draggable
     draggable
     class="com-dialog"
     class="com-dialog"
     :show-close="false"
     :show-close="false"
+    @close="closing=true"
+    @closed="closing=false"
   >
   >
     <template #header="{ close }">
     <template #header="{ close }">
       <div class="relative h-54px flex items-center justify-between pl-15px pr-15px">
       <div class="relative h-54px flex items-center justify-between pl-15px pr-15px">
@@ -101,7 +105,9 @@ const dialogStyle = computed(() => {
     </ElScrollbar>
     </ElScrollbar>
     <slot v-else></slot>
     <slot v-else></slot>
     <template v-if="slots.footer" #footer>
     <template v-if="slots.footer" #footer>
-      <slot name="footer"></slot>
+      <div :style="{'pointer-events': closing ? 'none' : 'auto'}">
+        <slot name="footer"></slot>
+      </div>
     </template>
     </template>
   </ElDialog>
   </ElDialog>
 </template>
 </template>