fix: delete rowFlex when row position change #164

pr675
Hufe921 3 years ago
parent 1fa1d10fc9
commit 5c3ce57c24

@ -330,10 +330,30 @@ export class Draw {
return this.pageList
}
public getRowList(): IRow[] {
public getTableRowList(sourceElementList: IElement[]): IRow[] {
const positionContext = this.position.getPositionContext()
const { index, trIndex, tdIndex } = positionContext
return sourceElementList[index!].trList![trIndex!].tdList[tdIndex!].rowList!
}
public getOriginalRowList() {
const zoneManager = this.getZone()
if (zoneManager.isHeaderActive()) {
return this.header.getRowList()
}
if (zoneManager.isFooterActive()) {
return this.footer.getRowList()
}
return this.rowList
}
public getRowList(): IRow[] {
const positionContext = this.position.getPositionContext()
return positionContext.isTable
? this.getTableRowList(this.getOriginalElementList())
: this.getOriginalRowList()
}
public getPageRowList(): IRow[][] {
return this.pageRowList
}

@ -27,6 +27,10 @@ export class Footer {
this.positionList = []
}
public getRowList(): IRow[] {
return this.rowList
}
public setElementList(elementList: IElement[]) {
this.elementList = elementList
}

@ -27,6 +27,10 @@ export class Header {
this.positionList = []
}
public getRowList(): IRow[] {
return this.rowList
}
public setElementList(elementList: IElement[]) {
this.elementList = elementList
}

@ -38,7 +38,11 @@ export function input(data: string, host: CanvasEvent) {
restArg = { tdId, trId, tableId }
}
const elementList = draw.getElementList()
const element = elementList[endIndex]
const endElement = elementList[endIndex]
const endNextElement = elementList[endIndex + 1]
const copyElement = endElement.value === ZERO && endNextElement
? endNextElement
: endElement
const inputData: IElement[] = splitText(text).map(value => {
const newElement: IElement = {
value,
@ -46,15 +50,15 @@ export function input(data: string, host: CanvasEvent) {
}
const nextElement = elementList[endIndex + 1]
if (
element.type === TEXT
|| (!element.type && element.value !== ZERO)
|| (element.type === HYPERLINK && nextElement?.type === HYPERLINK)
|| (element.type === DATE && nextElement?.type === DATE)
|| (element.type === SUBSCRIPT && nextElement?.type === SUBSCRIPT)
|| (element.type === SUPERSCRIPT && nextElement?.type === SUPERSCRIPT)
copyElement.type === TEXT
|| (!copyElement.type && copyElement.value !== ZERO)
|| (copyElement.type === HYPERLINK && nextElement?.type === HYPERLINK)
|| (copyElement.type === DATE && nextElement?.type === DATE)
|| (copyElement.type === SUBSCRIPT && nextElement?.type === SUBSCRIPT)
|| (copyElement.type === SUPERSCRIPT && nextElement?.type === SUPERSCRIPT)
) {
EDITOR_ELEMENT_COPY_ATTR.forEach(attr => {
const value = element[attr] as never
const value = copyElement[attr] as never
if (value !== undefined) {
newElement[attr] = value
}

@ -35,6 +35,16 @@ export function keydown(evt: KeyboardEvent, host: CanvasEvent) {
evt.preventDefault()
return
}
// 清空当前行对齐方式
const startElement = elementList[startIndex]
if (isCollapsed && startElement.rowFlex && startElement.value === ZERO) {
const rowList = draw.getRowList()
const rowNo = positionList[startIndex].rowNo
const rowFlexElementList = rowList[rowNo].elementList
rowFlexElementList.forEach(element => {
delete element.rowFlex
})
}
if (!isCollapsed) {
elementList.splice(startIndex + 1, endIndex - startIndex)
} else {

Loading…
Cancel
Save