From 967ca126479ea5ca51726cdad1e6275571d4d3bc Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期六, 18 四月 2026 10:38:58 +0800
Subject: [PATCH] Merge branch 'dev_河南_鹤壁天沐玻璃厂' of http://114.132.189.42:9002/r/product-inventory-management into dev_河南_鹤壁天沐玻璃厂

---
 src/components/Dialog/FormDialog.vue |  116 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 58 insertions(+), 58 deletions(-)

diff --git a/src/components/Dialog/FormDialog.vue b/src/components/Dialog/FormDialog.vue
index 8b657de..3c6a40d 100644
--- a/src/components/Dialog/FormDialog.vue
+++ b/src/components/Dialog/FormDialog.vue
@@ -1,24 +1,20 @@
 <template>
-  <el-dialog
-    v-model="dialogVisible"
-    :title="computedTitle"
-    :width="width"
-    @close="handleClose"
-  >
+  <el-dialog v-model="dialogVisible"
+             :title="computedTitle"
+             :width="width"
+             @close="handleClose">
     <slot></slot>
     <template #footer>
       <div class="dialog-footer">
         <!-- 鑷畾涔夋寜閽彃妲� -->
         <slot name="footer">
-          <!-- 榛樿鎸夐挳 -->
-          <el-button
-            v-if="showConfirm"
-            type="primary"
-            @click="handleConfirm"
-          >
+          <el-button v-if="showConfirm"
+                     type="primary"
+                     :loading="loading"
+                     @click="handleConfirm">
             纭
           </el-button>
-          <el-button @click="handleCancel">鍙栨秷</el-button>
+          <el-button :disabled="loading" @click="handleCancel">鍙栨秷</el-button>
         </slot>
       </div>
     </template>
@@ -26,61 +22,65 @@
 </template>
 
 <script setup>
-import { computed } from 'vue'
+  import { computed } from "vue";
 
-const props = defineProps({
-  modelValue: {
-    type: Boolean,
-    default: false
-  },
-  title: {
-    type: [String, Function],
-    default: ''
-  },
-  operationType: {
-    type: String,
-    default: ''
-  },
-  width: {
-    type: String,
-    default: '70%'
-  }
-})
+  const props = defineProps({
+    modelValue: {
+      type: Boolean,
+      default: false,
+    },
+    title: {
+      type: [String, Function],
+      default: "",
+    },
+    operationType: {
+      type: String,
+      default: "",
+    },
+    width: {
+      type: String,
+      default: "70%",
+    },
+    loading: {
+      type: Boolean,
+      default: false,
+    },
+  });
 
-const emit = defineEmits(['update:modelValue', 'close', 'confirm', 'cancel'])
+  const emit = defineEmits(["update:modelValue", "close", "confirm", "cancel"]);
 
-const dialogVisible = computed({
-  get: () => props.modelValue,
-  set: (val) => emit('update:modelValue', val)
-})
+  const dialogVisible = computed({
+    get: () => props.modelValue,
+    set: val => emit("update:modelValue", val),
+  });
 
-// 璇︽儏妯″紡涓嶅睍绀衡�滅‘璁も�濇寜閽紝鍏跺畠绫诲瀷姝e父鏄剧ず
-const showConfirm = computed(() => props.operationType !== 'detail')
+  // 璇︽儏妯″紡涓嶅睍绀衡�滅‘璁も�濇寜閽紝鍏跺畠绫诲瀷姝e父鏄剧ず
+  const showConfirm = computed(() => props.operationType !== "detail");
 
-const computedTitle = computed(() => {
-  if (typeof props.title === 'function') {
-    return props.title(props.operationType)
-  }
-  return props.title
-})
+  const computedTitle = computed(() => {
+    if (typeof props.title === "function") {
+      return props.title(props.operationType);
+    }
+    return props.title;
+  });
 
-const handleClose = () => {
-  emit('close')
-}
+  const handleClose = () => {
+    emit("close");
+  };
 
-const handleConfirm = () => {
-  emit('confirm')
-}
+  const handleConfirm = () => {
+    emit("confirm");
+  };
 
-const handleCancel = () => {
-  emit('cancel')
-  dialogVisible.value = false
-}
+  const handleCancel = () => {
+    emit("cancel");
+    dialogVisible.value = false;
+  };
 </script>
 
 <style scoped>
-.dialog-footer {
-  text-align: center;
-}
+  .dialog-footer {
+    text-align: center;
+  }
 </style>
 

--
Gitblit v1.9.3