From d01a28ce76203765f333548b30b4ec2954e68d4c Mon Sep 17 00:00:00 2001 From: roymondchen Date: Wed, 27 May 2026 17:17:43 +0800 Subject: [PATCH] =?UTF-8?q?fix(editor):=20=E4=BF=AE=E5=A4=8D=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E5=88=B0=E8=8F=9C=E5=8D=95=E5=AF=BC=E8=87=B4=E8=8A=82?= =?UTF-8?q?=E7=82=B9=E5=BC=95=E7=94=A8=E5=BC=82=E5=B8=B8=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor/src/utils/content-menu.ts | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/packages/editor/src/utils/content-menu.ts b/packages/editor/src/utils/content-menu.ts index 29357108..6653288e 100644 --- a/packages/editor/src/utils/content-menu.ts +++ b/packages/editor/src/utils/content-menu.ts @@ -1,7 +1,7 @@ import { computed, markRaw, type ShallowRef } from 'vue'; import { CopyDocument, Delete, DocumentCopy } from '@element-plus/icons-vue'; -import { Id, MContainer, NodeType } from '@tmagic/core'; +import { cloneDeep, Id, MContainer, NodeType } from '@tmagic/core'; import { calcValueByFontsize, isPage, isPageFragment } from '@tmagic/utils'; import ContentMenu from '@editor/components/ContentMenu.vue'; @@ -59,14 +59,19 @@ export const usePasteMenu = (menu?: ShallowRef }, }); -const moveTo = (id: Id, { editorService }: Services) => { +const moveTo = async (id: Id, { editorService }: Services) => { const nodes = editorService.get('nodes') || []; const parent = editorService.getNodeById(id) as MContainer; if (!parent) return; + const newNodes = cloneDeep(nodes); - editorService.add(nodes, parent); - editorService.remove(nodes); + await editorService.remove(nodes); + + await editorService.add(newNodes, parent, { + doNotSelect: true, + doNotSwitchPage: true, + }); }; export const useMoveToMenu = ({ editorService }: Services): MenuButton => {