From d334b697ae71ebe87286b07bdf6bf7e409ea751b Mon Sep 17 00:00:00 2001 From: roymondchen Date: Mon, 25 Jul 2022 21:57:12 +0800 Subject: [PATCH] =?UTF-8?q?fix(editor):=20=E6=8C=87=E5=AE=9A=E7=88=B6?= =?UTF-8?q?=E8=8A=82=E7=82=B9=E6=B7=BB=E5=8A=A0=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor/src/services/BaseService.ts | 13 ++++--------- packages/editor/src/services/editor.ts | 2 +- packages/editor/src/utils/editor.ts | 3 ++- 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/packages/editor/src/services/BaseService.ts b/packages/editor/src/services/BaseService.ts index e52d0993..8ee7fb45 100644 --- a/packages/editor/src/services/BaseService.ts +++ b/packages/editor/src/services/BaseService.ts @@ -36,18 +36,13 @@ const doAction = async ( let beforeArgs = args; for (const beforeMethod of scope.pluginOptionsList[beforeMethodName]) { - let beforeReturnValue = (await beforeMethod(...beforeArgs)) || []; + beforeArgs = (await beforeMethod(...beforeArgs)) || []; - if (isError(beforeReturnValue)) throw beforeReturnValue; + if (isError(beforeArgs)) throw beforeArgs; - if (!Array.isArray(beforeReturnValue)) { - beforeReturnValue = [beforeReturnValue]; + if (!Array.isArray(beforeArgs)) { + beforeArgs = [beforeArgs]; } - - beforeArgs = beforeArgs.map((v: any, index: number) => { - if (typeof beforeReturnValue[index] === 'undefined') return v; - return beforeReturnValue[index]; - }); } let returnValue: any = await fn(beforeArgs, sourceMethod.bind(scope)); diff --git a/packages/editor/src/services/editor.ts b/packages/editor/src/services/editor.ts index 0273716b..caeeae3d 100644 --- a/packages/editor/src/services/editor.ts +++ b/packages/editor/src/services/editor.ts @@ -303,7 +303,7 @@ class Editor extends BaseService { const stage = this.get('stage'); const root = this.get('root'); - await stage?.add({ config: cloneDeep(newNode), root: cloneDeep(root) }); + await stage?.add({ config: cloneDeep(newNode), parent: cloneDeep(parentNode), root: cloneDeep(root) }); if (layout === Layout.ABSOLUTE) { const fixedLeft = fixNodeLeft(newNode, parentNode, stage?.renderer.contentWindow?.document); diff --git a/packages/editor/src/utils/editor.ts b/packages/editor/src/utils/editor.ts index 8eb8228a..ea2a29b5 100644 --- a/packages/editor/src/utils/editor.ts +++ b/packages/editor/src/utils/editor.ts @@ -223,7 +223,8 @@ export const fixNodeLeft = (config: MNode, parent: MContainer, doc?: Document) = const el = doc.getElementById(`${config.id}`); const parentEl = doc.getElementById(`${parent.id}`); - if (el && parentEl && el.offsetWidth + config.style?.left > parentEl.offsetWidth) { + const left = Number(config.style?.left) || 0; + if (el && parentEl && el.offsetWidth + left > parentEl.offsetWidth) { return parentEl.offsetWidth - el.offsetWidth; }