From c1fc6b8f94721d00661ed7983ea1b49290f06b7d Mon Sep 17 00:00:00 2001 From: roymondchen Date: Tue, 26 Jul 2022 16:26:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(editor):=20editorService.add=20=E7=9A=84ad?= =?UTF-8?q?dNode=E5=8F=82=E6=95=B0=E5=AF=B9=E8=B1=A1=E4=B8=AD=E5=8A=A0?= =?UTF-8?q?=E4=B8=8AinputEvent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor/src/layouts/workspace/Stage.vue | 2 ++ packages/editor/src/services/editor.ts | 3 ++- packages/editor/src/services/props.ts | 2 +- packages/editor/src/type.ts | 1 + 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/editor/src/layouts/workspace/Stage.vue b/packages/editor/src/layouts/workspace/Stage.vue index 1deaec85..b8fbd124 100644 --- a/packages/editor/src/layouts/workspace/Stage.vue +++ b/packages/editor/src/layouts/workspace/Stage.vue @@ -264,6 +264,8 @@ export default defineComponent({ left, }; + config.inputEvent = e; + services?.editorService.add(config, parent); } }, diff --git a/packages/editor/src/services/editor.ts b/packages/editor/src/services/editor.ts index 0f950222..51383c36 100644 --- a/packages/editor/src/services/editor.ts +++ b/packages/editor/src/services/editor.ts @@ -271,7 +271,8 @@ class Editor extends BaseService { * @returns 添加后的节点 */ public async add(addNode: AddMNode, parent?: MContainer | null): Promise { - const { type, ...config } = addNode; + // 加入inputEvent是为给业务扩展时可以获取到更多的信息,只有在使用拖拽添加组件时才有改对象 + const { type, inputEvent, ...config } = addNode; const curNode = this.get('node'); let parentNode: MContainer | undefined; diff --git a/packages/editor/src/services/props.ts b/packages/editor/src/services/props.ts index b5ab80ae..c66cc55e 100644 --- a/packages/editor/src/services/props.ts +++ b/packages/editor/src/services/props.ts @@ -88,7 +88,7 @@ class Props extends BaseService { * @param type 组件类型 * @returns 组件初始值 */ - public async getPropsValue(type: string, defaultValue: Record = {}) { + public async getPropsValue(type: string, { inputEvent, ...defaultValue }: Record = {}) { if (type === 'area') { const value = (await this.getPropsValue('button')) as MComponent; value.className = 'action-area'; diff --git a/packages/editor/src/type.ts b/packages/editor/src/type.ts index 00a2287a..50f0b074 100644 --- a/packages/editor/src/type.ts +++ b/packages/editor/src/type.ts @@ -125,6 +125,7 @@ export interface EditorNodeInfo { export interface AddMNode { type: string; name?: string; + inputEvent?: DragEvent; [key: string]: any; }