From 55a43e61bf6aded9f50644e86d3a1c276ee7a53a Mon Sep 17 00:00:00 2001 From: Hufe921 Date: Fri, 19 Jan 2024 22:16:24 +0800 Subject: [PATCH] fix: copy row properties on input #415 --- src/editor/core/draw/Draw.ts | 4 ++-- src/editor/core/event/handlers/keydown/enter.ts | 8 ++++++-- src/editor/dataset/constant/Element.ts | 6 +++++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/editor/core/draw/Draw.ts b/src/editor/core/draw/Draw.ts index 66a935b..ea3300f 100644 --- a/src/editor/core/draw/Draw.ts +++ b/src/editor/core/draw/Draw.ts @@ -1071,7 +1071,7 @@ export class Draw { ascent: 0, elementList: [], startIndex: 0, - rowFlex: elementList?.[1]?.rowFlex + rowFlex: elementList?.[0]?.rowFlex || elementList?.[1]?.rowFlex }) } // 列表位置 @@ -1449,7 +1449,7 @@ export class Draw { startIndex: i, elementList: [rowElement], ascent, - rowFlex: elementList[i + 1]?.rowFlex, + rowFlex: elementList[i]?.rowFlex || elementList[i + 1]?.rowFlex, isPageBreak: element.type === ElementType.PAGE_BREAK } // 控件缩进 diff --git a/src/editor/core/event/handlers/keydown/enter.ts b/src/editor/core/event/handlers/keydown/enter.ts index 33a2144..657f053 100644 --- a/src/editor/core/event/handlers/keydown/enter.ts +++ b/src/editor/core/event/handlers/keydown/enter.ts @@ -1,5 +1,8 @@ import { ZERO } from '../../../../dataset/constant/Common' -import { EDITOR_ELEMENT_STYLE_ATTR } from '../../../../dataset/constant/Element' +import { + EDITOR_ELEMENT_STYLE_ATTR, + EDITOR_ROW_ATTR +} from '../../../../dataset/constant/Element' import { IElement } from '../../../../interface/Element' import { formatElementContext, @@ -47,7 +50,8 @@ export function enter(evt: KeyboardEvent, host: CanvasEvent) { // 复制样式属性 const copyElement = getAnchorElement(elementList, endIndex) if (copyElement) { - EDITOR_ELEMENT_STYLE_ATTR.forEach(attr => { + const copyAttr = [...EDITOR_ELEMENT_STYLE_ATTR, ...EDITOR_ROW_ATTR] + copyAttr.forEach(attr => { const value = copyElement[attr] as never if (value !== undefined) { enterText[attr] = value diff --git a/src/editor/dataset/constant/Element.ts b/src/editor/dataset/constant/Element.ts index 9b40cf6..4336d1f 100644 --- a/src/editor/dataset/constant/Element.ts +++ b/src/editor/dataset/constant/Element.ts @@ -13,6 +13,8 @@ export const EDITOR_ELEMENT_STYLE_ATTR: Array = [ 'strikeout' ] +export const EDITOR_ROW_ATTR: Array = ['rowFlex', 'rowMargin'] + export const EDITOR_ELEMENT_COPY_ATTR: Array = [ 'type', 'font', @@ -28,7 +30,9 @@ export const EDITOR_ELEMENT_COPY_ATTR: Array = [ 'hyperlinkId', 'dateId', 'dateFormat', - 'groupIds' + 'groupIds', + 'rowFlex', + 'rowMargin' ] export const EDITOR_ELEMENT_ZIP_ATTR: Array = [