diff --git a/src/editor/core/event/handlers/mouseup.ts b/src/editor/core/event/handlers/mouseup.ts index 03701b0..8d45e6c 100644 --- a/src/editor/core/event/handlers/mouseup.ts +++ b/src/editor/core/event/handlers/mouseup.ts @@ -1,9 +1,12 @@ -import { EDITOR_ELEMENT_STYLE_ATTR } from '../../../dataset/constant/Element' +import { + CONTROL_CONTEXT_ATTR, + EDITOR_ELEMENT_STYLE_ATTR +} from '../../../dataset/constant/Element' import { ImageDisplay } from '../../../dataset/enum/Common' import { ControlComponent, ControlType } from '../../../dataset/enum/Control' import { ElementType } from '../../../dataset/enum/Element' import { IElement } from '../../../interface/Element' -import { deepClone, getUUID } from '../../../utils' +import { deepClone, getUUID, omitObject } from '../../../utils' import { formatElementContext, formatElementList } from '../../../utils/element' import { CanvasEvent } from '../CanvasEvent' @@ -134,11 +137,7 @@ export function mouseup(evt: MouseEvent, host: CanvasEvent) { const editorOptions = draw.getOptions() const elementList = draw.getElementList() const replaceElementList = dragElementList.map(el => { - if ( - !el.type || - el.type === ElementType.TEXT || - el.control?.type === ControlType.TEXT - ) { + if (!el.type || el.type === ElementType.TEXT) { const newElement: IElement = { value: el.value } @@ -150,7 +149,8 @@ export function mouseup(evt: MouseEvent, host: CanvasEvent) { }) return newElement } else { - const newElement = deepClone(el) + // 移除控件上下文属性 + const newElement = omitObject(deepClone(el), CONTROL_CONTEXT_ATTR) formatElementList([newElement], { isHandleFirstElement: false, editorOptions diff --git a/src/editor/dataset/constant/Element.ts b/src/editor/dataset/constant/Element.ts index 3c340fd..cd4f070 100644 --- a/src/editor/dataset/constant/Element.ts +++ b/src/editor/dataset/constant/Element.ts @@ -90,6 +90,12 @@ export const LIST_CONTEXT_ATTR: Array = [ 'listStyle' ] +export const CONTROL_CONTEXT_ATTR: Array = [ + 'control', + 'controlId', + 'controlComponent' +] + export const EDITOR_ELEMENT_CONTEXT_ATTR: Array = [ ...TABLE_CONTEXT_ATTR, ...TITLE_CONTEXT_ATTR,