From 4a867727d81b9513e675ad396903368c6a293dca Mon Sep 17 00:00:00 2001 From: whychdw <496960745@qq.com> Date: 星期二, 06 五月 2025 09:42:51 +0800 Subject: [PATCH] 内容提交 --- src/views/dashboard/compoents/uploadSoftware.vue | 74 +++++++++++++++++++++++++----------- 1 files changed, 51 insertions(+), 23 deletions(-) diff --git a/src/views/dashboard/compoents/uploadSoftware.vue b/src/views/dashboard/compoents/uploadSoftware.vue index f73eeb4..8a1760a 100644 --- a/src/views/dashboard/compoents/uploadSoftware.vue +++ b/src/views/dashboard/compoents/uploadSoftware.vue @@ -1,19 +1,46 @@ <script setup lang="ts"> import { UploadFilled } from "@element-plus/icons-vue"; import { genFileId } from "element-plus"; -import type { FormInstance, UploadProps, UploadRawFile } from "element-plus"; +import type { FormInstance, UploadProps, UploadRawFile, UploadUserFile } from "element-plus"; import SoftwareApi from "@/api/software"; + +const props = defineProps(["data"]); const emit = defineEmits(["update:close", "success"]); const paramsRef = ref({ + id: "", snCode: "", serialNumber: "", - materialCode: "", + description: "", }); const rulesRef = ref({ - snCode: [{ required: true, message: "璇疯緭鍏N鐮�", trigger: "blur" }], - serialNumber: [{ required: true, message: "璇疯緭鍏ュ簭鍒楀彿", trigger: "blur" }], - materialCode: [{ required: true, message: "璇疯緭鍏ョ墿鏂欑紪鐮�", trigger: "blur" }], + snCode: [ + { required: true, message: "璇疯緭鍏N鐮�", trigger: "blur" }, + { + validator: (rule: any, value: any, callback: Function) => { + if (value !== props.data.snCode) { + callback(new Error("SN鐮佷笌褰撳墠鍖匰N鐮佷笉鍖归厤锛侊紒锛�")); + } else { + callback(); + } + }, + trigger: "blur", + }, + ], + serialNumber: [ + { required: true, message: "璇疯緭鍏ュ簭鍒楀彿", trigger: "blur" }, + { + validator: (rule: any, value: any, callback: Function) => { + if (value !== props.data.serialNumber) { + callback(new Error("搴忓垪鍙蜂笌褰撳墠鍖呭簭鍒楀彿涓嶅尮閰嶏紒锛侊紒")); + } else { + callback(); + } + }, + trigger: "blur", + }, + ], + description: [{ required: true, message: "璇疯緭鍏ョ増鏈洿鏂板唴瀹�", trigger: "blur" }], }); const layout = reactive({ gutter: 16, @@ -62,8 +89,7 @@ } function uploadFile() { - const params = getParams(); - SoftwareApi.uploadSoftware(params) + SoftwareApi.uploadSoftware(paramsRef.value.id, paramsRef.value.description, fileList.value[0].raw) .then((result) => { const { code } = result; if (code === 1) { @@ -88,16 +114,14 @@ .finally(() => {}); } -function getParams(): FormData { - const formData = new FormData(); - formData.append("file", fileList.value[0].raw); - formData.append("softwareStr", JSON.stringify(paramsRef.value)); - return formData; -} - function close() { emit("update:close", false); } + +onMounted(() => { + paramsRef.value.id = props.data.id; + paramsRef.value.description = props.data.description; +}); </script> <template> @@ -110,19 +134,23 @@ label-width="auto" > <el-row :gutter="layout.gutter"> - <el-col :span="layout.span"> + <el-col :span="12"> + <el-form-item label="搴忓垪鍙�" prop="serialNumber"> + <el-input v-model="paramsRef.serialNumber"></el-input> + </el-form-item> + </el-col> + <el-col :span="12"> <el-form-item label="SN鐮�" prop="snCode"> <el-input v-model="paramsRef.snCode"></el-input> </el-form-item> </el-col> <el-col :span="layout.span"> - <el-form-item label="鐗╂枡缂栫爜" prop="materialCode"> - <el-input v-model="paramsRef.materialCode"></el-input> - </el-form-item> - </el-col> - <el-col :span="layout.span"> - <el-form-item label="搴忓垪鍙�" prop="serialNumber"> - <el-input v-model="paramsRef.serialNumber"></el-input> + <el-form-item label="鐗堟湰鏇存柊鍐呭" prop="description"> + <el-input + v-model="paramsRef.description" + type="textarea" + :autosize="{ minRows: 4, maxRows: 10 }" + ></el-input> </el-form-item> </el-col> <el-col :span="24"> @@ -153,7 +181,7 @@ <style scoped lang="scss"> .dialog-wrapper { - width: 580px; + width: 620px; .from-footer { text-align: right; } -- Gitblit v1.9.1