From b4e559be27b15cef3388cca703d916d591d05bbd Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期六, 06 六月 2026 14:08:17 +0800
Subject: [PATCH] fix: 修改打包

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

diff --git a/src/components/Dialog/FormDialog.vue b/src/components/Dialog/FormDialog.vue
new file mode 100644
index 0000000..b60bfb4
--- /dev/null
+++ b/src/components/Dialog/FormDialog.vue
@@ -0,0 +1,86 @@
+<template>
+  <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>
+          <el-button @click="handleCancel">鍙栨秷</el-button>
+        </slot>
+      </div>
+    </template>
+  </el-dialog>
+</template>
+
+<script setup>
+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 emit = defineEmits(['update:modelValue', 'close', 'confirm', 'cancel'])
+
+const dialogVisible = computed({
+  get: () => props.modelValue,
+  set: (val) => emit('update:modelValue', val)
+})
+
+// 璇︽儏妯″紡涓嶅睍绀衡�滅‘璁も�濇寜閽紝鍏跺畠绫诲瀷姝e父鏄剧ず
+const showConfirm = computed(() => props.operationType !== 'detail' && props.operationType !== 'view')
+
+const computedTitle = computed(() => {
+  if (typeof props.title === 'function') {
+    return props.title(props.operationType)
+  }
+  return props.title
+})
+
+const handleClose = () => {
+  emit('close')
+}
+
+const handleConfirm = () => {
+  emit('confirm')
+}
+
+const handleCancel = () => {
+  emit('cancel')
+  dialogVisible.value = false
+}
+</script>
+
+<style scoped>
+.dialog-footer {
+  text-align: center;
+}
+</style>
+

--
Gitblit v1.9.3