From 41a3b8c7c7469cf1246689b24084eb0e8b0eb8cf Mon Sep 17 00:00:00 2001 From: roymondchen Date: Tue, 19 Dec 2023 14:50:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(editor):=20=E5=8F=B3=E9=94=AE=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E5=85=BC=E5=AE=B9=E9=A1=B5=E9=9D=A2=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../editor/src/layouts/sidebar/layer/LayerMenu.vue | 4 ++-- .../src/layouts/workspace/viewer/ViewerMenu.vue | 14 +++++++------- packages/editor/src/utils/content-menu.ts | 4 ++-- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/editor/src/layouts/sidebar/layer/LayerMenu.vue b/packages/editor/src/layouts/sidebar/layer/LayerMenu.vue index 70a8f664..14a8a2ae 100644 --- a/packages/editor/src/layouts/sidebar/layer/LayerMenu.vue +++ b/packages/editor/src/layouts/sidebar/layer/LayerMenu.vue @@ -6,7 +6,7 @@ import { computed, inject, markRaw, ref } from 'vue'; import { Files, Plus } from '@element-plus/icons-vue'; -import { isPage } from '@tmagic/utils'; +import { isPage, isPageFragment } from '@tmagic/utils'; import ContentMenu from '@editor/components/ContentMenu.vue'; import FolderMinusIcon from '@editor/icons/FolderMinusIcon.vue'; @@ -96,7 +96,7 @@ const menuData = computed<(MenuButton | MenuComponent)[]>(() => type: 'button', text: '全部折叠', icon: FolderMinusIcon, - display: () => isPage(node.value), + display: () => isPage(node.value) || isPageFragment(node.value), handler: () => { emit('collapse-all'); }, diff --git a/packages/editor/src/layouts/workspace/viewer/ViewerMenu.vue b/packages/editor/src/layouts/workspace/viewer/ViewerMenu.vue index 5ff4770c..ae5ed5ba 100644 --- a/packages/editor/src/layouts/workspace/viewer/ViewerMenu.vue +++ b/packages/editor/src/layouts/workspace/viewer/ViewerMenu.vue @@ -7,7 +7,7 @@ import { computed, inject, markRaw, ref, watch } from 'vue'; import { Bottom, Top } from '@element-plus/icons-vue'; import { NodeType } from '@tmagic/schema'; -import { isPage } from '@tmagic/utils'; +import { isPage, isPageFragment } from '@tmagic/utils'; import ContentMenu from '@editor/components/ContentMenu.vue'; import CenterIcon from '@editor/icons/CenterIcon.vue'; @@ -60,14 +60,14 @@ const menuData = computed<(MenuButton | MenuComponent)[]>(() => direction: 'horizontal', display: () => { if (!node.value) return false; - return !isPage(node.value); + return !isPage(node.value) && !isPageFragment(node.value); }, }, { type: 'button', text: '上移一层', icon: markRaw(Top), - display: () => !isPage(node.value) && !props.isMultiSelect, + display: () => !isPage(node.value) && !isPageFragment(node.value) && !props.isMultiSelect, handler: () => { editorService?.moveLayer(1); }, @@ -76,7 +76,7 @@ const menuData = computed<(MenuButton | MenuComponent)[]>(() => type: 'button', text: '下移一层', icon: markRaw(Bottom), - display: () => !isPage(node.value) && !props.isMultiSelect, + display: () => !isPage(node.value) && !isPageFragment(node.value) && !props.isMultiSelect, handler: () => { editorService?.moveLayer(-1); }, @@ -85,7 +85,7 @@ const menuData = computed<(MenuButton | MenuComponent)[]>(() => type: 'button', text: '置顶', icon: markRaw(Top), - display: () => !isPage(node.value) && !props.isMultiSelect, + display: () => !isPage(node.value) && !isPageFragment(node.value) && !props.isMultiSelect, handler: () => { editorService?.moveLayer(LayerOffset.TOP); }, @@ -94,7 +94,7 @@ const menuData = computed<(MenuButton | MenuComponent)[]>(() => type: 'button', text: '置底', icon: markRaw(Bottom), - display: () => !isPage(node.value) && !props.isMultiSelect, + display: () => !isPage(node.value) && !isPageFragment(node.value) && !props.isMultiSelect, handler: () => { editorService?.moveLayer(LayerOffset.BOTTOM); }, @@ -103,7 +103,7 @@ const menuData = computed<(MenuButton | MenuComponent)[]>(() => { type: 'divider', direction: 'horizontal', - display: () => !isPage(node.value) && !props.isMultiSelect, + display: () => !isPage(node.value) && !isPageFragment(node.value) && !props.isMultiSelect, }, useDeleteMenu(), { diff --git a/packages/editor/src/utils/content-menu.ts b/packages/editor/src/utils/content-menu.ts index 2ae38154..786ce421 100644 --- a/packages/editor/src/utils/content-menu.ts +++ b/packages/editor/src/utils/content-menu.ts @@ -2,7 +2,7 @@ import { computed, markRaw, Ref } from 'vue'; import { CopyDocument, Delete, DocumentCopy } from '@element-plus/icons-vue'; import { Id, MContainer, NodeType } from '@tmagic/schema'; -import { isPage } from '@tmagic/utils'; +import { isPage, isPageFragment } from '@tmagic/utils'; import ContentMenu from '@editor/components/ContentMenu.vue'; import type { MenuButton, Services } from '@editor/type'; @@ -15,7 +15,7 @@ export const useDeleteMenu = (): MenuButton => ({ icon: Delete, display: (services) => { const node = services?.editorService?.get('node'); - return node?.type !== NodeType.ROOT && !isPage(node); + return node?.type !== NodeType.ROOT && !isPage(node) && !isPageFragment(node); }, handler: (services) => { const nodes = services?.editorService?.get('nodes');