feat: recursion format element context

pr675
Hufe921 3 years ago
parent 3b66b26c85
commit 9f84285763

@ -1,6 +1,7 @@
import { ElementType } from '../../../../dataset/enum/Element' import { ElementType } from '../../../../dataset/enum/Element'
import { IElement, IElementPosition } from '../../../../interface/Element' import { IElement, IElementPosition } from '../../../../interface/Element'
import { IRowElement } from '../../../../interface/Row' import { IRowElement } from '../../../../interface/Row'
import { formatElementContext } from '../../../../utils/element'
import { RangeManager } from '../../../range/RangeManager' import { RangeManager } from '../../../range/RangeManager'
import { Draw } from '../../Draw' import { Draw } from '../../Draw'
import { DatePicker } from './DatePicker' import { DatePicker } from './DatePicker'
@ -53,14 +54,16 @@ export class DateParticle {
this.draw.spliceElementList(elementList, leftIndex + 1, rightIndex - leftIndex) this.draw.spliceElementList(elementList, leftIndex + 1, rightIndex - leftIndex)
this.range.setRange(leftIndex, leftIndex) this.range.setRange(leftIndex, leftIndex)
// 插入新时间 // 插入新时间
this.draw.insertElementList([{ const dateElement: IElement = {
type: ElementType.DATE, type: ElementType.DATE,
value: '', value: '',
dateFormat: startElement.dateFormat, dateFormat: startElement.dateFormat,
valueList: [{ valueList: [{
value: date value: date
}] }]
}]) }
formatElementContext(elementList, [dateElement], leftIndex)
this.draw.insertElementList([dateElement])
} }
public getDateElementRange(): [number, number] | null { public getDateElementRange(): [number, number] | null {

@ -551,6 +551,9 @@ export function formatElementContext(sourceElementList: IElement[], formatElemen
if (!copyElement) return if (!copyElement) return
for (let e = 0; e < formatElementList.length; e++) { for (let e = 0; e < formatElementList.length; e++) {
const targetElement = formatElementList[e] const targetElement = formatElementList[e]
if (targetElement.valueList && targetElement.valueList.length) {
formatElementContext(sourceElementList, targetElement.valueList, anchorIndex)
}
for (let i = 0; i < EDITOR_ELEMENT_CONTEXT_ATTR.length; i++) { for (let i = 0; i < EDITOR_ELEMENT_CONTEXT_ATTR.length; i++) {
const attr = EDITOR_ELEMENT_CONTEXT_ATTR[i] const attr = EDITOR_ELEMENT_CONTEXT_ATTR[i]
const value = copyElement[attr] as never const value = copyElement[attr] as never

Loading…
Cancel
Save