Browse Source

发送明细小数限制,修改时手册纱单价校验

jbb 2 years ago
parent
commit
d329b08298

+ 53 - 31
src/views/shipment-details/addShipDetDrawer.vue

@@ -121,7 +121,7 @@
               <!-- 发货数量 :rules="rules.shipQuantity"-->
               <!-- 发货数量 :rules="rules.shipQuantity"-->
               <template slot="shipmentQuantity" slot-scope="text, record, index">
               <template slot="shipmentQuantity" slot-scope="text, record, index">
                 <a-form-model-item prop="shipmentQuantity">
                 <a-form-model-item prop="shipmentQuantity">
-                  <a-input style="width:100%" type="text" v-model="record.shipmentQuantity"   @blur="dataDefault(record,record.shipmentQuantity,'发货数量',0)" />
+                  <a-input style="width:100%" type="text" v-model="record.shipmentQuantity"    />
                 </a-form-model-item>
                 </a-form-model-item>
               </template>
               </template>
 
 
@@ -154,20 +154,20 @@
               <!-- 报关单价 :rules="rules.customsDeclarationUnitPrice"-->
               <!-- 报关单价 :rules="rules.customsDeclarationUnitPrice"-->
               <template slot="customsDeclarationUnitPrice" slot-scope="text, record, index">
               <template slot="customsDeclarationUnitPrice" slot-scope="text, record, index">
                 <a-form-model-item prop="customsDeclarationUnitPrice">
                 <a-form-model-item prop="customsDeclarationUnitPrice">
-                  <a-input style="width:100%" type="text" v-model="record.customsDeclarationUnitPrice"  @blur="dataDefault(record,record.customsDeclarationUnitPrice,'报关单价',4)"/>
+                  <a-input style="width:100%" type="text" v-model="record.customsDeclarationUnitPrice" />
                 </a-form-model-item>
                 </a-form-model-item>
               </template>
               </template>
               <!-- 套装件数 :rules="rules.numberOfSets"-->
               <!-- 套装件数 :rules="rules.numberOfSets"-->
               <template slot="numberOfSets" slot-scope="text, record, index">
               <template slot="numberOfSets" slot-scope="text, record, index">
                 <a-form-model-item prop="numberOfSets">
                 <a-form-model-item prop="numberOfSets">
-                  <a-input style="width:100%" type="text" v-model="record.numberOfSets"  @blur="dataDefault(record,record.numberOfSets,'套装件数',0)"/>
+                  <a-input style="width:100%" type="text" v-model="record.numberOfSets"  />
                 </a-form-model-item>
                 </a-form-model-item>
               </template>
               </template>
 
 
               <!-- 工厂单价 :rules="rules.factoryUnitPrice"-->
               <!-- 工厂单价 :rules="rules.factoryUnitPrice"-->
               <template slot="factoryUnitPrice" slot-scope="text, record, index">
               <template slot="factoryUnitPrice" slot-scope="text, record, index">
                 <a-form-model-item prop="factoryUnitPrice">
                 <a-form-model-item prop="factoryUnitPrice">
-                  <a-input style="width:100%" type="text" v-model="record.factoryUnitPrice"  @blur="dataDefault(record,record.factoryUnitPrice,'工厂单价',0)" />
+                  <a-input style="width:100%" type="text" v-model="record.factoryUnitPrice"   />
                 </a-form-model-item>
                 </a-form-model-item>
               </template>
               </template>
 
 
@@ -192,7 +192,7 @@
               <!--手册纱单价 -->
               <!--手册纱单价 -->
               <template slot="manualYarnUnitPrice" slot-scope="text, record, index">
               <template slot="manualYarnUnitPrice" slot-scope="text, record, index">
                 <a-form-model-item prop="manualYarnUnitPrice">
                 <a-form-model-item prop="manualYarnUnitPrice">
-                  <a-input style="width:100%" type="text" v-model="record.manualYarnUnitPrice" :disabled='manualYarnDisabled' @blur="dataDefault(record,record.manualYarnUnitPrice,'手册纱单价',4)" @change="changeManualYarn('Price',record.manualYarnUnitPrice)" />
+                  <a-input style="width:100%" type="text" v-model="record.manualYarnUnitPrice" :disabled='manualYarnDisabled' @change="changeManualYarn('Price',record.manualYarnUnitPrice)" />
                 </a-form-model-item>
                 </a-form-model-item>
               </template>
               </template>
 
 
@@ -709,15 +709,62 @@ export default {
                 this.$message.error('第'+(i+1)+'行和第'+(j+1)+'行数据相同,无法保存');
                 this.$message.error('第'+(i+1)+'行和第'+(j+1)+'行数据相同,无法保存');
                 return;
                 return;
               }
               }
+            
+            
             }
             }
           }
           }
+          for(var i=0; i<newObj.syShippingDetailsItemList.length; i++){
+             var rowData = newObj.syShippingDetailsItemList[i];
+             //报关单价不超过四位小数
+            if(!Number.isInteger(Number(rowData.customsDeclarationUnitPrice)) && rowData.customsDeclarationUnitPrice !== '' && rowData.customsDeclarationUnitPrice !== undefined){
+              console.log(rowData.customsDeclarationUnitPrice)
+              var position = rowData.customsDeclarationUnitPrice.toString().indexOf('.') + 1;   //小数点的位置
+              var digit = rowData.customsDeclarationUnitPrice.toString().length - position;  //小数的位数
+              if(digit > 4){
+                this.$message.error('第'+(i+1)+'行报关单价超过四位小数!');
+                return 
+              }
+             }    
+             
+             //发货数量必须是整数
+             if(!Number.isInteger(Number(rowData.shipmentQuantity)) && rowData.shipmentQuantity !== '' && rowData.shipmentQuantity !== undefined){
+                this.$message.error('第'+(i+1)+'行发货数量不为整数!');
+                return
+             }
+             //套装件数必须为整数
+              if(!Number.isInteger(Number(rowData.numberOfSets)) && rowData.numberOfSets !== '' && rowData.numberOfSets !== undefined){
+                this.$message.error('第'+(i+1)+'行套装件数不为整数!');
+                return
+             }
+
+             //工厂单价不超过四位小数
+              if(!Number.isInteger(Number(rowData.factoryUnitPrice)) && rowData.factoryUnitPrice !== '' && rowData.factoryUnitPrice !== undefined){
+              var position = rowData.factoryUnitPrice.toString().indexOf('.') + 1;   //小数点的位置
+              var digit = rowData.factoryUnitPrice.toString().length - position;  //小数的位数
+              if(digit > 4){
+                this.$message.error('第'+(i+1)+'行工厂单价超过四位小数!');
+                return 
+              }
+             }    
+
+             //手册纱单价不超过四位小数
+              if(!Number.isInteger(Number(rowData.manualYarnUnitPrice)) && rowData.manualYarnUnitPrice !== '' && rowData.manualYarnUnitPrice !== undefined){
+              console.log(rowData.factoryUnitPrice)
+              var position = rowData.manualYarnUnitPrice.toString().indexOf('.') + 1;   //小数点的位置
+              var digit = rowData.manualYarnUnitPrice.toString().length - position;  //小数的位数
+              if(digit > 4){
+                this.$message.error('手册纱单价超过四位小数!');
+                return 
+              }
+             }   
+          }
           //判断当是手册纱时,手册纱单价和手册纱占比是否为空
           //判断当是手册纱时,手册纱单价和手册纱占比是否为空
           for (var i=0; i<newObj.syShippingDetailsItemList.length; i++){
           for (var i=0; i<newObj.syShippingDetailsItemList.length; i++){
             var rowData = newObj.syShippingDetailsItemList[i];
             var rowData = newObj.syShippingDetailsItemList[i];
             if((rowData.manualYarnFlag === 1 && rowData.manualYarnUnitPrice === undefined) || (rowData.manualYarnFlag === 1 && rowData.manualYarnUnitPrice === '') ){
             if((rowData.manualYarnFlag === 1 && rowData.manualYarnUnitPrice === undefined) || (rowData.manualYarnFlag === 1 && rowData.manualYarnUnitPrice === '') ){
                this.$message.error('手册纱单价为必填项');
                this.$message.error('手册纱单价为必填项');
                return
                return
-            }else if((rowData.manualYarnFlag === 1 && rowData.manualYarnProportion === undefined) || (rowData.manualYarnFlag === 1 && rowData.manualYarnProportion === '')){
+             }else if((rowData.manualYarnFlag === 1 && rowData.manualYarnProportion === undefined) || (rowData.manualYarnFlag === 1 && rowData.manualYarnProportion === '') || (rowData.manualYarnFlag === 1 && rowData.manualYarnProportion === "0") || (rowData.manualYarnFlag === 1 && rowData.manualYarnProportion === 0)){
                this.$message.error('手册纱占比为必填项');
                this.$message.error('手册纱占比为必填项');
                return
                return
             }
             }
@@ -725,7 +772,6 @@ export default {
          
          
           addShipmentList(newObj).then(res => {
           addShipmentList(newObj).then(res => {
             if (res.success) {
             if (res.success) {
-              debugger
               this.$message.success('新增成功');
               this.$message.success('新增成功');
               this.close();
               this.close();
               // 清空信息
               // 清空信息
@@ -793,30 +839,6 @@ export default {
     //   this.syShippingDetailsItemList.push(addrow)
     //   this.syShippingDetailsItemList.push(addrow)
     // },
     // },
     // --------------------------------------
     // --------------------------------------
-
-
-    //输入框小数点位数限制
-    dataDefault(record,data,title,filed){
-      var position = data.indexOf('.') + 1;   //小数点的位置
-      var digit = data.length - position;  //小数的位数
-      if(digit > filed){
-        this.$message.error(title+'最多'+filed+'位小数!');  
-        if(title == '手册纱单价'){
-          this.syShippingDetailsItemList.map(item => {
-            item.manualYarnUnitPrice = ''
-            })
-            this.$forceUpdate()
-        }else if(title == '报关单价') {
-           record.customsDeclarationUnitPrice = ''
-        }else if(title == '发货数量') {
-          record.shipmentQuantity = ''
-        }else if(title == '套装件数'){
-          record.numberOfSets = ''
-        }else if(title == '工厂单价'){
-          record.factoryUnitPrice = ''
-        }
-       }
-    },
     // 操作 删除
     // 操作 删除
     handleDelete(index) {
     handleDelete(index) {
       return this.syShippingDetailsItemList.splice(index, 1)
       return this.syShippingDetailsItemList.splice(index, 1)

+ 61 - 29
src/views/shipment-details/editShipDetDrawer.vue

@@ -79,7 +79,7 @@
               <!-- 发货数量 :rules="rules.shipQuantity"-->
               <!-- 发货数量 :rules="rules.shipQuantity"-->
               <template slot="shipmentQuantity" slot-scope="text, record, index">
               <template slot="shipmentQuantity" slot-scope="text, record, index">
                 <a-form-model-item prop="shipmentQuantity">
                 <a-form-model-item prop="shipmentQuantity">
-                  <a-input style="width:100%" type="text" v-model="record.shipmentQuantity" @blur="dataDefault(record,record.shipmentQuantity,'发货数量',0)"  />
+                  <a-input style="width:100%" type="text" v-model="record.shipmentQuantity" />
                 </a-form-model-item>
                 </a-form-model-item>
               </template>
               </template>
 
 
@@ -112,20 +112,20 @@
               <!-- 报关单价 :rules="rules.customsDeclarationUnitPrice"-->
               <!-- 报关单价 :rules="rules.customsDeclarationUnitPrice"-->
               <template slot="customsDeclarationUnitPrice" slot-scope="text, record, index">
               <template slot="customsDeclarationUnitPrice" slot-scope="text, record, index">
                 <a-form-model-item prop="customsDeclarationUnitPrice">
                 <a-form-model-item prop="customsDeclarationUnitPrice">
-                  <a-input style="width:100%" type="text" v-model="record.customsDeclarationUnitPrice"  @blur="dataDefault(record,record.customsDeclarationUnitPrice,'报关单价',4)"/>
+                  <a-input style="width:100%" type="text" v-model="record.customsDeclarationUnitPrice"  />
                 </a-form-model-item>
                 </a-form-model-item>
               </template>
               </template>
               <!-- 套装件数 :rules="rules.numberOfSets"-->
               <!-- 套装件数 :rules="rules.numberOfSets"-->
               <template slot="numberOfSets" slot-scope="text, record, index">
               <template slot="numberOfSets" slot-scope="text, record, index">
                 <a-form-model-item prop="numberOfSets">
                 <a-form-model-item prop="numberOfSets">
-                  <a-input style="width:100%" type="text" v-model="record.numberOfSets" @blur="dataDefault(record,record.numberOfSets,'套装件数',0)"/>
+                  <a-input style="width:100%" type="text" v-model="record.numberOfSets" />
                 </a-form-model-item>
                 </a-form-model-item>
               </template>
               </template>
 
 
               <!-- 工厂单价 :rules="rules.factoryUnitPrice"-->
               <!-- 工厂单价 :rules="rules.factoryUnitPrice"-->
               <template slot="factoryUnitPrice" slot-scope="text, record, index">
               <template slot="factoryUnitPrice" slot-scope="text, record, index">
                 <a-form-model-item prop="factoryUnitPrice">
                 <a-form-model-item prop="factoryUnitPrice">
-                  <a-input style="width:100%" type="text" v-model="record.factoryUnitPrice"  @blur="dataDefault(record,record.factoryUnitPrice,'工厂单价',0)"/>
+                  <a-input style="width:100%" type="text" v-model="record.factoryUnitPrice" />
                 </a-form-model-item>
                 </a-form-model-item>
               </template>
               </template>
 
 
@@ -156,7 +156,7 @@
               <!--手册纱单价 -->
               <!--手册纱单价 -->
               <template slot="manualYarnUnitPrice" slot-scope="text, record, index">
               <template slot="manualYarnUnitPrice" slot-scope="text, record, index">
                 <a-form-model-item prop="manualYarnUnitPrice">
                 <a-form-model-item prop="manualYarnUnitPrice">
-                  <a-input style="width:100%" type="text" v-model="record.manualYarnUnitPrice"  :disabled='manualYarnDisabled' @blur="dataDefault(record,record.manualYarnUnitPrice,'手册纱单价',4)" @change="changeManualYarn('Price',record.manualYarnUnitPrice)"/>
+                  <a-input style="width:100%" type="text" v-model="record.manualYarnUnitPrice"  :disabled='manualYarnDisabled'  @change="changeManualYarn('Price',record.manualYarnUnitPrice)"/>
                 </a-form-model-item>
                 </a-form-model-item>
               </template>
               </template>
 
 
@@ -617,7 +617,62 @@ export default {
               }
               }
             }
             }
           }
           }
-
+          for(var i=0; i<this.editShipDet.syShippingDetailsItemList.length; i++){
+             var rowData = this.editShipDet.syShippingDetailsItemList[i];
+             //报关单价不超过四位小数
+            if(!Number.isInteger(Number(rowData.customsDeclarationUnitPrice)) && rowData.customsDeclarationUnitPrice !== '' && rowData.customsDeclarationUnitPrice !== undefined){
+              var position = rowData.customsDeclarationUnitPrice.toString().indexOf('.') + 1;   //小数点的位置
+              var digit = rowData.customsDeclarationUnitPrice.toString().length - position;  //小数的位数
+              if(digit > 4){
+                this.$message.error('第'+(i+1)+'行报关单价超过四位小数!');
+                return 
+              }
+             }    
+             
+             //发货数量必须是整数
+             if(!Number.isInteger(Number(rowData.shipmentQuantity)) && rowData.shipmentQuantity !== '' && rowData.shipmentQuantity !== undefined){
+                this.$message.error('第'+(i+1)+'行发货数量不为整数!');
+                return
+             }
+             //套装件数必须为整数
+              if(!Number.isInteger(Number(rowData.numberOfSets)) && rowData.numberOfSets !== '' && rowData.numberOfSets !== undefined){
+                this.$message.error('第'+(i+1)+'行套装件数不为整数!');
+                return
+             }
+
+             //工厂单价不超过四位小数
+              if(!Number.isInteger(Number(rowData.factoryUnitPrice)) && rowData.factoryUnitPrice !== '' && rowData.factoryUnitPrice !== undefined){
+              console.log(rowData.factoryUnitPrice)
+              var position = rowData.factoryUnitPrice.toString().indexOf('.') + 1;   //小数点的位置
+              var digit = rowData.factoryUnitPrice.toString().length - position;  //小数的位数
+              if(digit > 4){
+                this.$message.error('第'+(i+1)+'行工厂单价超过四位小数!');
+                return 
+              }
+             }    
+
+             //手册纱单价不超过四位小数
+              if(!Number.isInteger(Number(rowData.manualYarnUnitPrice)) && rowData.manualYarnUnitPrice !== '' && rowData.manualYarnUnitPrice !== undefined){
+              var position = rowData.manualYarnUnitPrice.toString().indexOf('.') + 1;   //小数点的位置
+              var digit = rowData.manualYarnUnitPrice.toString().length - position;  //小数的位数
+              if(digit > 4){
+                this.$message.error('手册纱单价超过四位小数!');
+                return 
+              }
+             }   
+          }
+          
+          //判断当是手册纱时,手册纱单价和手册纱占比是否为空
+          for (var i=0; i<this.editShipDet.syShippingDetailsItemList.length; i++){
+            var rowData = this.editShipDet.syShippingDetailsItemList[i];
+            if((rowData.manualYarnFlag === 1 && rowData.manualYarnUnitPrice === undefined) || (rowData.manualYarnFlag === 1 && rowData.manualYarnUnitPrice === '') ){
+               this.$message.error('手册纱单价为必填项');
+               return
+             }else if((rowData.manualYarnFlag === 1 && rowData.manualYarnProportion === undefined) || (rowData.manualYarnFlag === 1 && rowData.manualYarnProportion === '') || (rowData.manualYarnFlag === 1 && rowData.manualYarnProportion === "0") || (rowData.manualYarnFlag === 1 && rowData.manualYarnProportion === 0)){
+               this.$message.error('手册纱占比为必填项');
+               return
+            }
+          }
           editById(this.editShipDet).then(res => {
           editById(this.editShipDet).then(res => {
             if (res.success) {
             if (res.success) {
               this.$message.success('编辑成功');
               this.$message.success('编辑成功');
@@ -707,29 +762,6 @@ export default {
       this.$forceUpdate()
       this.$forceUpdate()
    },
    },
 
 
-    //输入框小数点位数限制
-    dataDefault(record,data,title,filed){
-      var position = data.indexOf('.') + 1;   //小数点的位置
-      var digit = data.length - position;  //小数的位数
-      if(digit > filed){
-        this.$message.error(title+'最多'+filed+'位小数!');  
-        if(title == '手册纱单价'){
-          this.syShippingDetailsItemList.map(item => {
-            item.manualYarnUnitPrice = ''
-            })
-            this.$forceUpdate()
-        }else if(title == '报关单价') {
-           record.customsDeclarationUnitPrice = ''
-        }else if(title == '发货数量') {
-          record.shipmentQuantity = ''
-        }else if(title == '套装件数'){
-          record.numberOfSets = ''
-        }else if(title == '工厂单价'){
-          record.factoryUnitPrice = ''
-        }
-       }
-    },
-
    //输入手册纱单价或者手册纱占比时触发
    //输入手册纱单价或者手册纱占比时触发
    changeManualYarn(data,val){
    changeManualYarn(data,val){
      console.log(this.syShippingDetailsItemList)
      console.log(this.syShippingDetailsItemList)