fix: 修复表格跨页拆分后的内容无法框选的问题

npr765
yulei 2 years ago
parent 473b22a96d
commit 51b0edb2ef

@ -1339,6 +1339,14 @@ export class Draw {
const nextTr = nexTrList.shift()!
if (lastTr.id === nextTr.pagingOriginId) {
lastTr.height += nextTr.pagingOriginHeight || 0
// 更新id关联
lastTr.tdList.forEach(td => {
td.value.forEach(v => {
v.tdId = td.id
v.trId = lastTr.id
v.tableId = element.id
})
})
} else {
nextTr.height = nextTr.pagingOriginHeight || nextTr.height
element.trList!.push(nextTr)
@ -1547,7 +1555,8 @@ export class Draw {
// 如果tr可拆分根据截断位置将td中的内容拆分到新行中
// 如果tr不可拆分但当前位置td是跨行单元格同样需要拆分
if (allowSplitTr || splitTd.rowspan > 1) {
cloneTr[tdIndex]!.pagingOriginId = splitTd.id
cloneTr[tdIndex]!.pagingOriginId =
splitTd.pagingOriginId || splitTd.id
cloneTr[tdIndex]!.id = getUUID()
// 计算当前td在截断线之前的高度默认为被截断行在截断线之前的高度若td跨行则加上其他行高度
let splitTdPreHeight = splitTrPreHeight
@ -1629,7 +1638,7 @@ export class Draw {
const newTr = deepClone(trList[splitTrIndex])
newTr.tdList = cloneTr.filter(td => td !== undefined) as ITd[]
if (allowSplitTr) {
newTr.pagingOriginId = newTr.id
newTr.pagingOriginId = newTr.pagingOriginId || newTr.id
newTr.id = getUUID()
trList[splitTrIndex].height -= splitTrReduceHeight
trList[splitTrIndex].tdList.forEach(td => {
@ -1714,9 +1723,20 @@ export class Draw {
metrics.height -= totalOriginHeight * scale
metrics.boundingBoxDescent -= totalOriginHeight * scale
const cloneElement = deepClone(element)
cloneElement.id = getUUID()
cloneElement.pagingId = pagingId
cloneElement.pagingIndex = element.pagingIndex! + 1
this.tableParticle.computeRowColInfo(element)
// 更新拆分出来的新表格中的id关联信息
cloneTrList.forEach(tr => {
tr.tdList.forEach(td => {
td.value.forEach(v => {
v.tdId = td.id
v.trId = tr.id
v.tableId = cloneElement.id
})
})
})
// 处理分页重复表头
const repeatTrList = trList.filter(tr => tr.pagingRepeat)
if (repeatTrList.length) {
@ -1725,7 +1745,6 @@ export class Draw {
cloneTrList.unshift(...cloneRepeatTrList)
}
cloneElement.trList = cloneTrList
cloneElement.id = getUUID()
this.spliceElementList(elementList, i + 1, 0, cloneElement)
}
}

Loading…
Cancel
Save