From 1660e941d7e1e1597725b2131885c0d14f358f65 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Mon, 26 Jun 2023 16:57:11 +0800 Subject: [PATCH] =?UTF-8?q?fix(editor):=20=E7=BB=84=E4=BB=B6=E6=A0=91?= =?UTF-8?q?=E5=8F=B3=E9=94=AE=E8=8F=9C=E5=8D=95=E6=94=AF=E6=8C=81=E5=A4=9A?= =?UTF-8?q?=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor/src/layouts/sidebar/LayerMenu.vue | 7 ++++--- packages/editor/src/layouts/sidebar/LayerPanel.vue | 6 +++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/editor/src/layouts/sidebar/LayerMenu.vue b/packages/editor/src/layouts/sidebar/LayerMenu.vue index b644245f..ed31ac5a 100644 --- a/packages/editor/src/layouts/sidebar/LayerMenu.vue +++ b/packages/editor/src/layouts/sidebar/LayerMenu.vue @@ -22,6 +22,7 @@ const props = defineProps<{ const services = inject('services'); const menu = ref>(); const node = computed(() => services?.editorService.get('node')); +const nodes = computed(() => services?.editorService.get('nodes')); const isRoot = computed(() => node.value?.type === NodeType.ROOT); const isPage = computed(() => node.value?.type === NodeType.PAGE); const componentList = computed(() => services?.componentListService.getList() || []); @@ -82,7 +83,7 @@ const menuData = computed<(MenuButton | MenuComponent)[]>(() => [ type: 'button', text: '新增', icon: markRaw(Plus), - display: () => node.value?.items, + display: () => node.value?.items && nodes.value?.length === 1, items: getSubMenuData.value, }, { @@ -91,7 +92,7 @@ const menuData = computed<(MenuButton | MenuComponent)[]>(() => [ icon: markRaw(CopyDocument), display: () => !isRoot.value, handler: () => { - node.value && services?.editorService.copy(node.value); + node.value && services?.editorService.copy(nodes.value || []); }, }, { @@ -100,7 +101,7 @@ const menuData = computed<(MenuButton | MenuComponent)[]>(() => [ icon: markRaw(Delete), display: () => !isRoot.value && !isPage.value, handler: () => { - node.value && services?.editorService.remove(node.value); + node.value && services?.editorService.remove(nodes.value || []); }, }, ...props.layerContentMenu, diff --git a/packages/editor/src/layouts/sidebar/LayerPanel.vue b/packages/editor/src/layouts/sidebar/LayerPanel.vue index 3b94699b..b1feaf79 100644 --- a/packages/editor/src/layouts/sidebar/LayerPanel.vue +++ b/packages/editor/src/layouts/sidebar/LayerPanel.vue @@ -350,7 +350,11 @@ const clickHandler = (data: MNode): void => { // 右键菜单 const contextmenu = async (event: MouseEvent, data: MNode): Promise => { event.preventDefault(); - await select(data); + + if (nodes.value.length < 2) { + await select(data); + } + menu.value?.show(event); };