From 97fa34bbc68199bb4381a1a717ed0d2f98ab9899 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Sat, 2 Apr 2022 20:11:38 +0800 Subject: [PATCH] =?UTF-8?q?fix(editor):=20=E6=B7=BB=E5=8A=A0=E6=88=96?= =?UTF-8?q?=E8=80=85=E5=88=A0=E9=99=A4=E8=8A=82=E7=82=B9=E5=90=8E=EF=BC=8C?= =?UTF-8?q?=E9=80=89=E4=B8=AD=E7=8A=B6=E6=80=81=E6=B2=A1=E6=9C=89=E5=88=B7?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor/src/services/editor.ts | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/editor/src/services/editor.ts b/packages/editor/src/services/editor.ts index e20715a5..5b12b6e3 100644 --- a/packages/editor/src/services/editor.ts +++ b/packages/editor/src/services/editor.ts @@ -232,7 +232,9 @@ class Editor extends BaseService { parentNode?.items?.push(newNode); - await this.get('stage')?.add({ config: cloneDeep(newNode), root: cloneDeep(this.get('root')) }); + const stage = this.get('stage'); + + await stage?.add({ config: cloneDeep(newNode), root: cloneDeep(this.get('root')) }); await this.select(newNode); @@ -241,6 +243,8 @@ class Editor extends BaseService { this.pushHistoryState(); } + stage?.select(newNode.id); + return newNode; } @@ -265,12 +269,17 @@ class Editor extends BaseService { if (typeof index !== 'number' || index === -1) throw new Error('找不要删除的节点'); parent.items?.splice(index, 1); - this.get('stage')?.remove({ id: node.id, root: this.get('root') }); + const stage = this.get('stage'); + stage?.remove({ id: node.id, root: this.get('root') }); if (node.type === NodeType.PAGE) { - await this.select(root.items[0] || root); + if (root.items[0]) { + await this.select(root.items[0]); + stage.select(root.items[0].id); + } } else { await this.select(parent); + stage.select(parent.id); } this.addModifiedNodeId(parent.id); @@ -324,7 +333,7 @@ class Editor extends BaseService { parentNodeItems[index] = newConfig; - if (newConfig.id === this.get('node').id) { + if (`${newConfig.id}` === `${this.get('node').id}`) { this.set('node', newConfig); }