From e67cbceb7d4d1a047e9849a171045e85661ae71f Mon Sep 17 00:00:00 2001 From: roymondchen Date: Wed, 31 Aug 2022 15:01:21 +0800 Subject: [PATCH] =?UTF-8?q?fix(editor):=20=E6=B2=A1=E6=9C=89=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=97=B6=EF=BC=8C=E6=B7=BB=E5=8A=A0=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=87=BA=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor/src/Editor.vue | 12 +++++++++--- packages/editor/src/services/editor.ts | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/editor/src/Editor.vue b/packages/editor/src/Editor.vue index 95a1f5de..b27aa3d5 100644 --- a/packages/editor/src/Editor.vue +++ b/packages/editor/src/Editor.vue @@ -193,9 +193,15 @@ export default defineComponent({ emits: ['props-panel-mounted', 'update:modelValue'], setup(props, { emit }) { - editorService.on('root-change', () => { - const node = editorService.get('node') || props.defaultSelected; - node && editorService.select(node); + editorService.on('root-change', (value) => { + const node = editorService.get('node'); + const nodeId = node?.id || props.defaultSelected; + if (nodeId && node !== value) { + editorService.select(nodeId); + } else { + editorService.set('nodes', [value]); + } + emit('update:modelValue', toRaw(editorService.get('root'))); }); diff --git a/packages/editor/src/services/editor.ts b/packages/editor/src/services/editor.ts index c63a8812..72b77cc8 100644 --- a/packages/editor/src/services/editor.ts +++ b/packages/editor/src/services/editor.ts @@ -400,7 +400,7 @@ class Editor extends BaseService { await this.select(root.items[0]); stage?.select(root.items[0].id); } else { - this.set('node', null); + this.set('nodes', [root]); this.set('parent', null); this.set('page', null); this.set('stage', null);