// 监听节点激活事件

This commit is contained in:
KuroSago 2025-05-06 18:38:27 +08:00
parent 9f48000e83
commit a15bd11414
3 changed files with 23 additions and 2 deletions

View File

@ -6,10 +6,13 @@ import MindMap from "simple-mind-map";
import ExportPDF from 'simple-mind-map/src/plugins/ExportPDF'
import ExportXMind from 'simple-mind-map/src/plugins/ExportXMind'
import Export from 'simple-mind-map/src/plugins/Export'
import MindMapLayoutPro from 'simple-mind-map/src/plugins/MindMapLayoutPro'
export function usePlugins(MindMapConstructor: typeof MindMap) {
// 注册插件
MindMapConstructor.usePlugin(ExportPDF);
MindMapConstructor.usePlugin(ExportXMind);
MindMapConstructor.usePlugin(Export);
MindMapConstructor.usePlugin(MindMapLayoutPro)
}

View File

@ -1,14 +1,15 @@
import { defineStore } from "pinia";
import { ref } from "vue";
import { ref , shallowRef } from "vue";
import { importFile } from "../helpers/import";
import { exportFile } from "../helpers/export";
import { usePlugins } from "../helpers/usePlugin";
import { insertChildNode } from "../helpers/insertChildNode";
import { insertSiblingNode } from "../helpers/insertSiblingNode";
import type MindMapNode from "simple-mind-map/types/src/core/render/node/MindMapNode";
import MindMap from "simple-mind-map";
// 使用 defineStore 创建 store
export const useMindMapStore = defineStore(
"mindMapStore",
() => {
@ -16,12 +17,17 @@ export const useMindMapStore = defineStore(
const mindMapData = ref(null);
// 激活状态节点
const activeNodes = shallowRef<MindMapNode[]>([])
usePlugins(MindMap);
function initMindMap(container: HTMLElement) {
mindMapInstance = new MindMap({
el: container,
data : null,
layout: 'mindMap',
fit: false,
nodeTextEditZIndex: 1000,
nodeNoteTooltipZIndex: 1000,
@ -30,10 +36,18 @@ export const useMindMapStore = defineStore(
demonstrateConfig: {
openBlankMode: true
},
});
// 监听节点激活事件
mindMapInstance?.on('node_active', (_ : MindMapNode, activeNodeList : MindMapNode[]) => {
activeNodes.value = activeNodeList
})
}
// 因为避免使用响应对象
function getMindMapInstance (): MindMap | null {
return mindMapInstance;

View File

@ -22,4 +22,8 @@ declare module 'simple-mind-map/src/parse/markdown' {
import markdown from 'simple-mind-map/types/src/parse/markdown';
export default markdown;
}
declare module 'simple-mind-map/src/plugins/MindMapLayoutPro' {
import MindMapLayoutPro from 'simple-mind-map/types/src/plugins/MindMapLayoutPro';
export default MindMapLayoutPro;
}