getPInBoundData() {
axios.post('/InBoundLog/PageQuery', {
OrderRecordID: [this.outdes.OrderRecordID]
//PageIndex: '',
//PageSize: '25'
})
.then(res => {
if (res.data.code === 1) {
var that=this
//this.inBoundCount = res.data.data.TotalItemCount
this.PinBoundData = res.data.data.Data
var resdata = res.data.data.Data
var printsizepage=11
// 数据总条数 除以每页条数=组数和除不尽的余数,这个时候需要 组数(页数)加1,故,向上取证
// var allprintdataL 打印页数 其实也是自己造的数组有多少个项(2级子数组)
var allprintdataL = Math.ceil(resdata.length / printsizepage); //向上取整
this.allPrintData=[ ]
for (i = 0; i < allprintdataL; i++) {
that.allPrintData.push([])
resdata.map((item, index) => {
item.num=index+1
if (Math.floor(index / printsizepage) == i) {
that.allPrintData[i].push(item)
}
})
}
}
})
.catch(err => {
console.log(err)
})
},
代码说明:
这里说的源数据 指的是请求获取到的数据
this.allPrintData 是我造的那个复合数组
printsizepage 每页打印的固定条数
这是做一个出入库打印的项目,其中需要打印设置。打印设置的要求是获取到所有数据打印 打印分页,每页固定表头。
-
- 逻辑
于是我就给它造了一个复合数组的数据。然后把请求到数据push到复合数组中。
先看每页放多少条正好复合打印要求。然后根据这个 分多少页,最后一页肯定就是请求得到的源数据除以固定条数后的余数。
其中看多少页的时候需要向上取整。例如 :共115条数据,每页11条 我这个时候需要有11页才能放下这些数据。115/11=10余5 约等于 10.4545 向上取整后就是11
遍历源数据,造复合数组。
for循环根据页数,造2级空子数组,即给1级数组push几个空数组
在这个循环中,在进行遍历原数组,同时通过条件 给2级空数组push对应数据
这里需要说明的是,源数据条数除以固定条数的值要向下取整然后往对应的空子数组中push
例如 源数据索引为 0--10 的这11条数据,每条索引值除以固定条数 整数向都是零,这时应往索引值为0的2级子数组中push,当源数据索引为11-21时整除固定条数11 为1 点多,这时往索引为1的2级数组中push。
由于 当时需要添加一个序号列,所以每一个2级子数组,我都给她加了个num 属性,对应的值就是源数据的索引值加1
- 逻辑