From f41cea244309e98ca880c74aaa4e0f3a2811ad66 Mon Sep 17 00:00:00 2001 From: Hufe921 Date: Sat, 27 Apr 2024 11:34:19 +0800 Subject: [PATCH] fix: control element rendering boundary error in table #527 --- src/editor/core/command/CommandAdapt.ts | 2 +- src/editor/core/draw/Draw.ts | 1 + src/editor/utils/element.ts | 8 ++++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/editor/core/command/CommandAdapt.ts b/src/editor/core/command/CommandAdapt.ts index 83d65ee..db434a3 100644 --- a/src/editor/core/command/CommandAdapt.ts +++ b/src/editor/core/command/CommandAdapt.ts @@ -1787,7 +1787,7 @@ export class CommandAdapt { const { startIndex, endIndex } = this.range.getRange() if (!~startIndex && !~endIndex) return const { value, width, height } = payload - this.draw.insertElementList([ + this.insertElementList([ { value, width, diff --git a/src/editor/core/draw/Draw.ts b/src/editor/core/draw/Draw.ts index d659e71..9f5589d 100644 --- a/src/editor/core/draw/Draw.ts +++ b/src/editor/core/draw/Draw.ts @@ -286,6 +286,7 @@ export class Draw { this.setEditorData(this.printModeData) this.printModeData = null } + this.range.clearRange() this.mode = payload this.render({ isSetCursor: false, diff --git a/src/editor/utils/element.ts b/src/editor/utils/element.ts index aa8d2fd..62f2294 100644 --- a/src/editor/utils/element.ts +++ b/src/editor/utils/element.ts @@ -227,6 +227,8 @@ export function formatElementList( const controlId = getUUID() // 移除父节点 elementList.splice(i, 1) + // 控件上下文提取(压缩后的控件上下文无法提取) + const controlContext = pickObject(el, EDITOR_ELEMENT_CONTEXT_ATTR) // 控件设置的默认样式(以前缀为基准) const controlDefaultStyle = pickObject( (el.control), @@ -242,6 +244,7 @@ export function formatElementList( for (let p = 0; p < prefixStrList.length; p++) { const value = prefixStrList[p] elementList.splice(i, 0, { + ...controlContext, ...thePrePostfixArg, controlId, value, @@ -274,6 +277,7 @@ export function formatElementList( const valueSet = valueSets[v] // checkbox组件 elementList.splice(i, 0, { + ...controlContext, controlId, value: '', type: el.type, @@ -291,6 +295,7 @@ export function formatElementList( const value = valueStrList[e] const isLastLetter = e === valueStrList.length - 1 elementList.splice(i, 0, { + ...controlContext, ...controlDefaultStyle, ...valueStyleList[valueStyleIndex], controlId, @@ -325,6 +330,7 @@ export function formatElementList( const element = valueList[v] const value = element.value elementList.splice(i, 0, { + ...controlContext, ...controlDefaultStyle, ...element, controlId, @@ -346,6 +352,7 @@ export function formatElementList( for (let p = 0; p < placeholderStrList.length; p++) { const value = placeholderStrList[p] elementList.splice(i, 0, { + ...controlContext, ...thePlaceholderArgs, controlId, value: value === '\n' ? ZERO : value, @@ -361,6 +368,7 @@ export function formatElementList( for (let p = 0; p < postfixStrList.length; p++) { const value = postfixStrList[p] elementList.splice(i, 0, { + ...controlContext, ...thePrePostfixArg, controlId, value,