|
@@ -185,6 +185,7 @@ import { addAdvPac } from '@api/document/advance-packingList.js'
|
|
|
import { queryShippingDetails } from '@api/document/advance-packingList.js'
|
|
|
import { JVXETypes } from '@/components/jeecg/JVxeTable'
|
|
|
import { pushIfNotExist, randomNumber, randomUUID } from '@/utils/util'
|
|
|
+import { getDotConfig, getDotValidExpress } from '@/utils/myutil'
|
|
|
|
|
|
export default {
|
|
|
name: 'AddAdvancePacking', // 新增预装箱单
|
|
@@ -261,6 +262,7 @@ export default {
|
|
|
key: 'startingBoxNumber',
|
|
|
width: 120,
|
|
|
type: JVXETypes.input ,
|
|
|
+ validateRules:[{ required: true, message: '${title}不能为空' }],
|
|
|
},
|
|
|
|
|
|
{
|
|
@@ -268,6 +270,7 @@ export default {
|
|
|
key: 'endCaseNumber',
|
|
|
width: 140,
|
|
|
type: JVXETypes.input ,
|
|
|
+ validateRules:[{ required: true, message: '${title}不能为空' }],
|
|
|
},
|
|
|
|
|
|
{
|
|
@@ -292,7 +295,9 @@ export default {
|
|
|
title: '箱数',
|
|
|
key: 'boxNumber',
|
|
|
width: 140,
|
|
|
- type: JVXETypes.normal ,
|
|
|
+ type: JVXETypes.inputNumber ,
|
|
|
+ validateRules:[{ required: true, message: '${title}不能为空' },
|
|
|
+ {pattern: /^[1-9]\d*$/, message: '请输入零以上的正整数' }],
|
|
|
},
|
|
|
|
|
|
{
|
|
@@ -306,7 +311,8 @@ export default {
|
|
|
key: 'netWeight',
|
|
|
width: 90,
|
|
|
type: JVXETypes.inputNumber,
|
|
|
- validateRules: [{ required: true, message: '${title}不能为空' }]
|
|
|
+ validateRules: [{ required: true, message: '${title}不能为空' },
|
|
|
+ {pattern: /^\d+(\.\d{1,2})?$/, message: '小数点位数不能超过2位' }]
|
|
|
},
|
|
|
{
|
|
|
title: '总净重',
|
|
@@ -320,7 +326,8 @@ export default {
|
|
|
key: 'grossWeight',
|
|
|
width: 120,
|
|
|
type: JVXETypes.inputNumber,
|
|
|
- validateRules: [{ required: true, message: '${title}不能为空' }]
|
|
|
+ validateRules: [{ required: true, message: '${title}不能为空' },
|
|
|
+ {pattern: /^\d+(\.\d{1,2})?$/, message: '小数点位数不能超过2位' }]
|
|
|
},
|
|
|
{
|
|
|
title: '总毛重',
|
|
@@ -333,7 +340,8 @@ export default {
|
|
|
key: 'outerBoxLength',
|
|
|
width: 120,
|
|
|
type: JVXETypes.inputNumber,
|
|
|
- validateRules: [{ required: true, message: '${title}不能为空' }]
|
|
|
+ validateRules: [{ required: true, message: '${title}不能为空' },
|
|
|
+ {pattern: /^\d+(\.\d{1})?$/, message: '小数点位数不能超过1位' }]
|
|
|
},
|
|
|
|
|
|
{
|
|
@@ -341,13 +349,15 @@ export default {
|
|
|
key: 'outerBoxWidth',
|
|
|
width: 140,
|
|
|
type: JVXETypes.inputNumber,
|
|
|
- validateRules: [{ required: true, message: '${title}不能为空' }]
|
|
|
+ validateRules: [{ required: true, message: '${title}不能为空' },
|
|
|
+ {pattern: /^\d+(\.\d{1})?$/, message: '小数点位数不能超过1位' }]
|
|
|
},
|
|
|
{
|
|
|
title: '外箱高度',
|
|
|
key: 'outerBoxHeight',
|
|
|
type: JVXETypes.inputNumber ,
|
|
|
- validateRules: [{ required: true, message: '${title}不能为空' }],
|
|
|
+ validateRules: [{ required: true, message: '${title}不能为空' },
|
|
|
+ {pattern: /^\d+(\.\d{1})?$/, message: '小数点位数不能超过1位' }],
|
|
|
width: 140,
|
|
|
},
|
|
|
|
|
@@ -362,7 +372,9 @@ export default {
|
|
|
title: '净净重',
|
|
|
key: 'netWeightToo',
|
|
|
width: 120,
|
|
|
- type: JVXETypes.normal,
|
|
|
+ type: JVXETypes.inputNumber,
|
|
|
+ validateRules: [{ required: true, message: '${title}不能为空' },
|
|
|
+ {pattern: /^\d+(\.\d{1,2})?$/, message: '小数点位数不能超过2位' }],
|
|
|
},
|
|
|
{
|
|
|
title: '单价',
|
|
@@ -406,6 +418,7 @@ export default {
|
|
|
// name: [{ required: true, message: '品名不能为空', trigger: 'blur' }]
|
|
|
// },
|
|
|
sizeFields:[], // 尺码字段
|
|
|
+ dotConfig:{}, // 小数点配置
|
|
|
}
|
|
|
},
|
|
|
// 接收父组件查询方法
|
|
@@ -435,6 +448,9 @@ export default {
|
|
|
var newColums = this.columns.filter(item=>{
|
|
|
return item.isSize != true;
|
|
|
});
|
|
|
+ // 放在前面,有小数位数设置
|
|
|
+ this.setHeadData(val[0], res.result);
|
|
|
+
|
|
|
this.sizeFields = [];
|
|
|
var sizeTable = res.result.sizeTables;
|
|
|
if (sizeTable != null){
|
|
@@ -448,19 +464,22 @@ export default {
|
|
|
// 插入数据
|
|
|
for (var j=0;j<sizeTable.length;j++){
|
|
|
this.sizeFields.push('size-'+sizeTable[j].size);
|
|
|
- newColums.splice(i+1+j,0,{
|
|
|
+ var validExpress = getDotValidExpress(this.dotConfig.quantity);
|
|
|
+ var field = {
|
|
|
title: sizeTable[j].size,
|
|
|
key: 'size-'+sizeTable[j].size,
|
|
|
type: JVXETypes.inputNumber ,
|
|
|
width: 80,
|
|
|
- isSize:true
|
|
|
- });
|
|
|
+ isSize:true,
|
|
|
+ validateRules: [validExpress]
|
|
|
+ };
|
|
|
+
|
|
|
+ newColums.splice(i+1+j,0,field);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- this.columns = newColums;
|
|
|
+ this.columns = newColums;
|
|
|
|
|
|
- this.setHeadData(val[0], res.result);
|
|
|
var changedData = this.changeData(val[0], res.result);
|
|
|
this.addAdpacking.syPreAssembledPackingListItemList.push(changedData);
|
|
|
|
|
@@ -478,7 +497,7 @@ export default {
|
|
|
|
|
|
// 保存
|
|
|
saveAdd() {
|
|
|
- var newObj = JSON.parse(JSON.stringify(this.addAdpacking));
|
|
|
+ var newObj = this.addAdpacking;
|
|
|
if (this.sizeFields.length == 0){
|
|
|
this.$message.error('当前记录没有尺码字段,无法保存');
|
|
|
return;
|
|
@@ -487,8 +506,6 @@ export default {
|
|
|
this.$message.error('总箱数为0,无法保存');
|
|
|
return;
|
|
|
}
|
|
|
- // 尺码二维表分成多条记录
|
|
|
- var subList = [];
|
|
|
var sort = 0;
|
|
|
for (var i=0; i<newObj.syPreAssembledPackingListItemList.length;i++){
|
|
|
var tableRow = newObj.syPreAssembledPackingListItemList[i];
|
|
@@ -505,6 +522,10 @@ export default {
|
|
|
this.$message.error('第'+(i+1)+'行结束箱号未填,无法保存');
|
|
|
return;
|
|
|
}
|
|
|
+ if (tableRow.boxNumber == "" || tableRow.boxNumber == 0){
|
|
|
+ this.$message.error('第'+(i+1)+'行箱数,无法保存');
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (tableRow.netWeight == null || tableRow.netWeight == "" || tableRow.netWeight == undefined){
|
|
|
this.$message.error('第'+(i+1)+'行净重/箱未填,无法保存');
|
|
|
return;
|
|
@@ -529,25 +550,17 @@ export default {
|
|
|
this.$message.error('第'+(i+1)+'行外箱高度未填,无法保存');
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
- for (var j=0; j<this.sizeFields.length;j++){
|
|
|
- var sizeField = this.sizeFields[j];
|
|
|
- var rowData = JSON.parse(JSON.stringify(tableRow));
|
|
|
- rowData.size = sizeField.substr(5); // 'size-'+
|
|
|
- if (rowData[sizeField] == undefined || rowData[sizeField] == null || rowData[sizeField] == ""){
|
|
|
- continue;
|
|
|
- }
|
|
|
- rowData.boxNumber = rowData[sizeField]; // 箱数
|
|
|
- rowData.total = rowData.boxNumber*rowData.piecesBox; //件数
|
|
|
- rowData.totalNetWeight = rowData.boxNumber*rowData.netWeight; // 总净重
|
|
|
- rowData.totalGrossWeight = rowData.boxNumber*rowData.grossWeight; // 总毛重
|
|
|
- rowData.totalVolume = rowData.boxNumber*rowData.outerBoxLength*rowData.outerBoxWidth*rowData.outerBoxHeight; // 总体积
|
|
|
- rowData.totalPrice = rowData.total*rowData.unitPrice; // 总价
|
|
|
- rowData.sort = ++sort;
|
|
|
- subList.push(rowData);
|
|
|
+ if (tableRow.netWeightToo == null || tableRow.netWeightToo == "" || tableRow.netWeightToo == undefined){
|
|
|
+ this.$message.error('第'+(i+1)+'行净净重未填,无法保存');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (var j=0; j<tableRow.sizeTables.length; j++){
|
|
|
+ var sizeTable = tableRow.sizeTables[j];
|
|
|
+ var field = 'size-'+sizeTable.size;
|
|
|
+ tableRow.sizeTables[j].quantity = tableRow[field];
|
|
|
}
|
|
|
+ tableRow.sort = ++sort;
|
|
|
}
|
|
|
- newObj.syPreAssembledPackingListItemList = subList;
|
|
|
addAdvPac(newObj).then(res => {
|
|
|
if (res.success) {
|
|
|
this.$message.success('新增成功')
|
|
@@ -556,6 +569,8 @@ export default {
|
|
|
newObj = {syPreAssembledPackingListItemList:[]};
|
|
|
this.fatherList() // 调用父组件 查询方法
|
|
|
// this.msgFormSon = {} 清空子表信息
|
|
|
+ }else{
|
|
|
+ this.$message.error(res.message)
|
|
|
}
|
|
|
})
|
|
|
|
|
@@ -575,6 +590,8 @@ export default {
|
|
|
if (mData.syPreAssembledPackingListItemList != null && mData.syPreAssembledPackingListItemList.size>0){
|
|
|
itemData = mData.syPreAssembledPackingListItemList[0];
|
|
|
}
|
|
|
+ // 设置件数小数位数
|
|
|
+ this.dotConfig = getDotConfig(itemData.masterMetering);
|
|
|
|
|
|
this.addAdpacking.syDeclarationElementsId = mData.syDeclarationElementsId;
|
|
|
this.addAdpacking.itemNumber = referData.itemNumber;
|
|
@@ -612,7 +629,7 @@ export default {
|
|
|
endCaseNumber: '',
|
|
|
colour: itemData.colour,
|
|
|
withCode: itemData.withCode,
|
|
|
- piecesBox: itemData.piecesBox,
|
|
|
+ piecesBox: 0,
|
|
|
boxNumber: '',
|
|
|
total: '',
|
|
|
netWeight: '',
|
|
@@ -631,6 +648,7 @@ export default {
|
|
|
spurOrSubOrder:referData.purOrSubOrder,
|
|
|
factoryUnitPrice:referData.factoryUnitPrice,
|
|
|
customerAbbreviation:referData.customerAbbreviation,
|
|
|
+ sizeTables : itemData.sizeTables,
|
|
|
}
|
|
|
return addrow;
|
|
|
},
|
|
@@ -665,21 +683,21 @@ export default {
|
|
|
// 表格字段值变动时触发
|
|
|
handleValueChange(event) {
|
|
|
var allSizeSum = this.getAllSizeSum(event.row);
|
|
|
- event.row.boxNumber = allSizeSum;
|
|
|
- event.row.total = allSizeSum*event.row.piecesBox;
|
|
|
+ event.row.piecesBox = allSizeSum.toFixed(this.dotConfig.quantity);
|
|
|
+ event.row.total = (event.row.piecesBox*event.row.boxNumber).toFixed(this.dotConfig.quantity);
|
|
|
if (event.row.unitPrice != undefined && event.row.unitPrice != ""){
|
|
|
- event.row.totalPrice = event.row.unitPrice*event.row.total;
|
|
|
+ event.row.totalPrice = (event.row.unitPrice*event.row.total).toFixed(this.dotConfig.money);
|
|
|
}
|
|
|
if (event.row.netWeight != "" && event.row.netWeight != undefined){
|
|
|
- event.row.totalNetWeight = event.row.netWeight * allSizeSum;
|
|
|
+ event.row.totalNetWeight = event.row.netWeight * event.row.boxNumber;
|
|
|
}
|
|
|
if (event.row.grossWeight != "" && event.row.grossWeight != undefined){
|
|
|
- event.row.totalGrossWeight = event.row.grossWeight * allSizeSum;
|
|
|
+ event.row.totalGrossWeight = event.row.grossWeight * event.row.boxNumber;
|
|
|
}
|
|
|
if (event.row.outerBoxLength != "" && event.row.outerBoxLength != undefined &&
|
|
|
event.row.outerBoxWidth != "" && event.row.outerBoxWidth != undefined &&
|
|
|
event.row.outerBoxHeight != "" && event.row.outerBoxHeight != undefined){
|
|
|
- event.row.totalVolume = event.row.outerBoxLength * event.row.outerBoxWidth * event.row.outerBoxHeight * allSizeSum;
|
|
|
+ event.row.totalVolume = (event.row.outerBoxLength * event.row.outerBoxWidth * event.row.outerBoxHeight * event.row.boxNumber).toFixed(this.dotConfig.volume);
|
|
|
}
|
|
|
this.setHeadCalField();
|
|
|
},
|
|
@@ -704,19 +722,18 @@ export default {
|
|
|
|
|
|
for (var i=0; i<headData.syPreAssembledPackingListItemList.length; i++){
|
|
|
var rowData = headData.syPreAssembledPackingListItemList[i];
|
|
|
- var allSizeSum = this.getAllSizeSum(rowData);
|
|
|
- totalBoxes += allSizeSum;
|
|
|
+ totalBoxes += rowData.boxNumber;
|
|
|
if (rowData.totalNetWeight != undefined && rowData.totalNetWeight != ""){
|
|
|
- totalNetWeight += rowData.totalNetWeight;
|
|
|
+ totalNetWeight += rowData.totalNetWeight*1;
|
|
|
}
|
|
|
if (rowData.totalGrossWeight != undefined && rowData.totalGrossWeight != ""){
|
|
|
- totalGrossWeight += rowData.totalGrossWeight;
|
|
|
+ totalGrossWeight += rowData.totalGrossWeight*1;
|
|
|
}
|
|
|
if (rowData.totalVolume != undefined && rowData.totalVolume != ""){
|
|
|
- totalVolume += rowData.totalVolume;
|
|
|
+ totalVolume += rowData.totalVolume*1;
|
|
|
}
|
|
|
if (rowData.totalPrice != undefined && rowData.totalPrice != ""){
|
|
|
- totalPrice += rowData.totalPrice;
|
|
|
+ totalPrice += rowData.totalPrice*1;
|
|
|
}
|
|
|
}
|
|
|
headData.totalBoxes = totalBoxes;
|