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