fix: print error of control assistant components in table #311

pr675
Hufe921 2 years ago
parent aeefca34ca
commit 7fb0150635

@ -257,9 +257,15 @@ export class Draw {
main: this.elementList, main: this.elementList,
footer: this.footer.getElementList() footer: this.footer.getElementList()
} }
this.setEditorData( // 过滤控件辅助元素
this.control.filterAssistElement(deepClone(this.printModeData)) const clonePrintModeData = deepClone(this.printModeData)
const editorDataKeys: (keyof IEditorData)[] = ['header', 'main', 'footer']
editorDataKeys.forEach(key => {
clonePrintModeData[key] = this.control.filterAssistElement(
clonePrintModeData[key]
) )
})
this.setEditorData(clonePrintModeData)
} }
// 取消打印模式 // 取消打印模式
if (this.mode === EditorMode.PRINT && this.printModeData) { if (this.mode === EditorMode.PRINT && this.printModeData) {
@ -500,7 +506,9 @@ export class Draw {
public getTableElementList(sourceElementList: IElement[]): IElement[] { public getTableElementList(sourceElementList: IElement[]): IElement[] {
const positionContext = this.position.getPositionContext() const positionContext = this.position.getPositionContext()
const { index, trIndex, tdIndex } = positionContext const { index, trIndex, tdIndex } = positionContext
return sourceElementList[index!].trList![trIndex!].tdList[tdIndex!].value return (
sourceElementList[index!].trList?.[trIndex!].tdList[tdIndex!].value || []
)
} }
public getElementList(): IElement[] { public getElementList(): IElement[] {

@ -11,7 +11,6 @@ import {
ISetControlExtensionOption, ISetControlExtensionOption,
ISetControlValueOption ISetControlValueOption
} from '../../../interface/Control' } from '../../../interface/Control'
import { IEditorData } from '../../../interface/Editor'
import { IElement, IElementPosition } from '../../../interface/Element' import { IElement, IElementPosition } from '../../../interface/Element'
import { EventBusMap } from '../../../interface/EventBus' import { EventBusMap } from '../../../interface/EventBus'
import { IRange } from '../../../interface/Range' import { IRange } from '../../../interface/Range'
@ -57,12 +56,18 @@ export class Control {
} }
// 过滤控件辅助元素(前后缀、背景提示) // 过滤控件辅助元素(前后缀、背景提示)
public filterAssistElement( public filterAssistElement(elementList: IElement[]): IElement[] {
payload: Required<IEditorData> return elementList.filter(element => {
): Required<IEditorData> { if (element.type === ElementType.TABLE) {
const editorDataKeys: (keyof IEditorData)[] = ['header', 'main', 'footer'] const trList = element.trList!
editorDataKeys.forEach(key => { for (let r = 0; r < trList.length; r++) {
payload[key] = payload[key].filter(element => { const tr = trList[r]
for (let d = 0; d < tr.tdList.length; d++) {
const td = tr.tdList[d]
td.value = this.filterAssistElement(td.value)
}
}
}
if (element.type !== ElementType.CONTROL || element.control?.minWidth) { if (element.type !== ElementType.CONTROL || element.control?.minWidth) {
return true return true
} }
@ -72,8 +77,6 @@ export class Control {
element.controlComponent !== ControlComponent.PLACEHOLDER element.controlComponent !== ControlComponent.PLACEHOLDER
) )
}) })
})
return payload
} }
// 判断选区部分在控件边界外 // 判断选区部分在控件边界外

Loading…
Cancel
Save