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 | 110 +++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 70 insertions(+), 40 deletions(-) diff --git a/src/views/archiveManagement/mould/archiveDialog.vue b/src/views/archiveManagement/mould/archiveDialog.vue index 521ae1a..55c359c 100644 --- a/src/views/archiveManagement/mould/archiveDialog.vue +++ b/src/views/archiveManagement/mould/archiveDialog.vue @@ -1,28 +1,28 @@ <template> <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-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" + v-for="option in options" + :key="option.value" + :label="option.label" + :value="option.value" /> </el-select> </el-form-item> @@ -31,23 +31,26 @@ <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-button type="primary" @click="submit"> 纭� 瀹�</el-button> </el-col> </el-row> </template> <fileUpload - v-model="ruleForm.file" - :fileSize="1024" - :fileType="['pdf', 'docx', 'txt', 'xlsx', 'pptx....']" - :limit="10" + 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, @@ -72,6 +75,7 @@ name: "", type: "", status: "", + storageBlobDTO: [], // 纭繚 storageBlobDTO 鏄竴涓暟缁� }; }; @@ -81,25 +85,42 @@ const copyForm = ref(); // 鐩戝惉 row 鐨勫彉鍖栵紝鏇存柊 ruleForm watch( - () => props.row, - (newRow) => { - copyForm.value = initFormData(newRow); - ruleForm.value = JSON.parse(JSON.stringify(copyForm.value)); - }, - { deep: true } + () => props.row, + (newRow) => { + copyForm.value = initFormData(newRow); + ruleForm.value = JSON.parse(JSON.stringify(copyForm.value)); + }, + {deep: true} ); const rules = { - name: [{ required: true, message: "璇疯緭鍏ユ枃妗e悕绉�", trigger: "blur" }], - type: [{ required: true, message: "璇烽�夋嫨鏂囨。绫诲瀷", trigger: "blur" }], - status: [{ required: true, message: "璇烽�夋嫨鏂囨。鐘舵��", trigger: "blur" }], + 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; @@ -109,19 +130,28 @@ 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> -- Gitblit v1.9.3