作者 朱兆平

体积计算

@@ -634,26 +634,37 @@ @@ -634,26 +634,37 @@
634 name: "inventroyrecord", 634 name: "inventroyrecord",
635 data() { 635 data() {
636 var checkInputArea = (rule, value, callback) => { 636 var checkInputArea = (rule, value, callback) => {
  637 + let err = {
  638 + name:'',
  639 + message:''
  640 + }
637 let _this = this 641 let _this = this
638 let tempVol = 0 642 let tempVol = 0
639 if (!value) { 643 if (!value) {
640 - return callback(new Error('体积信息必填')); 644 + err = new Error('体积信息必填')
  645 + return callback(err);
641 } 646 }
642 setTimeout(() => { 647 setTimeout(() => {
643 var lineStr = value.replace('\r').split('\n') 648 var lineStr = value.replace('\r').split('\n')
644 lineStr.forEach(((v,index) => { 649 lineStr.forEach(((v,index) => {
645 // eslint-disable-next-line no-useless-escape 650 // eslint-disable-next-line no-useless-escape
646 - var pattern = /^[0-9\.]+x[0-9\.]+x[0-9\.]+x[0-9\.]+$/; 651 + var pattern = /^[0-9\.]+[xX][0-9\.]+[xX][0-9\.]+[xX][0-9\.]+$/;
647 if(!pattern.test(v)){ 652 if(!pattern.test(v)){
648 - callback(new Error('行:'+index+'的值:'+v+'的体积格式输入错误,格式为1x1x1x1支持小数点')); 653 + err = new Error('行:'+index+'的值:'+v+'的体积格式输入错误,格式为1x1x1x1支持小数点')
  654 + return callback(err);
649 }else { 655 }else {
650 const volV = this.multiply(v) 656 const volV = this.multiply(v)
651 tempVol += volV 657 tempVol += volV
652 } 658 }
653 })) 659 }))
654 660
  661 + console.log(err.name + ' '+ err.message)
655 callback(); 662 callback();
  663 + if (err && err.message===''){
656 _this.addForm.volValue = (tempVol/1000000).toFixed(2) 664 _this.addForm.volValue = (tempVol/1000000).toFixed(2)
  665 + _this.volAreatextMerge(lineStr)
  666 + }
  667 +
657 }, 200); 668 }, 200);
658 }; 669 };
659 return { 670 return {
@@ -787,9 +798,12 @@ @@ -787,9 +798,12 @@
787 { required: true, message: '必须包含经办人信息', trigger: 'blur' } 798 { required: true, message: '必须包含经办人信息', trigger: 'blur' }
788 ], 799 ],
789 vol:[ 800 vol:[
790 - // { required: true, message: '体积信息必填', trigger: 'blur' },  
791 - { validator: checkInputArea, trigger: 'blur' }, 801 + { required: true, message: '体积信息必填', trigger: 'blur' },
  802 + { validator: checkInputArea, trigger: 'blur' }
792 // { pattern: /^[0-9\.x]+$/gm, message: '体积信息只能输入数字和(.)点符号与x小写字母' } 803 // { pattern: /^[0-9\.x]+$/gm, message: '体积信息只能输入数字和(.)点符号与x小写字母' }
  804 + ],
  805 + packge:[
  806 + { required: true, message: '包装信息必选', trigger: 'blur' }
793 ] 807 ]
794 }, 808 },
795 } 809 }
@@ -863,6 +877,7 @@ @@ -863,6 +877,7 @@
863 const wmslog = Object.assign({},this.addForm) 877 const wmslog = Object.assign({},this.addForm)
864 this.tableData.push(wmslog) 878 this.tableData.push(wmslog)
865 this.addForm.serialnumber = this.serialNumber() 879 this.addForm.serialnumber = this.serialNumber()
  880 + console.log(JSON.stringify(wmslog))
866 }) 881 })
867 }, 882 },
868 // 添加功能 883 // 添加功能
@@ -1019,7 +1034,7 @@ @@ -1019,7 +1034,7 @@
1019 _this.$message.success('获取特货代码记录,成功!') 1034 _this.$message.success('获取特货代码记录,成功!')
1020 }).catch(error => { 1035 }).catch(error => {
1021 // 关闭加载 1036 // 关闭加载
1022 - _this.$message.error(error.toString()) 1037 + _this.$message.error('获取特货代码记录,失败!'+error.toString())
1023 }).finally(()=>{ 1038 }).finally(()=>{
1024 ld.close() 1039 ld.close()
1025 }) 1040 })
@@ -1182,6 +1197,36 @@ @@ -1182,6 +1197,36 @@
1182 tempNum = tempNum*item 1197 tempNum = tempNum*item
1183 }) 1198 })
1184 return tempNum; 1199 return tempNum;
  1200 + },
  1201 + /**
  1202 + * 每行相同的体积数据进行合并
  1203 + */
  1204 + volAreatextMerge(strArr){
  1205 + if (strArr){
  1206 + let newArray = strArr.reduce((total, cur, index) => {
  1207 + let hasValue = total.findIndex(current => {
  1208 + //这里查找长x宽x高 一样的元素
  1209 + return current === cur
  1210 + })
  1211 + //没找到重复元素 入到临时数组
  1212 + hasValue === -1 && total.push(cur)
  1213 +
  1214 + let piece = 0
  1215 + //找到重复元素
  1216 + if(hasValue !== -1 ) {
  1217 + // total[hasValue] = total[hasValue].sl + cur.sl
  1218 + //累加重复元素的件数
  1219 + //1.获取需要累加的重复元素的件数
  1220 + piece += total[hasValue].split('x')[3]
  1221 + console.log("重复元素"+hasValue)
  1222 + console.log("重复元素总件数"+piece)
  1223 + }
  1224 + return total
  1225 + }, [])
  1226 + console.log(newArray)
  1227 + }else{
  1228 + this.$message.error("合并体积录入数据出错")
  1229 + }
1185 } 1230 }
1186 }, 1231 },
1187 mounted() { 1232 mounted() {