fix: delete rowFlex when row position change #164
This commit is contained in:
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user