From df1406d0f571972d033dffd6a93fb4b94febeb56 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期二, 24 六月 2025 16:46:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 src/views/archiveManagement/mould/archiveDialog.vue |  132 ++++++++++++++++++++++++++++---------------
 1 files changed, 86 insertions(+), 46 deletions(-)

diff --git a/src/views/archiveManagement/mould/archiveDialog.vue b/src/views/archiveManagement/mould/archiveDialog.vue
index c976722..55c359c 100644
--- a/src/views/archiveManagement/mould/archiveDialog.vue
+++ b/src/views/archiveManagement/mould/archiveDialog.vue
@@ -1,41 +1,56 @@
 <template>
-  <el-dialog v-model="centerDialogVisible" title="Warning" width="500" center>
+  <el-dialog v-model="centerDialogVisible" title="鏂囨。绠$悊" width="500" center>
     <el-form
-      ref="ruleFormRef"
-      style="max-width: 600px"
-      :model="ruleForm"
-      :rules="rules"
-      label-width="auto"
+        ref="ruleFormRef"
+        style="max-width: 600px"
+        :model="ruleForm"
+        :rules="rules"
+        label-width="auto"
     >
       <el-form-item label="鍚嶇О" prop="name">
         <el-input v-model="ruleForm.name" placeholder="璇疯緭鍏ユ枃妗e悕绉�"/>
       </el-form-item>
       <el-form-item label="璇疯緭鍏ユ枃妗g被鍨�" prop="type">
         <el-select v-model="ruleForm.type" placeholder="璇疯緭鍏ユ枃妗g被鍨�">
-          <el-option label="鍚堝悓" value="鍚堝悓" />
-          <el-option label="鎶ュ憡" value="鎶ュ憡" />
+          <el-option label="鍚堝悓" value="鍚堝悓"/>
+          <el-option label="鎶ュ憡" value="鎶ュ憡"/>
         </el-select>
       </el-form-item>
       <el-form-item label="璇疯緭鍏ユ枃妗g姸鎬�" prop="status">
         <el-select v-model="ruleForm.status" placeholder="璇疯緭鍏ユ枃妗g姸鎬�">
-          <el-option v-for="option in options" :key="option.value" :label="option.label" :value="option.value" />
+          <el-option
+              v-for="option in options"
+              :key="option.value"
+              :label="option.label"
+              :value="option.value"
+          />
         </el-select>
       </el-form-item>
     </el-form>
     <template #footer>
-      <div class="dialog-footer">
-        <el-button @click="centerDialogVisible = false">Cancel</el-button>
-        <el-button type="primary" @click="submit">
-          Confirm
-        </el-button>
-      </div>
+      <el-row>
+        <el-col :span="24" style="text-align: right">
+          <el-button @click="centerDialogVisible = false">鍙� 娑�</el-button>
+          <el-button type="primary" @click="submit"> 纭� 瀹�</el-button>
+        </el-col>
+      </el-row>
     </template>
+    <fileUpload
+        ref="fileUploadRef"
+        :fileSize="1024"
+        :fileType="['pdf', 'docx', 'txt', 'xlsx', 'pptx....']"
+        :limit="10"
+        :drag="false"
+        v-model:modelValue="modelValue"
+    />
   </el-dialog>
 </template>
 
 <script setup>
-import { ref, watch } from "vue";
-import { addOrEditArchive } from "@/api/archiveManagement"
+import {ref, watch, nextTick} from "vue";
+import {addOrEditArchive} from "@/api/archiveManagement";
+import fileUpload from "@/components/FileUpload/index.vue";
+import {ElMessage} from "element-plus";
 
 const centerDialogVisible = defineModel("centerDialogVisible", {
   type: Boolean,
@@ -60,60 +75,85 @@
     name: "",
     type: "",
     status: "",
+    storageBlobDTO: [], // 纭繚 storageBlobDTO 鏄竴涓暟缁�
   };
 };
 
 // 鍒濆鍖栬〃鍗曟暟鎹�
 const ruleFormRef = ref(null);
 const ruleForm = ref(initFormData(props.row));
-const copyForm = ref()
+const copyForm = ref();
 // 鐩戝惉 row 鐨勫彉鍖栵紝鏇存柊 ruleForm
-watch(() => props.row, (newRow) => {
-  copyForm.value = initFormData(newRow);
-  ruleForm.value = JSON.parse(JSON.stringify(copyForm.value));
-}, { deep: true });
+watch(
+    () => props.row,
+    (newRow) => {
+      copyForm.value = initFormData(newRow);
+      ruleForm.value = JSON.parse(JSON.stringify(copyForm.value));
+    },
+    {deep: true}
+);
 const rules = {
-  name: [
-    { required: true, message: "Please input activity name", trigger: "blur" },
-  ],
-  type: [
-    { required: true, message: "Please select activity zone", trigger: "change" },
-  ],
-  status: [
-    { required: true, message: "Please select activity count", trigger: "change" },
-  ],
+  name: [{required: true, message: "璇疯緭鍏ユ枃妗e悕绉�", trigger: "blur"}],
+  type: [{required: true, message: "璇烽�夋嫨鏂囨。绫诲瀷", trigger: "blur"}],
+  status: [{required: true, message: "璇烽�夋嫨鏂囨。鐘舵��", trigger: "blur"}],
 };
-
+const fileUploadRef = ref(null);
+const initForm = () => {
+  ruleForm.value = {};
+  nextTick(() => {
+    fileUploadRef.value.init();
+  });
+};
+const editForm = (val) => {
+  ruleForm.value = copyForm.value;
+  nextTick(() => {
+    fileUploadRef.value.editInit(val);
+  });
+};
+defineExpose({
+  initForm,
+  editForm,
+});
 const options = [
-  { value: "鏈夋晥", label: "鏈夋晥" },
-  { value: "鏃犳晥", label: "鏃犳晥" },
-  { value: "浣滃簾", label: "浣滃簾" },
+  {value: "鏈夋晥", label: "鏈夋晥"},
+  {value: "鏃犳晥", label: "鏃犳晥"},
+  {value: "浣滃簾", label: "浣滃簾"},
 ];
-const emit = defineEmits(["submitForm"]);
+const emit = defineEmits(["submitForm", "update:modelValue"]);
+const modelValue = ref([]);
 const submit = async () => {
   // 楠岃瘉琛ㄥ崟
   if (!ruleFormRef.value) return;
-  
+
   try {
     const valid = await ruleFormRef.value.validate();
     if (!valid) {
       return;
     }
-    
+    ruleForm.value.storageBlobDTO = modelValue.value; // 纭繚 ruleForm 鏄渶鏂扮殑
     // 璋冪敤 API
-    let res = await addOrEditArchive(ruleForm.value);
-    console.log("API 鍝嶅簲:", res);
-    
+    try {
+      const res = await addOrEditArchive(ruleForm.value);
+      emit("submitForm", res);
+    } catch (error) {
+      ElMessage({
+        type: "error",
+        message: error.msg || "鎿嶄綔澶辫触",
+      });
+      return;
+    }
     // 鍙戦�� emit 浜嬩欢
-    emit("submitForm", res);
-    console.log("emit submitForm 宸插彂閫�");
-    
+
     // 鍏抽棴瀵硅瘽妗�
+    ElMessage.success("鎿嶄綔鎴愬姛");
     centerDialogVisible.value = false;
   } catch (error) {
-    console.error("琛ㄥ崟楠岃瘉澶辫触鎴朅PI璋冪敤澶辫触:", error);
+    ElMessage({
+      type: "error",
+      message: error.msg || "鎿嶄綔澶辫触",
+    });
   }
-}
+};
 </script>
 
 <style lang="less" scoped></style>

--
Gitblit v1.9.3