Browse Source

部分bug

cz 1 year ago
parent
commit
063d6ab457

+ 15 - 10
src/views/EHSD/productLibrary/companyProduct/index.vue

@@ -201,7 +201,8 @@
                   </el-form-item>
                 </el-col>
                 <el-col :span="12">
-                  <el-form-item prop="foldWay" label="折叠数" class="wid100" v-if="formData.data.isFold==1">
+                  <el-form-item prop="foldWay" label="折叠数" class="wid100" v-if="formData.data.isFold==1"
+                                :rules="formData.data.isFold==1?rules.foldWay:''">
                     <el-select v-model="formData.data.foldWay" placeholder="请选择" style="width:100%">
                       <el-option v-for="item in foldWayData" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" />
                     </el-select>
@@ -471,6 +472,7 @@ const rules = ref({
   rawMaterialId: [
     { required: true, message: "请选择原材料", trigger: "change" },
   ],
+  foldWay: [{ required: true, message: "请选择折叠数", trigger: "change" }],
   quantity: [{ required: true, message: "请输入数量", trigger: "blur" }],
   remark: [{ required: true, message: "请输入备注", trigger: "blur" }],
 });
@@ -1040,26 +1042,27 @@ const submitForm = () => {
     if (!formData.data.fileList.length > 0) {
       return proxy.msgTip("请上传图片", 2);
     }
-    // if(!formData.data.productBomDetailList.length>0){
-
-    // }
-    // formData.data.fileList = formData.data.fileList.map((x) => ({
-    //   id: x.id,
-    //   fileName: x.fileName,
-    //   fileUrl: x.fileUrl,
-    // }));
+    let checkNum = 0;
     for (let i = 0; i < formData.data.productCustomInfoList.length; i++) {
       const ele = formData.data.productCustomInfoList[i];
       ele.isCheck = ele.isCheckBox ? 1 : 0;
       if (ele.isCheckBox) {
+        checkNum += 1;
+      }
+      if (ele.isCheckBox) {
         if (!(ele.fileList && ele.fileList.length > 0)) {
           return proxy.msgTip(`请上传${getLabel(ele.type)}附件`, 2);
         }
       }
     }
+    if (checkNum == 0) {
+      return proxy.msgTip(`请至少勾选一个定制内容`, 2);
+    }
 
     if (formData.data.packAsk && formData.data.packAsk.length > 0) {
       formData.data.packAsk = formData.data.packAsk.join(",");
+    } else {
+      formData.data.packAsk = "";
     }
     submitLoading.value = true;
     proxy.post("/productInfo/" + modalType.value, formData.data).then(
@@ -1073,6 +1076,8 @@ const submitForm = () => {
         submitLoading.value = false;
         if (formData.data.packAsk) {
           formData.data.packAsk = formData.data.packAsk.split(",");
+        } else {
+          formData.data.packAsk = [];
         }
       }
     );
@@ -1364,8 +1369,8 @@ const clickSelect = (item) => {
 const handleClickUpload = async (att, flag) => {
   let res = null;
   let path = "";
+  proxy.msgTip("请稍后", 2);
   if (flag) {
-    proxy.msgTip("请稍后", 2);
     res = await proxy.post("/fileService/createTempFolder");
     if (res && res.path) {
       formData.data[att] = res.path;

+ 16 - 11
src/views/EHSD/productLibrary/waitCreateProduct/index.vue

@@ -180,7 +180,8 @@
                   </el-form-item>
                 </el-col>
                 <el-col :span="12">
-                  <el-form-item prop="foldWay" label="折叠数" class="wid100" v-if="formData.data.isFold==1">
+                  <el-form-item prop="foldWay" label="折叠数" class="wid100" v-if="formData.data.isFold==1"
+                                :rules="formData.data.isFold==1?rules.foldWay:''">
                     <el-select v-model="formData.data.foldWay" placeholder="请选择" style="width:100%">
                       <el-option v-for="item in foldWayData" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" />
                     </el-select>
@@ -328,6 +329,7 @@ const rules = ref({
   rawMaterialId: [
     { required: true, message: "请选择原材料", trigger: "change" },
   ],
+  foldWay: [{ required: true, message: "请选择折叠数", trigger: "change" }],
   quantity: [{ required: true, message: "请输入数量", trigger: "blur" }],
   remark: [{ required: true, message: "请输入备注", trigger: "blur" }],
 });
@@ -900,29 +902,30 @@ const submitForm = () => {
     if (!formData.data.fileList.length > 0) {
       return proxy.msgTip("请上传图片", 2);
     }
-    // if(!formData.data.productBomDetailList.length>0){
-
-    // }
-    // formData.data.fileList = formData.data.fileList.map((x) => ({
-    //   id: x.id,
-    //   fileName: x.fileName,
-    //   fileUrl: x.fileUrl,
-    // }));
+    let checkNum = 0;
     for (let i = 0; i < formData.data.productCustomInfoList.length; i++) {
       const ele = formData.data.productCustomInfoList[i];
       ele.isCheck = ele.isCheckBox ? 1 : 0;
       if (ele.isCheckBox) {
+        checkNum += 1;
+      }
+      if (ele.isCheckBox) {
         if (!(ele.fileList && ele.fileList.length > 0)) {
           return proxy.msgTip(`请上传${getLabel(ele.type)}附件`, 2);
         }
       }
     }
+    if (checkNum == 0) {
+      return proxy.msgTip(`请至少勾选一个定制内容`, 2);
+    }
 
     if (formData.data.packAsk && formData.data.packAsk.length > 0) {
       formData.data.packAsk = formData.data.packAsk.join(",");
+    } else {
+      formData.data.packAsk = "";
     }
     submitLoading.value = true;
-    proxy.post("/extQuotationProduct/createProduct", formData.data).then(
+    proxy.post("/productInfo/" + modalType.value, formData.data).then(
       (res) => {
         proxy.msgTip("操作成功", 1);
         dialogVisible.value = false;
@@ -933,6 +936,8 @@ const submitForm = () => {
         submitLoading.value = false;
         if (formData.data.packAsk) {
           formData.data.packAsk = formData.data.packAsk.split(",");
+        } else {
+          formData.data.packAsk = [];
         }
       }
     );
@@ -1195,8 +1200,8 @@ const getLabel = (type) => {
 const handleClickUpload = async (att, flag) => {
   let res = null;
   let path = "";
+  proxy.msgTip("请稍后", 2);
   if (flag) {
-    proxy.msgTip("请稍后", 2);
     res = await proxy.post("/fileService/createTempFolder");
     if (res && res.path) {
       formData.data[att] = res.path;

+ 15 - 2
src/views/EHSD/saleContract/priceSheetEHSD/index.vue

@@ -260,13 +260,14 @@
                 <template #title>
                   <!-- <TitleInfo :content="'主材'"></TitleInfo> -->
                   <div style="font-size:14px;font-weight:700;padding-left:25px;width:300px">
-                    产品编码:{{product.productCode}}
+                    产品编码:{{product.productCode || '定制产品'}}
                   </div>
                   <el-form-item label="数量" class="margin-b-0" style="width:300px !important;" :prop="'quotationProductList.' +index + '.quantity'"
                                 :rules="rules.quantity" :inline-message="true" @click.stop>
                     <el-input-number v-model="product.quantity" placeholder="请输入" style="width: 100%" :precision="0" :controls="false" :min="1"
                                      onmousewheel="return false;" />
                   </el-form-item>
+                  <el-button text type="primary" style="margin-left:10px" @click="handleRemove(index)">删除</el-button>
                 </template>
                 <div style="width:100%">
                   <div style="margin:10px 0">
@@ -433,7 +434,8 @@
                         </el-form-item>
                       </el-col>
                       <el-col :span="12">
-                        <el-form-item label="折叠数" class="wid100" v-if="product.isFold==1">
+                        <el-form-item label="折叠数" class="wid100" :prop="'quotationProductList.' +index + '.foldWay'" v-if="product.isFold==1"
+                                      :rules="product.isFold==1?rules.foldWay:''">
                           <el-select v-model="product.foldWay" placeholder="请选择" style="width:100%">
                             <el-option v-for="item in foldWayData" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" />
                           </el-select>
@@ -1413,6 +1415,7 @@ const rules = ref({
   technologyId: [
     { required: true, message: "请选择工艺产线", trigger: "change" },
   ],
+  foldWay: [{ required: true, message: "请选择折叠数", trigger: "change" }],
   remark: [{ required: true, message: "请输入备注", trigger: "blur" }],
 });
 
@@ -1580,6 +1583,7 @@ const selectProduct = (row) => {
           quotationProductBomList: goods.productBomDetailList,
           quotationProductCustomInfoList: quotationProductCustomInfoList,
         });
+        activeNames.value.push(formData.data.quotationProductList.length - 1);
         proxy.msgTip("添加成功", 1);
       } else {
         return proxy.msgTip("该产品未配置BOM", 2);
@@ -1619,6 +1623,7 @@ const clickPushProduct = () => {
     quotationProductCustomInfoList: quotationProductCustomInfoList,
   });
   proxy.msgTip("添加成功", 1);
+  activeNames.value.push(formData.data.quotationProductList.length - 1);
 };
 // const selectProduct = (goods) => {
 //   if (goods && goods.id) {
@@ -1849,14 +1854,19 @@ const handleSubmit = (type) => {
         if (iele.packAsk) {
           iele.packAsk = iele.packAsk.join(",");
         }
+
         if (
           iele.quotationProductCustomInfoList &&
           iele.quotationProductCustomInfoList.length > 0
         ) {
+          let checkNum = 0;
           for (let j = 0; j < iele.quotationProductCustomInfoList.length; j++) {
             let jele = iele.quotationProductCustomInfoList[j];
             jele.isCheck = jele.isCheckBox ? 1 : 0;
             if (jele.isCheckBox) {
+              checkNum += 1;
+            }
+            if (jele.isCheckBox) {
               if (!(jele.fileList && jele.fileList.length > 0)) {
                 return proxy.msgTip(
                   `请上传第${i + 1}条数据的${getLabel(jele.type)}附件`,
@@ -1865,6 +1875,9 @@ const handleSubmit = (type) => {
               }
             }
           }
+          if (checkNum == 0) {
+            return proxy.msgTip(`请至少勾选一个第${i + 1}条数据的定制内容`, 2);
+          }
         }
       }
       submitLoading.value = true;