diff --git a/packages/editor/src/layouts/sidebar/LayerMenu.vue b/packages/editor/src/layouts/sidebar/LayerMenu.vue index 6585c974..4fc1823b 100644 --- a/packages/editor/src/layouts/sidebar/LayerMenu.vue +++ b/packages/editor/src/layouts/sidebar/LayerMenu.vue @@ -76,7 +76,7 @@ export default defineComponent({ { type: 'button', text: '新增', - display: () => node.value?.items?.length > 0, + display: () => node.value?.items, items: getSubMenuData.value, }, { diff --git a/packages/editor/src/layouts/sidebar/LayerPanel.vue b/packages/editor/src/layouts/sidebar/LayerPanel.vue index ec965c59..69d60578 100644 --- a/packages/editor/src/layouts/sidebar/LayerPanel.vue +++ b/packages/editor/src/layouts/sidebar/LayerPanel.vue @@ -193,6 +193,12 @@ export default defineComponent({ () => statusData.highlightNode.value?.id !== statusData.clickNode.value?.id && !clicked.value, ); + editorService?.on('remove', () => { + setTimeout(() => { + tree.value?.getNode(editorService.get('node').id)?.updateChildren(); + }, 0); + }); + return { tree, menu, diff --git a/packages/editor/src/services/editor.ts b/packages/editor/src/services/editor.ts index 8d6135cb..885154ad 100644 --- a/packages/editor/src/services/editor.ts +++ b/packages/editor/src/services/editor.ts @@ -191,6 +191,9 @@ class Editor extends BaseService { } else { historyService.empty(); } + + this.emit('select', node); + return node!; } @@ -291,6 +294,8 @@ class Editor extends BaseService { stage?.select(newNode.id); + this.emit('add', newNode); + return newNode; } @@ -331,6 +336,8 @@ class Editor extends BaseService { this.addModifiedNodeId(parent.id); this.pushHistoryState(); + this.emit('remove', node); + return node; } @@ -392,6 +399,8 @@ class Editor extends BaseService { this.addModifiedNodeId(newConfig.id); this.pushHistoryState(); + this.emit('update', newConfig); + return newConfig; }