查询显示空重箱冷箱以及危险箱:
//预配池
preData: {
handler (newVal, oldVal) {
let allData = newVal
let boxAmount = {
E20: 0,
E40: 0,
E45: 0,
F20: 0,
F40: 0,
F45: 0,
lc20: 0,
lc40: 0,
wxp20: 0,
wxp40: 0
}
allData.forEach(item => {
boxAmount.E20 += Number(item.E20)
boxAmount.E40 += Number(item.E40)
boxAmount.E45 += Number(item.E45)
boxAmount.F20 += Number(item.F20)
boxAmount.F40 += Number(item.F40)
boxAmount.F45 += Number(item.F45)
boxAmount.lc20 += Number(item.lc20)
boxAmount.lc40 += Number(item.lc40)
boxAmount.wxp20 += Number(item.wxp20)
boxAmount.wxp40 += Number(item.wxp40)
})
// 20的箱子数量算1, 40、45的箱子数量算2 (只计算: 空、重箱)
let TueCount = (boxAmount.E20 * 1 + boxAmount.E40 * 2 + boxAmount.E45 * 2) + (boxAmount.F20 * 1 + boxAmount.F40 * 2 + boxAmount.F45 * 2)
let FULL_TEU = ''
let EMPTY_TEU = ''
let DANGER_TEU = ''
let COLD_TEU = ''
for (let key in boxAmount) {
if (boxAmount[key] > 0) {
switch (key) {
case 'E20':
EMPTY_TEU = EMPTY_TEU + boxAmount[key] + 'x20;'
break
case 'E40':
EMPTY_TEU = EMPTY_TEU + boxAmount[key] + 'x40;'
break
case 'E45':
EMPTY_TEU = EMPTY_TEU + boxAmount[key] + 'x45;'
break
case 'F20':
FULL_TEU = FULL_TEU + boxAmount[key] + 'x20;'
break
case 'F40':
FULL_TEU = FULL_TEU + boxAmount[key] + 'x40;'
break
case 'F45':
FULL_TEU = FULL_TEU + boxAmount[key] + 'x45;'
break
case 'lc20':
COLD_TEU = COLD_TEU + boxAmount[key] + 'x20;'
break
case 'lc40':
COLD_TEU = COLD_TEU + boxAmount[key] + 'x40;'
break
case 'wxp20':
DANGER_TEU = DANGER_TEU + boxAmount[key] + 'x20;'
break
case 'wxp40':
DANGER_TEU = DANGER_TEU + boxAmount[key] + 'x40;'
break
}
}
}
this.Exsum.FULL_TEU = FULL_TEU
this.Exsum.EMPTY_TEU = EMPTY_TEU
this.Exsum.COLD_TEU = COLD_TEU
this.Exsum.DANGER_TEU = DANGER_TEU
this.Exsum.TueCount = TueCount
console.log(this.Exsum.TueCount,'1');
},
deep: true
}
//全选
selectArr: {
handler (newVal, oldVal) {
// 监听 tableData 时的逻辑部分
// let start = this.currentPage * this.pageDataNum
// let end = this.tableDataBack.length
// let allData = []
// if (start >= end) {
// allData = this.tableData
// } else {
// allData = this.tableData.concat(this.tableDataBack.slice(start, end))
// }
let boxAmount = {
E20: 0,
E40: 0,
E45: 0,
F20: 0,
F40: 0,
F45: 0,
lc20: 0,
lc40: 0,
wxp20: 0,
wxp40: 0
}
newVal.forEach(item => {
boxAmount.E20 += Number(item.E20)
boxAmount.E40 += Number(item.E40)
boxAmount.E45 += Number(item.E45)
boxAmount.F20 += Number(item.F20)
boxAmount.F40 += Number(item.F40)
boxAmount.F45 += Number(item.F45)
boxAmount.lc20 += Number(item.lc20)
boxAmount.lc40 += Number(item.lc40)
boxAmount.wxp20 += Number(item.wxp20)
boxAmount.wxp40 += Number(item.wxp40)
})
let FULL_TEU = ''
let EMPTY_TEU = ''
let DANGER_TEU = ''
let COLD_TEU = ''
for (let key in boxAmount) {
if (boxAmount[key] > 0) {
switch (key) {
case 'E20':
EMPTY_TEU = EMPTY_TEU + boxAmount[key] + 'x20;'
break
case 'E40':
EMPTY_TEU = EMPTY_TEU + boxAmount[key] + 'x40;'
break
case 'E45':
EMPTY_TEU = EMPTY_TEU + boxAmount[key] + 'x45;'
break
case 'F20':
FULL_TEU = FULL_TEU + boxAmount[key] + 'x20;'
break
case 'F40':
FULL_TEU = FULL_TEU + boxAmount[key] + 'x40;'
break
case 'F45':
FULL_TEU = FULL_TEU + boxAmount[key] + 'x45;'
break
case 'lc20':
COLD_TEU = COLD_TEU + boxAmount[key] + 'x20;'
break
case 'lc40':
COLD_TEU = COLD_TEU + boxAmount[key] + 'x40;'
break
case 'wxp20':
DANGER_TEU = DANGER_TEU + boxAmount[key] + 'x20;'
break
case 'wxp40':
DANGER_TEU = DANGER_TEU + boxAmount[key] + 'x40;'
break
}
}
}
this.sum.FULL_TEU = FULL_TEU
this.sum.EMPTY_TEU = EMPTY_TEU
this.sum.COLD_TEU = COLD_TEU
this.sum.DANGER_TEU = DANGER_TEU
},
deep: true
},
//预配池去除按钮
async deleteList () {
if (this.select.length <= 0) {
this.$message.info('请选择数据!')
return
}
let idArr = []
let BOOKIDs = []
this.select.forEach((item) => {
if (!item.isDaiPei && item.isreal) {
BOOKIDs.push(item.BOOKID)
}
})
if (BOOKIDs.length > 0) {
let res = await Api.GetImStowageIds({ ids: BOOKIDs })
if (res.data) {
res.data.forEach((item) => {
idArr.push(...item.m)
})
}
let params = {
Ids: idArr.map(el => el.id),
ProjectId: this.PCTID
}
let result = await Api.CancelContainer(params)
if (result.data.code === 0) {
this.$message.success('已保存提单取消预配成功!')
}
}
// 对选中返回待配池的数据 做处理
this.select.forEach((item, index)=>{
for (let i = this.tableData.length - 1; i >= 0 ; i--) {
if (this.tableData[i].BOOKNO === item.BOOKNO) {
let boxAmount = {
E20: Number(this.tableData[i].E20) + Number(this.select[index].E20),
E40: Number(this.tableData[i].E40) + Number(this.select[index].E40),
E45: Number(this.tableData[i].E45) + Number(this.select[index].E45),
F20: Number(this.tableData[i].F20) + Number(this.select[index].F20),
F40: Number(this.tableData[i].F40) + Number(this.select[index].F40),
F45: Number(this.tableData[i].F45) + Number(this.select[index].F45),
lc20: Number(this.tableData[i].lc20) + Number(this.select[index].lc20),
lc40: Number(this.tableData[i].lc40) + Number(this.select[index].lc40),
wxp20: Number(this.tableData[i].wxp20) + Number(this.select[index].wxp20),
wxp40: Number(this.tableData[i].wxp40) + Number(this.select[index].wxp40)
}
item.DOC_COUNT = this.getBoxAmountText(boxAmount)
item = Object.assign(item, boxAmount)
this.tableData.splice(i, 1)
}
}
this.preData.forEach((items,index)=>{
if(item.BILLID===items.BILLID){
item.checkedList = null
item.isreal = false
this.tableData.unshift(item)
this.preData.splice(index,1)
}
})
})
this.$refs.table2.clearSelection()
},
待配池拖拽到预配池
initSorttable1 () {
var that = this;
var el = document.querySelector(".advance .el-table__body tbody");
Sortable.create(el, {
sort: false,
handle: ".el-table__row", //拖动
animation: 100, //定义排序动画的时间
group: { name: "name", pull: true, put: true },
onAdd: function (evt) {
if(that.PCTID===''){
that.preData.forEach((item,index)=>{
if(item.isDaiPei===false && item.isreal===true){
// 根据preData的索引去删除原本存在preData里的数据
that.preData.splice(index, 1)
}
})
}
if (that.selectArr.length === 0) {
// 截取到订舱号得id作为唯一表示去进行拖拽
var evtTtem = evt.item.cells[2].innerHTML
var ss = evtTtem.split(">")[2];
var bb = ss.split("<")[0].trim()
let preSameIndex = that.preData.findIndex(el => el.BOOKNO === bb)
that.tableData.forEach((item, indexs) => {
if (item.BOOKNO === bb) {
if (preSameIndex > -1) {
let boxAmount = {
E20: Number(item.E20) + Number(that.preData[preSameIndex].E20),
E40: Number(item.E40) + Number(that.preData[preSameIndex].E40),
E45: Number(item.E45) + Number(that.preData[preSameIndex].E45),
F20: Number(item.F20) + Number(that.preData[preSameIndex].F20),
F40: Number(item.F40) + Number(that.preData[preSameIndex].F40),
F45: Number(item.F45) + Number(that.preData[preSameIndex].F45),
lc20: Number(item.lc20) + Number(that.preData[preSameIndex].lc20),
lc40: Number(item.lc40) + Number(that.preData[preSameIndex].lc40),
wxp20: Number(item.wxp20) + Number(that.preData[preSameIndex].wxp20),
wxp40: Number(item.wxp40) + Number(that.preData[preSameIndex].wxp40)
}
item.DOC_PRETEU = that.getBoxAmountText(boxAmount)
that.tableData[indexs] = Object.assign(that.tableData[indexs], boxAmount)
that.preData.splice(preSameIndex, 1)
}
that.tableData[indexs].isreal = true
that.preData.unshift(that.tableData[indexs]);
that.tableData.splice(indexs, 1);
}
});
} else {
if (that.selectArr.length === that.tableData.length) {
that.tableData = [];
} else {
that.selectArr.forEach((item) => {
var indexs = that.tableData.findIndex((res) => {
return item.BOOKID === res.BOOKID;
});
that.tableData.splice(indexs, 1);
})
}
that.selectArr.forEach((item, index)=>{
item.isreal = true
for (let i = that.preData.length - 1; i >= 0; i--) {
if (item.BOOKNO === that.preData[i].BOOKNO) {
let boxAmount = {
E20: Number(item.E20) + Number(that.preData[i].E20),
E40: Number(item.E40) + Number(that.preData[i].E40),
E45: Number(item.E45) + Number(that.preData[i].E45),
F20: Number(item.F20) + Number(that.preData[i].F20),
F40: Number(item.F40) + Number(that.preData[i].F40),
F45: Number(item.F45) + Number(that.preData[i].F45),
lc20: Number(item.lc20) + Number(that.preData[i].lc20),
lc40: Number(item.lc40) + Number(that.preData[i].lc40),
wxp20: Number(item.wxp20) + Number(that.preData[i].wxp20),
wxp45: Number(item.wxp45) + Number(that.preData[i].wxp45)
}
item.DOC_PRETEU = that.getBoxAmountText(boxAmount)
that.selectArr[index] = Object.assign(that.selectArr[index], boxAmount)
that.preData.splice(i, 1)
}
}
})
that.preData = [...that.selectArr, ...that.preData];
that.$forceUpdate();
that.$refs.table1.clearSelection();
that.selectArr = []
}
},
});
},
预配池拖拽到待配池
initSorttable () {
var that = this;
var el = document.querySelector(".WithPool .el-table__body tbody");
Sortable.create(el, {
sort: false,
handle: ".el-table__row",
animation: 100,
group: { name: "name", pull: true, put: true },
//从另外一个列表移动到本列表时触发
onAdd: function (evt) {
if (that.select.length === 0) {
//evt.newIndex 移入到新数组的下标
// 截取到订舱号得id作为唯一表示去进行拖拽
var evtTtem = evt.item.cells[2].innerHTML
var ss = evtTtem.split(">")[2];
var bb = ss.split("<")[0].trim()
let tableSameIndex = that.tableData.findIndex(item => item.BOOKNO === bb)
that.preData.forEach((item, indexs) => {
if (item.BOOKNO === bb) {
if (tableSameIndex > -1) {
let boxAmount = {
E20: Number(that.tableData[tableSameIndex].E20) + Number(item.E20),
E40: Number(that.tableData[tableSameIndex].E40) + Number(item.E40),
E45: Number(that.tableData[tableSameIndex].E45) + Number(item.E45),
F20: Number(that.tableData[tableSameIndex].F20) + Number(item.F20),
F40: Number(that.tableData[tableSameIndex].F40) + Number(item.F40),
F45: Number(that.tableData[tableSameIndex].F45) + Number(item.F45),
lc20: Number(that.tableData[tableSameIndex].lc20) + Number(item.lc20),
lc40: Number(that.tableData[tableSameIndex].lc40) + Number(item.lc40),
wxp20: Number(that.tableData[tableSameIndex].wxp20) + Number(item.wxp20),
wxp40: Number(that.tableData[tableSameIndex].wxp40) + Number(item.wxp40)
}
that.preData[indexs].DOC_COUNT = that.getBoxAmountText(boxAmount)
that.preData[indexs] = Object.assign(that.preData[indexs], boxAmount)
that.tableData.splice(tableSameIndex, 1)
}
that.preData[indexs].isreal = false
that.preData[indexs].checkedList = null
that.tableData.splice(0, 0, that.preData[indexs]);
that.preData.splice(indexs, 1);
}
});
} else {
if (that.select.length === that.preData.length) {
that.preData = [];
} else {
that.select.forEach((item) => {
var indexs = that.preData.findIndex((res) => {
return item.BOOKID === res.BOOKID;
});
that.preData.splice(indexs, 1);
});
}
that.select.forEach((item, index)=>{
item.isreal = false
item.checkedList = null
for (let i = that.tableData.length - 1; i >= 0; i--) {
if (that.tableData[i].BOOKNO === item.BOOKNO) {
let boxAmount = {
E20: Number(that.tableData[i].E20) + Number(item.E20),
E40: Number(that.tableData[i].E40) + Number(item.E40),
E45: Number(that.tableData[i].E45) + Number(item.E45),
F20: Number(that.tableData[i].F20) + Number(item.F20),
F40: Number(that.tableData[i].F40) + Number(item.F40),
F45: Number(that.tableData[i].F45) + Number(item.F45),
lc20: Number(that.tableData[i].lc20) + Number(item.lc20),
lc40: Number(that.tableData[i].lc40) + Number(item.lc40),
wxp20: Number(that.tableData[i].wxp20) + Number(item.wxp20),
wxp40: Number(that.tableData[i].wxp40) + Number(item.wxp40)
}
item.DOC_COUNT = that.getBoxAmountText(boxAmount)
item = Object.assign(item, boxAmount)
that.tableData.splice(i, 1)
}
}
})
that.tableData = [...that.select, ...that.tableData];
that.$forceUpdate();
that.$refs.table2.clearSelection();
that.select = []
}
},
});
},
展示效果图: