Bläddra i källkod

合同提交:如果文件未上传完成 提示文件上传中

lxf 1 år sedan
förälder
incheckning
f7c865e690

+ 13 - 1
src/components/process/Contract.vue

@@ -387,7 +387,7 @@
             <el-table-column label="数量" width="160">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
-                  <el-form-item :prop="'contractShipmentList.' + $index + '.quantity'" :rules="rules.quantity" :inline-message="true">
+                  <el-form-item :prop="'contractShipmentList.' + $index + '.quantity'" :inline-message="true">
                     <el-input-number
                       v-model="row.quantity"
                       placeholder="请输入数量"
@@ -430,6 +430,7 @@
               :data="uploadData"
               multiple
               :before-upload="uploadFile"
+              :on-success="handleSuccess"
               :on-preview="onPreviewFile">
               <el-button>选择</el-button>
             </el-upload>
@@ -954,19 +955,30 @@ const uploadFile = async (file) => {
   file.id = res.id;
   file.fileName = res.fileName;
   file.fileUrl = res.fileUrl;
+  file.uploadState = false;
   return true;
 };
+const handleSuccess = (any, UploadFile) => {
+  UploadFile.raw.uploadState = true;
+};
 const onPreviewFile = (file) => {
   window.open(file.raw.fileUrl, "_blank");
 };
 const submitHandoverForm = () => {
   formData.data.contractProductList[productIndex.value].remark = productRow.data.remark;
   if (fileList.value && fileList.value.length > 0) {
+    for (let i = 0; i < fileList.value.length; i++) {
+      if (!fileList.value[i].raw.uploadState) {
+        ElMessage("文件上传中,请稍后提交");
+        return;
+      }
+    }
     formData.data.contractProductList[productIndex.value].fileList = fileList.value.map((item) => {
       return {
         id: item.raw.id,
         fileName: item.raw.fileName,
         fileUrl: item.raw.fileUrl,
+        uploadState: item.raw.uploadState,
       };
     });
   } else {

+ 9 - 2
src/components/process/EHSD/Contract.vue

@@ -420,7 +420,7 @@
             <el-table-column label="数量" width="160">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
-                  <el-form-item :prop="'contractShipmentList.' + $index + '.quantity'" :rules="rules.quantity" :inline-message="true">
+                  <el-form-item :prop="'contractShipmentList.' + $index + '.quantity'" :inline-message="true">
                     <el-input-number
                       v-model="row.quantity"
                       placeholder="请输入数量"
@@ -951,6 +951,13 @@ const handleSubmit = async () => {
       ElMessage("请上传交接单");
       return false;
     }
+    for (let i = 0; i < formData.data.fileList.length; i++) {
+      console.log(formData.data.fileList[i]);
+      if (!formData.data.fileList[i].raw.uploadState) {
+        ElMessage("文件上传中,请稍后提交");
+        return false;
+      }
+    }
     if (formData.data.contractShipmentList && formData.data.contractShipmentList.length > 0) {
       for (let i = 0; i < formData.data.contractProductList.length; i++) {
         let data = formData.data.contractShipmentList.filter((item) => item.productId === formData.data.contractProductList[i].productId);
@@ -1020,7 +1027,7 @@ const uploadFile = async (file) => {
   return true;
 };
 const handleSuccess = (any, UploadFile) => {
-  UploadFile.raw.uploadState = true
+  UploadFile.raw.uploadState = true;
 };
 const onPreviewFile = (file) => {
   window.open(file.raw.fileUrl, "_blank");

+ 12 - 1
src/components/process/EHSD/Sample.vue

@@ -337,6 +337,7 @@
             :data="uploadData"
             multiple
             :before-upload="uploadFile"
+            :on-success="handleSuccess"
             :on-preview="onPreviewFile">
             <el-button type="primary" plain>选择</el-button>
           </el-upload>
@@ -415,7 +416,7 @@
             <el-table-column label="数量" width="160">
               <template #default="{ row, $index }">
                 <div style="width: 100%">
-                  <el-form-item :prop="'sampleShipmentList.' + $index + '.quantity'" :rules="rules.quantity" :inline-message="true">
+                  <el-form-item :prop="'sampleShipmentList.' + $index + '.quantity'" :inline-message="true">
                     <el-input-number
                       v-model="row.quantity"
                       placeholder="请输入数量"
@@ -960,6 +961,12 @@ const handleSubmit = async () => {
       ElMessage("请上传交接单");
       return false;
     }
+    for (let i = 0; i < formData.data.fileList.length; i++) {
+      if (!formData.data.fileList[i].raw.uploadState) {
+        ElMessage("文件上传中,请稍后提交");
+        return false;
+      }
+    }
     if (formData.data.sampleShipmentList && formData.data.sampleShipmentList.length > 0) {
       for (let i = 0; i < formData.data.sampleProductList.length; i++) {
         let data = formData.data.sampleShipmentList.filter((item) => item.productId === formData.data.sampleProductList[i].productId);
@@ -1025,8 +1032,12 @@ const uploadFile = async (file) => {
   file.id = res.id;
   file.fileName = res.fileName;
   file.fileUrl = res.fileUrl;
+  file.uploadState = false;
   return true;
 };
+const handleSuccess = (any, UploadFile) => {
+  UploadFile.raw.uploadState = true;
+};
 const onPreviewFile = (file) => {
   window.open(file.raw.fileUrl, "_blank");
 };

+ 12 - 0
src/components/process/ServiceContract.vue

@@ -303,6 +303,7 @@
               :data="uploadData"
               multiple
               :before-upload="uploadFile"
+              :on-success="handleSuccess"
               :on-preview="onPreviewFile">
               <el-button>选择</el-button>
             </el-upload>
@@ -735,19 +736,30 @@ const uploadFile = async (file) => {
   file.id = res.id;
   file.fileName = res.fileName;
   file.fileUrl = res.fileUrl;
+  file.uploadState = false;
   return true;
 };
+const handleSuccess = (any, UploadFile) => {
+  UploadFile.raw.uploadState = true;
+};
 const onPreviewFile = (file) => {
   window.open(file.raw.fileUrl, "_blank");
 };
 const submitHandoverForm = () => {
   formData.data.serviceContractProductList[productIndex.value].remark = productRow.data.remark;
   if (fileList.value && fileList.value.length > 0) {
+    for (let i = 0; i < fileList.value.length; i++) {
+      if (!fileList.value[i].raw.uploadState) {
+        ElMessage("文件上传中,请稍后提交");
+        return;
+      }
+    }
     formData.data.serviceContractProductList[productIndex.value].fileList = fileList.value.map((item) => {
       return {
         id: item.raw.id,
         fileName: item.raw.fileName,
         fileUrl: item.raw.fileUrl,
+        uploadState: item.raw.uploadState,
       };
     });
   } else {