作者 朱兆平

体积计算

... ... @@ -634,26 +634,37 @@
name: "inventroyrecord",
data() {
var checkInputArea = (rule, value, callback) => {
let err = {
name:'',
message:''
}
let _this = this
let tempVol = 0
if (!value) {
return callback(new Error('体积信息必填'));
err = new Error('体积信息必填')
return callback(err);
}
setTimeout(() => {
var lineStr = value.replace('\r').split('\n')
lineStr.forEach(((v,index) => {
// eslint-disable-next-line no-useless-escape
var pattern = /^[0-9\.]+x[0-9\.]+x[0-9\.]+x[0-9\.]+$/;
var pattern = /^[0-9\.]+[xX][0-9\.]+[xX][0-9\.]+[xX][0-9\.]+$/;
if(!pattern.test(v)){
callback(new Error('行:'+index+'的值:'+v+'的体积格式输入错误,格式为1x1x1x1支持小数点'));
err = new Error('行:'+index+'的值:'+v+'的体积格式输入错误,格式为1x1x1x1支持小数点')
return callback(err);
}else {
const volV = this.multiply(v)
tempVol += volV
}
}))
console.log(err.name + ' '+ err.message)
callback();
if (err && err.message===''){
_this.addForm.volValue = (tempVol/1000000).toFixed(2)
_this.volAreatextMerge(lineStr)
}
}, 200);
};
return {
... ... @@ -787,9 +798,12 @@
{ required: true, message: '必须包含经办人信息', trigger: 'blur' }
],
vol:[
// { required: true, message: '体积信息必填', trigger: 'blur' },
{ validator: checkInputArea, trigger: 'blur' },
{ required: true, message: '体积信息必填', trigger: 'blur' },
{ validator: checkInputArea, trigger: 'blur' }
// { pattern: /^[0-9\.x]+$/gm, message: '体积信息只能输入数字和(.)点符号与x小写字母' }
],
packge:[
{ required: true, message: '包装信息必选', trigger: 'blur' }
]
},
}
... ... @@ -863,6 +877,7 @@
const wmslog = Object.assign({},this.addForm)
this.tableData.push(wmslog)
this.addForm.serialnumber = this.serialNumber()
console.log(JSON.stringify(wmslog))
})
},
// 添加功能
... ... @@ -1019,7 +1034,7 @@
_this.$message.success('获取特货代码记录,成功!')
}).catch(error => {
// 关闭加载
_this.$message.error(error.toString())
_this.$message.error('获取特货代码记录,失败!'+error.toString())
}).finally(()=>{
ld.close()
})
... ... @@ -1182,6 +1197,36 @@
tempNum = tempNum*item
})
return tempNum;
},
/**
* 每行相同的体积数据进行合并
*/
volAreatextMerge(strArr){
if (strArr){
let newArray = strArr.reduce((total, cur, index) => {
let hasValue = total.findIndex(current => {
//这里查找长x宽x高 一样的元素
return current === cur
})
//没找到重复元素 入到临时数组
hasValue === -1 && total.push(cur)
let piece = 0
//找到重复元素
if(hasValue !== -1 ) {
// total[hasValue] = total[hasValue].sl + cur.sl
//累加重复元素的件数
//1.获取需要累加的重复元素的件数
piece += total[hasValue].split('x')[3]
console.log("重复元素"+hasValue)
console.log("重复元素总件数"+piece)
}
return total
}, [])
console.log(newArray)
}else{
this.$message.error("合并体积录入数据出错")
}
}
},
mounted() {
... ...