From 9b9c9db683596958803b02e11cc055b2660127a0 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Wed, 24 Aug 2022 10:35:01 +0800 Subject: [PATCH] =?UTF-8?q?fix(editor):=20=E4=B8=8A=E7=A7=BB=E4=B8=80?= =?UTF-8?q?=E5=B1=82=E9=80=9A=E7=9F=A5runtime=E6=9B=B4=E6=96=B0=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E5=87=BA=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix #282 --- packages/editor/src/services/editor.ts | 8 ++++++-- packages/editor/tests/unit/services/editor.spec.ts | 2 ++ packages/editor/tests/unit/utils/editor.spec.ts | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/editor/src/services/editor.ts b/packages/editor/src/services/editor.ts index bd05d282..457511c3 100644 --- a/packages/editor/src/services/editor.ts +++ b/packages/editor/src/services/editor.ts @@ -620,7 +620,7 @@ class Editor extends BaseService { */ public async moveLayer(offset: number | LayerOffset): Promise { const parent = this.get('parent'); - const node = this.get('node'); + const node = this.get('node'); const brothers: MNode[] = parent?.items || []; const index = brothers.findIndex((item) => `${item.id}` === `${node?.id}`); @@ -632,11 +632,15 @@ class Editor extends BaseService { brothers.splice(index + parseInt(`${offset}`, 10), 0, brothers.splice(index, 1)[0]); } + const grandparent = this.getParentById(parent.id); this.get('stage')?.update({ config: cloneDeep(toRaw(parent)), - parentId: parent.id, + parentId: grandparent?.id, root: cloneDeep(this.get('root')), }); + + this.addModifiedNodeId(parent.id); + this.pushHistoryState(); } /** diff --git a/packages/editor/tests/unit/services/editor.spec.ts b/packages/editor/tests/unit/services/editor.spec.ts index 3957e69b..9ee8a4d0 100644 --- a/packages/editor/tests/unit/services/editor.spec.ts +++ b/packages/editor/tests/unit/services/editor.spec.ts @@ -23,6 +23,7 @@ import type { MApp, MContainer, MNode, MPage } from '@tmagic/schema'; import { NodeType } from '@tmagic/schema'; import editorService from '@editor/services/editor'; +import historyService from '@editor/services/history'; import storageService from '@editor/services/storage'; import { COPY_STORAGE_KEY } from '@editor/utils'; @@ -414,6 +415,7 @@ describe('undo redo', () => { beforeAll(() => editorService.set('root', cloneDeep(root))); test('正常', async () => { + historyService.reset(); // 设置当前编辑的组件 await editorService.select(NodeId.NODE_ID); const node = editorService.get('node'); diff --git a/packages/editor/tests/unit/utils/editor.spec.ts b/packages/editor/tests/unit/utils/editor.spec.ts index 4ae227ad..21d981e1 100644 --- a/packages/editor/tests/unit/utils/editor.spec.ts +++ b/packages/editor/tests/unit/utils/editor.spec.ts @@ -79,7 +79,7 @@ describe('isFixed', () => { type: 'text', id: 1, style: { - absulote: 'absulote', + position: 'absolute', }, }), ).toBeFalsy();