fix: control element rendering boundary error in table #527

pr675
Hufe921 2 years ago
parent 3fdd4dedf4
commit f41cea2443

@ -1787,7 +1787,7 @@ export class CommandAdapt {
const { startIndex, endIndex } = this.range.getRange() const { startIndex, endIndex } = this.range.getRange()
if (!~startIndex && !~endIndex) return if (!~startIndex && !~endIndex) return
const { value, width, height } = payload const { value, width, height } = payload
this.draw.insertElementList([ this.insertElementList([
{ {
value, value,
width, width,

@ -286,6 +286,7 @@ export class Draw {
this.setEditorData(this.printModeData) this.setEditorData(this.printModeData)
this.printModeData = null this.printModeData = null
} }
this.range.clearRange()
this.mode = payload this.mode = payload
this.render({ this.render({
isSetCursor: false, isSetCursor: false,

@ -227,6 +227,8 @@ export function formatElementList(
const controlId = getUUID() const controlId = getUUID()
// 移除父节点 // 移除父节点
elementList.splice(i, 1) elementList.splice(i, 1)
// 控件上下文提取(压缩后的控件上下文无法提取)
const controlContext = pickObject(el, EDITOR_ELEMENT_CONTEXT_ATTR)
// 控件设置的默认样式(以前缀为基准) // 控件设置的默认样式(以前缀为基准)
const controlDefaultStyle = pickObject( const controlDefaultStyle = pickObject(
<IElement>(<unknown>el.control), <IElement>(<unknown>el.control),
@ -242,6 +244,7 @@ export function formatElementList(
for (let p = 0; p < prefixStrList.length; p++) { for (let p = 0; p < prefixStrList.length; p++) {
const value = prefixStrList[p] const value = prefixStrList[p]
elementList.splice(i, 0, { elementList.splice(i, 0, {
...controlContext,
...thePrePostfixArg, ...thePrePostfixArg,
controlId, controlId,
value, value,
@ -274,6 +277,7 @@ export function formatElementList(
const valueSet = valueSets[v] const valueSet = valueSets[v]
// checkbox组件 // checkbox组件
elementList.splice(i, 0, { elementList.splice(i, 0, {
...controlContext,
controlId, controlId,
value: '', value: '',
type: el.type, type: el.type,
@ -291,6 +295,7 @@ export function formatElementList(
const value = valueStrList[e] const value = valueStrList[e]
const isLastLetter = e === valueStrList.length - 1 const isLastLetter = e === valueStrList.length - 1
elementList.splice(i, 0, { elementList.splice(i, 0, {
...controlContext,
...controlDefaultStyle, ...controlDefaultStyle,
...valueStyleList[valueStyleIndex], ...valueStyleList[valueStyleIndex],
controlId, controlId,
@ -325,6 +330,7 @@ export function formatElementList(
const element = valueList[v] const element = valueList[v]
const value = element.value const value = element.value
elementList.splice(i, 0, { elementList.splice(i, 0, {
...controlContext,
...controlDefaultStyle, ...controlDefaultStyle,
...element, ...element,
controlId, controlId,
@ -346,6 +352,7 @@ export function formatElementList(
for (let p = 0; p < placeholderStrList.length; p++) { for (let p = 0; p < placeholderStrList.length; p++) {
const value = placeholderStrList[p] const value = placeholderStrList[p]
elementList.splice(i, 0, { elementList.splice(i, 0, {
...controlContext,
...thePlaceholderArgs, ...thePlaceholderArgs,
controlId, controlId,
value: value === '\n' ? ZERO : value, value: value === '\n' ? ZERO : value,
@ -361,6 +368,7 @@ export function formatElementList(
for (let p = 0; p < postfixStrList.length; p++) { for (let p = 0; p < postfixStrList.length; p++) {
const value = postfixStrList[p] const value = postfixStrList[p]
elementList.splice(i, 0, { elementList.splice(i, 0, {
...controlContext,
...thePrePostfixArg, ...thePrePostfixArg,
controlId, controlId,
value, value,

Loading…
Cancel
Save