diff --git a/wolai-frontend/src/components/editor/blocks/MindmapBlock.tsx b/wolai-frontend/src/components/editor/blocks/MindmapBlock.tsx index 741a4c7d..3042fa72 100644 --- a/wolai-frontend/src/components/editor/blocks/MindmapBlock.tsx +++ b/wolai-frontend/src/components/editor/blocks/MindmapBlock.tsx @@ -82,6 +82,26 @@ const applyToActiveNodes = ( (mindmap.renderer?.activeNodeList ?? []).forEach(handler); }; +// 确保存在激活节点后再执行命令,若无则自动选中根节点 +const ensureActiveBefore = (mindmap?: MindMapInstance | null) => { + const mm = mindmap ?? null; + if (!mm) { + window.alert("思维导图尚未初始化"); + return null; + } + const list = mm.renderer?.activeNodeList ?? []; + if (!list || list.length === 0) { + const root = mm.renderer?.root ?? mm.renderer?.renderTree?._node; + if (root) { + mm.execCommand?.("SET_NODE_ACTIVE", root, true); + } else { + window.alert("请先选中一个节点"); + return null; + } + } + return mm; +}; + const MindmapBlockView = ({ block, editor,