fix: header and footer floating image error #473

pr675
Hufe921 2 years ago
parent 169864f040
commit f14b8635c2

@ -1903,7 +1903,9 @@ export class Draw {
const floatPosition = floatPositionList[e]
const element = floatPosition.element
if (
pageNo === floatPosition.pageNo &&
(pageNo === floatPosition.pageNo ||
floatPosition.zone === EditorZone.HEADER ||
floatPosition.zone == EditorZone.FOOTER) &&
element.imgDisplay === imgDisplay &&
element.type === ElementType.IMAGE
) {
@ -2044,6 +2046,8 @@ export class Draw {
const isPagingMode = this.getIsPagingMode()
// 计算文档信息
if (isCompute) {
// 清空浮动元素位置信息
this.position.setFloatPositionList([])
if (isPagingMode) {
// 页眉信息
if (!header.disabled) {

@ -75,7 +75,8 @@ export class Footer {
startIndex: 0,
startX,
startY,
innerWidth
innerWidth,
zone: EditorZone.FOOTER
})
}

@ -72,7 +72,8 @@ export class Header {
startIndex: 0,
startX,
startY,
innerWidth
innerWidth,
zone: EditorZone.HEADER
})
}

@ -96,6 +96,10 @@ export class Position {
this.positionList = payload
}
public setFloatPositionList(payload: IFloatPosition[]) {
this.floatPositionList = payload
}
public computePageRowPosition(
payload: IComputePageRowPositionPayload
): IComputePageRowPositionResult {
@ -107,7 +111,8 @@ export class Position {
startY,
startRowIndex,
startIndex,
innerWidth
innerWidth,
zone
} = payload
const { scale, tdPadding } = this.options
let x = startX
@ -177,7 +182,8 @@ export class Position {
index: payload.index,
tdIndex: payload.tdIndex,
trIndex: payload.trIndex,
tdValueIndex: index
tdValueIndex: index,
zone
})
}
positionList.push(positionItem)
@ -205,7 +211,8 @@ export class Position {
isTable: true,
index: index - 1,
tdIndex: d,
trIndex: t
trIndex: t,
zone
})
// 垂直对齐方式
if (
@ -252,7 +259,6 @@ export class Position {
public computePositionList() {
// 置空原位置信息
this.positionList = []
this.floatPositionList = []
// 按每页行计算
const innerWidth = this.draw.getInnerWidth()
const pageRowList = this.draw.getPageRowList()
@ -550,6 +556,7 @@ export class Position {
payload: IGetFloatPositionByXYPayload
): ICurrentPosition | void {
const { x, y } = payload
const currentZone = this.draw.getZone().getZone()
for (let f = 0; f < this.floatPositionList.length; f++) {
const {
position,
@ -558,11 +565,13 @@ export class Position {
index,
trIndex,
tdIndex,
tdValueIndex
tdValueIndex,
zone: floatElementZone
} = this.floatPositionList[f]
if (
element.type === ElementType.IMAGE &&
element.imgDisplay === payload.imgDisplay
element.imgDisplay === payload.imgDisplay &&
(!floatElementZone || floatElementZone === currentZone)
) {
const imgFloatPosition = element.imgFloatPosition!
if (

@ -69,6 +69,7 @@ export interface IComputePageRowPositionPayload {
tdIndex?: number
trIndex?: number
tdValueIndex?: number
zone?: EditorZone
}
export interface IComputePageRowPositionResult {
@ -86,4 +87,5 @@ export interface IFloatPosition {
tdIndex?: number
trIndex?: number
tdValueIndex?: number
zone?: EditorZone
}

Loading…
Cancel
Save