2023-04-25 10:00:40 +08:00

884 lines
30 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div>
<h1>构造函数</h1>
<h2>基本使用</h2>
<pre class="hljs"><code><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">id</span>=<span class="hljs-string">&quot;mindMapContainer&quot;</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span>
</code></pre>
<pre class="hljs"><code><span class="hljs-keyword">import</span> MindMap <span class="hljs-keyword">from</span> <span class="hljs-string">&quot;simple-mind-map&quot;</span>;
<span class="hljs-keyword">const</span> mindMap = <span class="hljs-keyword">new</span> MindMap({
<span class="hljs-attr">el</span>: <span class="hljs-built_in">document</span>.getElementById(<span class="hljs-string">&#x27;mindMapContainer&#x27;</span>),
<span class="hljs-attr">data</span>: {
<span class="hljs-string">&quot;data&quot;</span>: {
<span class="hljs-string">&quot;text&quot;</span>: <span class="hljs-string">&quot;根节点&quot;</span>
},
<span class="hljs-string">&quot;children&quot;</span>: []
}
});
</code></pre>
<h2>实例化选项</h2>
<table>
<thead>
<tr>
<th>字段名称</th>
<th>类型</th>
<th>默认值</th>
<th>描述</th>
<th>是否必填</th>
</tr>
</thead>
<tbody>
<tr>
<td>el</td>
<td>Element</td>
<td></td>
<td>容器元素必须为DOM元素</td>
<td></td>
</tr>
<tr>
<td>data</td>
<td>Object</td>
<td>{}</td>
<td>思维导图数据可参考<a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/example/exampleData.js">https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/example/exampleData.js</a></td>
<td></td>
</tr>
<tr>
<td>layout</td>
<td>String</td>
<td>logicalStructure</td>
<td>布局类型可选列表logicalStructure逻辑结构图mindMap思维导图catalogOrganization目录组织图organizationStructure组织结构图timelinev0.5.4+时间轴timeline2v0.5.4+上下交替型时间轴fishbonev0.5.4+鱼骨图</td>
<td></td>
</tr>
<tr>
<td>fishboneDegv0.5.4+</td>
<td>Number</td>
<td>45</td>
<td>设置鱼骨结构图的斜线角度</td>
<td></td>
</tr>
<tr>
<td>theme</td>
<td>String</td>
<td>default</td>
<td>主题可选列表default默认classic脑图经典minions小黄人pinkGrape粉红葡萄mint薄荷gold金色vipvitalityOrange活力橙greenLeaf绿叶dark2暗色2skyGreen天清绿classic2脑图经典2classic3脑图经典3classic4脑图经典4v0.2.0+classicGreen经典绿classicBlue经典蓝blueSky天空蓝brainImpairedPink脑残粉dark暗色earthYellow泥土黄freshGreen清新绿freshRed清新红romanticPurple浪漫紫simpleBlackv0.5.4+简约黑courseGreenv0.5.4+课程绿coffeev0.5.4+咖啡redSpiritv0.5.4+红色精神blackHumourv0.5.4+黑色幽默lateNightOfficev0.5.4+深夜办公室blackGoldv0.5.4+黑金</td>
<td></td>
</tr>
<tr>
<td>themeConfig</td>
<td>Object</td>
<td>{}</td>
<td>主题配置会和所选择的主题进行合并可用字段可参考<a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/src/themes/default.js">https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/src/themes/default.js</a></td>
<td></td>
</tr>
<tr>
<td>scaleRatio</td>
<td>Number</td>
<td>0.1</td>
<td>放大缩小的增量比例</td>
<td></td>
</tr>
<tr>
<td>maxTag</td>
<td>Number</td>
<td>5</td>
<td>节点里最多显示的标签数量多余的会被丢弃</td>
<td></td>
</tr>
<tr>
<td>exportPadding</td>
<td>Number</td>
<td>20</td>
<td>导出图片时的内边距</td>
<td></td>
</tr>
<tr>
<td>imgTextMargin</td>
<td>Number</td>
<td>5</td>
<td>节点里图片和文字的间距</td>
<td></td>
</tr>
<tr>
<td>textContentMargin</td>
<td>Number</td>
<td>2</td>
<td>节点里各种文字信息的间距如图标和文字的间距</td>
<td></td>
</tr>
<tr>
<td>selectTranslateStep</td>
<td>Number</td>
<td>3</td>
<td>多选节点时鼠标移动到边缘时的画布移动偏移量</td>
<td></td>
</tr>
<tr>
<td>selectTranslateLimit</td>
<td>Number</td>
<td>20</td>
<td>多选节点时鼠标移动距边缘多少距离时开始偏移</td>
<td></td>
</tr>
<tr>
<td>customNoteContentShowv0.1.6+</td>
<td>Object</td>
<td>null</td>
<td>自定义节点备注内容显示Object类型结构为{show: (noteContent, left, top) =&gt; {// 你的显示节点备注逻辑 }, hide: () =&gt; {// 你的隐藏节点备注逻辑 }}</td>
<td></td>
</tr>
<tr>
<td>readonlyv0.1.7+</td>
<td>Boolean</td>
<td>false</td>
<td>是否是只读模式</td>
<td></td>
</tr>
<tr>
<td>enableFreeDragv0.2.4+</td>
<td>Boolean</td>
<td>false</td>
<td>是否开启节点自由拖拽</td>
<td></td>
</tr>
<tr>
<td>watermarkConfigv0.2.4+</td>
<td>Object</td>
<td></td>
<td>水印配置详细配置请参考下方表格水印配置</td>
<td></td>
</tr>
<tr>
<td>textAutoWrapWidthv0.3.4+</td>
<td>Number</td>
<td>500</td>
<td>节点内每行文本达到该宽度后自动换行</td>
<td></td>
</tr>
<tr>
<td>customHandleMousewheelv0.4.3+</td>
<td>Function</td>
<td>null</td>
<td>自定义鼠标滚轮事件处理可以传一个函数回调参数为事件对象</td>
<td></td>
</tr>
<tr>
<td>mousewheelActionv0.4.3+</td>
<td>String</td>
<td>zoom</td>
<td>鼠标滚轮的行为<code>zoom</code>放大缩小<code>move</code>上下移动如果<code>customHandleMousewheel</code>传了自定义函数这个属性不生效</td>
<td></td>
</tr>
<tr>
<td>mousewheelMoveStepv0.4.3+</td>
<td>Number</td>
<td>100</td>
<td><code>mousewheelAction</code>设为<code>move</code>可以通过该属性控制鼠标滚动一下视图移动的步长单位<code>px</code></td>
<td></td>
</tr>
<tr>
<td>defaultInsertSecondLevelNodeTextv0.4.7+</td>
<td>String</td>
<td>二级节点</td>
<td>默认插入的二级节点的文字</td>
<td></td>
</tr>
<tr>
<td>defaultInsertBelowSecondLevelNodeTextv0.4.7+</td>
<td>String</td>
<td>分支主题</td>
<td>默认插入的二级以下节点的文字</td>
<td></td>
</tr>
<tr>
<td>expandBtnStylev0.5.0+</td>
<td>Object</td>
<td>{ color: '#808080', fill: '#fff' }</td>
<td>展开收起按钮的颜色</td>
<td></td>
</tr>
<tr>
<td>expandBtnIconv0.5.0+</td>
<td>Object</td>
<td>{ open: '', close: '' }</td>
<td>自定义展开收起按钮的图标可以传图标的svg字符串</td>
<td></td>
</tr>
<tr>
<td>enableShortcutOnlyWhenMouseInSvgv0.5.1+</td>
<td>Boolean</td>
<td>true</td>
<td>是否只有当鼠标在画布内才响应快捷键事件</td>
<td></td>
</tr>
<tr>
<td>enableNodeTransitionMovev0.5.1+</td>
<td>Boolean</td>
<td>true</td>
<td>是否开启节点动画过渡</td>
<td></td>
</tr>
<tr>
<td>nodeTransitionMoveDurationv0.5.1+</td>
<td>Number</td>
<td>300</td>
<td>如果开启节点动画过渡可以通过该属性设置过渡的时间单位ms</td>
<td></td>
</tr>
<tr>
<td>initRootNodePositionv0.5.3+</td>
<td>Array</td>
<td>null</td>
<td>初始根节点的位置可传一个数组默认为<code>['center', 'center']</code>代表根节点处于画布中心位置除了<code>center</code>关键词还可以设置<code>left</code><code>top</code><code>right</code><code>bottom</code>除了可以传关键词数组的每项还可以传递一个数字代表具体的像素可以传递一个百分比字符串比如<code>['40%', '60%']</code>代表水平位置在画布宽度的<code>40%</code>的位置垂直位置在画布高度的<code>60%</code>的位置</td>
<td></td>
</tr>
<tr>
<td>exportPaddingXv0.5.5+</td>
<td>Number</td>
<td>10</td>
<td>导出pngsvgpdf时的图形水平内边距</td>
<td></td>
</tr>
<tr>
<td>exportPaddingYv0.5.5+</td>
<td>Number</td>
<td>10</td>
<td>导出pngsvgpdf时的图形垂直内边距</td>
<td></td>
</tr>
<tr>
<td>nodeTextEditZIndexv0.5.5+</td>
<td>Number</td>
<td>3000</td>
<td>节点文本编辑框元素的z-index</td>
<td></td>
</tr>
<tr>
<td>nodeNoteTooltipZIndexv0.5.5+</td>
<td>Number</td>
<td>3000</td>
<td>节点备注浮层元素的z-index</td>
<td></td>
</tr>
<tr>
<td>isEndNodeTextEditOnClickOuterv0.5.5+</td>
<td>Boolean</td>
<td>true</td>
<td>是否在点击了画布外的区域时结束节点文本的编辑状态</td>
<td></td>
</tr>
<tr>
<td>maxHistoryCountv0.5.6+</td>
<td>Number</td>
<td>1000</td>
<td>最大历史记录数</td>
<td></td>
</tr>
<tr>
<td>alwaysShowExpandBtnv0.5.8+</td>
<td>Boolean</td>
<td>false</td>
<td>是否一直显示节点的展开收起按钮默认为鼠标移上去和激活时才显示</td>
<td></td>
</tr>
<tr>
<td>iconListv0.5.8+</td>
<td>Array</td>
<td>[]</td>
<td>扩展节点可插入的图标数组的每一项为一个对象对象详细结构请参考下方图标配置表格</td>
<td></td>
</tr>
</tbody>
</table>
<h3>水印配置</h3>
<table>
<thead>
<tr>
<th>字段名称</th>
<th>类型</th>
<th>默认值</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>text</td>
<td>String</td>
<td>''</td>
<td>水印文字如果为空字符串则不显示水印</td>
</tr>
<tr>
<td>lineSpacing</td>
<td>Number</td>
<td>100</td>
<td>水印每行之间的间距</td>
</tr>
<tr>
<td>textSpacing</td>
<td>Number</td>
<td>100</td>
<td>同一行水印之间的间距</td>
</tr>
<tr>
<td>angle</td>
<td>Number</td>
<td>30</td>
<td>水印的倾斜角度范围[0, 90]</td>
</tr>
<tr>
<td>textStyle</td>
<td>Object</td>
<td>{color: '#999', opacity: 0.5, fontSize: 14}</td>
<td>水印文字样式</td>
</tr>
</tbody>
</table>
<h3>图标配置</h3>
<table>
<thead>
<tr>
<th>字段名称</th>
<th>类型</th>
<th>默认值</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>name</td>
<td>String</td>
<td></td>
<td>图标分组的名称</td>
</tr>
<tr>
<td>type</td>
<td>String</td>
<td></td>
<td>图标分组的值</td>
</tr>
<tr>
<td>list</td>
<td>Array</td>
<td></td>
<td>分组下的图标列表数组的每一项为一个对象<code>{ name: '', icon: '' }</code><code>name</code>代表图标的名称<code>icon</code>代表图标可以是<code>svg</code>图标比如<code>&lt;svg ...&gt;&lt;path&gt;&lt;/path&gt;&lt;/svg&gt;</code><code>url</code><code>base64</code><code>data:image/png;base64,...</code></td>
</tr>
</tbody>
</table>
<h2>静态方法</h2>
<h3>defineTheme(name, config)</h3>
<blockquote>
<p>v0.2.23+</p>
</blockquote>
<p>定义新主题</p>
<p><code>name</code>新主题名称</p>
<p><code>config</code>主题数据</p>
<p><code>simple-mind-map</code>内置了众多主题另外你也可以注册新主题建议在实例化之前进行注册这样在实例化时可以直接使用新注册的主题使用示例</p>
<pre class="hljs"><code><span class="hljs-keyword">import</span> MindMap <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;simple-mind-map&#x27;</span>
<span class="hljs-comment">// 注册新主题</span>
MindMap.defineTheme(<span class="hljs-string">&#x27;主题名称&#x27;</span>, {})
<span class="hljs-comment">// 1.实例化时使用新注册的主题</span>
<span class="hljs-keyword">const</span> mindMap = <span class="hljs-keyword">new</span> MindMap({
<span class="hljs-attr">theme</span>: <span class="hljs-string">&#x27;主题名称&#x27;</span>
})
<span class="hljs-comment">// 2.动态切换新主题</span>
mindMap.setTheme(<span class="hljs-string">&#x27;主题名称&#x27;</span>)
</code></pre>
<p>主题的所有配置可以参考<a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/src/themes/default.js">默认主题</a><code>defineTheme</code>方法会把你传入的配置和默认配置做合并大部分主题其实需要自定义的部分不是很多一个典型的自定义主题配置可以参考<a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/src/themes/blueSky.js">blueSky</a></p>
<h3>usePlugin(plugin, opt = {})</h3>
<blockquote>
<p>v0.3.0+</p>
</blockquote>
<ul>
<li><code>opt</code>v0.4.0+插件参数如果某个插件支持自定义选项的话可以通过这个参数传入</li>
</ul>
<p>注册插件如果需要使用非核心的一些功能比如小地图水印等可以通过该方法进行注册可链式调用</p>
<p>注意插件需要在实例化<code>MindMap</code>前注册</p>
<h3>hasPlugin(plugin)</h3>
<blockquote>
<p>v0.4.0+</p>
</blockquote>
<p>获取是否注册了某个插件返回的是插件在注册插件列表里的索引<code>-1</code>则代表插件没有注册</p>
<h2>静态属性</h2>
<h3>pluginList</h3>
<blockquote>
<p>v0.3.0+</p>
</blockquote>
<p>当前注册的所有插件列表</p>
<h2>实例方法</h2>
<h3>getSvgData()</h3>
<blockquote>
<p>v0.3.0+</p>
</blockquote>
<p>获取<code>svg</code>数据返回一个对象详细结构如下</p>
<pre class="hljs"><code>{
svg, <span class="hljs-comment">// Element思维导图图形的整体svg元素包括svg画布容器、g实际的思维导图组</span>
svgHTML, <span class="hljs-comment">// Stringsvg字符串即html字符串可以直接渲染到你准备的小地图容器内</span>
<span class="hljs-attr">rect</span>: <span class="hljs-comment">// Object思维导图图形未缩放时的位置尺寸等信息</span>
origWidth, <span class="hljs-comment">// Number画布宽度</span>
origHeight, <span class="hljs-comment">// Number画布高度</span>
scaleX, <span class="hljs-comment">// Number思维导图图形的水平缩放值</span>
scaleY, <span class="hljs-comment">// Number思维导图图形的垂直缩放值</span>
}
</code></pre>
<h3>render(callback)</h3>
<ul>
<li><code>callback</code><code>v0.3.2+</code><code>Function</code>当重新渲染完成时调用</li>
</ul>
<p>触发整体渲染会进行节点复用性能较<code>reRender</code>会更好一点如果只是节点位置变化了可以调用该方法进行渲染</p>
<h3>reRender(callback)</h3>
<ul>
<li><code>callback</code><code>v0.3.2+</code><code>Function</code>当重新渲染完成时调用</li>
</ul>
<p>整体重新渲染会清空画布节点也会重新创建性能不好慎重使用</p>
<h3>resize()</h3>
<p>容器尺寸变化后需要调用该方法进行适应</p>
<h3>setMode(mode)</h3>
<blockquote>
<p>v0.1.7+</p>
</blockquote>
<p>切换模式为只读或编辑</p>
<p><code>mode</code>readonlyedit</p>
<h3>on(event, fn)</h3>
<p>监听事件事件列表</p>
<table>
<thead>
<tr>
<th>事件名称</th>
<th>描述</th>
<th>回调参数</th>
</tr>
</thead>
<tbody>
<tr>
<td>data_change</td>
<td>渲染树数据变化可以监听该方法获取最新数据</td>
<td>data当前渲染树数据</td>
</tr>
<tr>
<td>view_data_changev0.1.1+</td>
<td>视图变化数据比如拖动或缩放时会触发</td>
<td>data当前视图状态数据</td>
</tr>
<tr>
<td>back_forward</td>
<td>前进或回退</td>
<td>activeHistoryIndex当前在历史数据数组里的索引length当前历史数据数组的长度</td>
</tr>
<tr>
<td>draw_click</td>
<td><em>画布的单击事件</em></td>
<td>e事件对象</td>
</tr>
<tr>
<td>svg_mousedown</td>
<td>svg画布的鼠标按下事件</td>
<td>e事件对象</td>
</tr>
<tr>
<td>mousedown</td>
<td>el元素的鼠标按下事件</td>
<td>e事件对象thisEvent事件类实例</td>
</tr>
<tr>
<td>mousemove</td>
<td>el元素的鼠标移动事件</td>
<td>e事件对象thisEvent事件类实例</td>
</tr>
<tr>
<td>drag</td>
<td>如果是按住左键拖动的话会触发拖动事件</td>
<td>e事件对象thisEvent事件类实例</td>
</tr>
<tr>
<td>mouseup</td>
<td>el元素的鼠标松开事件</td>
<td>e事件对象thisEvent事件类实例</td>
</tr>
<tr>
<td>mousewheel</td>
<td>鼠标滚动事件</td>
<td>e事件对象dir向上up还是向下down滚动thisEvent事件类实例</td>
</tr>
<tr>
<td>contextmenu</td>
<td>svg画布的鼠标右键菜单事件</td>
<td>e事件对象</td>
</tr>
<tr>
<td>node_click</td>
<td>节点的单击事件</td>
<td>this节点实例e事件对象</td>
</tr>
<tr>
<td>node_mousedown</td>
<td>节点的鼠标按下事件</td>
<td>this节点实例e事件对象</td>
</tr>
<tr>
<td>node_mouseup</td>
<td>节点的鼠标松开事件</td>
<td>this节点实例e事件对象</td>
</tr>
<tr>
<td>node_dblclick</td>
<td>节点的双击事件</td>
<td>this节点实例e事件对象</td>
</tr>
<tr>
<td>node_contextmenu</td>
<td>节点的右键菜单事件</td>
<td>e事件对象this节点实例</td>
</tr>
<tr>
<td>node_mouseenterv0.4.1+</td>
<td>节点的鼠标移入事件</td>
<td>this节点实例e事件对象</td>
</tr>
<tr>
<td>node_mouseleavev0.4.1+</td>
<td>节点的鼠标移出事件</td>
<td>this节点实例e事件对象</td>
</tr>
<tr>
<td>before_node_active</td>
<td>节点激活前事件</td>
<td>this节点实例activeNodeList当前激活的所有节点列表</td>
</tr>
<tr>
<td>node_active</td>
<td>节点激活事件</td>
<td>this节点实例activeNodeList当前激活的所有节点列表</td>
</tr>
<tr>
<td>expand_btn_click</td>
<td>节点展开或收缩事件</td>
<td>this节点实例</td>
</tr>
<tr>
<td>before_show_text_edit</td>
<td>节点文本编辑框即将打开事件</td>
<td></td>
</tr>
<tr>
<td>hide_text_edit</td>
<td>节点文本编辑框关闭事件</td>
<td>textEditNode文本编辑框DOM节点activeNodeList当前激活的所有节点列表</td>
</tr>
<tr>
<td>scale</td>
<td>放大缩小事件</td>
<td>scale缩放比例</td>
</tr>
<tr>
<td>node_img_dblclickv0.2.15+</td>
<td>节点内图片的双击事件</td>
<td>this节点实例e事件对象</td>
</tr>
<tr>
<td>node_tree_render_endv0.2.16+</td>
<td>节点树渲染完毕事件</td>
<td></td>
</tr>
<tr>
<td>rich_text_selection_changev0.4.0+</td>
<td>当注册了<code>RichText</code>插件时可用当节点编辑时文本选区发生改变时触发</td>
<td>hasRange是否存在选区rectInfo选区的尺寸和位置信息formatInfo选区的文本格式化信息</td>
</tr>
<tr>
<td>transforming-dom-to-imagesv0.4.0+</td>
<td>当注册了<code>RichText</code>插件时可用<code>svg</code>中存在<code>DOM</code>节点时导出为图片时会将<code>DOM</code>节点转换为图片转换过程中会触发该事件可用通过该事件给用户提示告知目前转换到的节点</td>
<td>index当前转换到的节点索引len一共需要转换的节点数量</td>
</tr>
<tr>
<td>node_draggingv0.4.5+</td>
<td>当某个节点被拖拽时触发</td>
<td>node当前被拖拽的节点</td>
</tr>
<tr>
<td>node_dragendv0.4.5+</td>
<td>节点被拖拽结束时触发</td>
<td></td>
</tr>
<tr>
<td>associative_line_clickv0.4.5+</td>
<td>点击某条关联线时触发</td>
<td>path连接线节点clickPath不可见的点击线节点node起始节点toNode目标节点</td>
</tr>
<tr>
<td>svg_mouseenterv0.5.1+</td>
<td>鼠标移入svg画布时触发</td>
<td>e事件对象</td>
</tr>
<tr>
<td>svg_mouseleavev0.5.1+</td>
<td>鼠标移出svg画布时触发</td>
<td>e事件对象</td>
</tr>
</tbody>
</table>
<h3>emit(event, ...args)</h3>
<p>触发事件可以是上面表格里的事件也可以是自定义事件</p>
<h3>off(event, fn)</h3>
<p>解绑事件</p>
<h3>setTheme(theme)</h3>
<p>切换主题可选主题见上面的选项表格</p>
<h3>getTheme()</h3>
<p>获取当前主题</p>
<h3>setThemeConfig(config)</h3>
<p>设置主题配置<code>config</code>同上面选项表格里的选项<code>themeConfig</code></p>
<h3>getCustomThemeConfig()</h3>
<p>获取自定义主题配置</p>
<h3>getThemeConfig(prop)</h3>
<p>获取某个主题配置属性值</p>
<h3>getConfig(<em>prop</em>)</h3>
<blockquote>
<p>0.2.24+</p>
</blockquote>
<p><code>prop</code>获取指定配置的值不传则返回整个配置</p>
<p>获取配置<code>new MindMap(opt)</code><code>opt</code></p>
<h3>updateConfig(<em>opt</em> = {})</h3>
<blockquote>
<p>0.2.24+</p>
</blockquote>
<p><code>opt</code>要更新的配置</p>
<p>更新配置即更新<code>new MindMap(opt)</code><code>opt</code>可以只更新部分数据比如</p>
<pre class="hljs"><code>mindMap.updateConfig({
<span class="hljs-attr">enableFreeDrag</span>: <span class="hljs-literal">true</span><span class="hljs-comment">// 开启节点自由拖拽</span>
})
</code></pre>
<p>该方法只做更新配置的事情没有其他副作用比如触发画布重新渲染之类的</p>
<h3>getLayout()</h3>
<p>获取当前的布局结构</p>
<h3>setLayout(layout)</h3>
<p>设置布局结构可选值见上面选项表格的<code>layout</code>字段</p>
<h3>execCommand(name, ...args)</h3>
<p>执行命令每执行一个命令就会在历史堆栈里添加一条记录用于回退或前进所有命令如下</p>
<table>
<thead>
<tr>
<th>命令名称</th>
<th>描述</th>
<th>参数</th>
</tr>
</thead>
<tbody>
<tr>
<td>SELECT_ALL</td>
<td>全选</td>
<td></td>
</tr>
<tr>
<td>BACK</td>
<td>回退指定的步数</td>
<td>step要回退的步数默认为1</td>
</tr>
<tr>
<td>FORWARD</td>
<td>前进指定的步数</td>
<td>step要前进的步数默认为1</td>
</tr>
<tr>
<td>INSERT_NODE</td>
<td>插入同级节点操作节点为当前激活的节点或指定节点如果有多个激活节点只会对第一个有效</td>
<td>openEditv0.4.6+是否激活新插入的节点并进入编辑模式默认为<code>true</code> appointNodesv0.4.7+可选指定节点指定多个节点可以传一个数组 appointData可选指定新创建节点的数据比如{text: 'xxx', ...}详细结构可以参考<a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/example/exampleData.js">https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/example/exampleData.js</a></td>
</tr>
<tr>
<td>INSERT_CHILD_NODE</td>
<td>插入子节点操作节点为当前激活的节点或指定节点</td>
<td>openEditv0.4.6+是否激活新插入的节点并进入编辑模式默认为<code>true</code> appointNodesv0.4.7+可选指定节点指定多个节点可以传一个数组 appointData可选指定新创建节点的数据比如{text: 'xxx', ...}详细结构可以参考<a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/example/exampleData.js">https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/example/exampleData.js</a></td>
</tr>
<tr>
<td>UP_NODE</td>
<td>上移节点操作节点为当前激活的节点如果有多个激活节点只会对第一个有效对根节点或在列表里的第一个节点使用无效</td>
<td></td>
</tr>
<tr>
<td>DOWN_NODE</td>
<td>操作节点为当前激活的节点如果有多个激活节点只会对第一个有效对根节点或在列表里的最后一个节点使用无效</td>
<td></td>
</tr>
<tr>
<td>REMOVE_NODE</td>
<td>删除节点操作节点为当前激活的节点或指定节点</td>
<td>appointNodesv0.4.7+可选指定节点指定多个节点可以传一个数组</td>
</tr>
<tr>
<td>PASTE_NODE</td>
<td>粘贴节点到节点操作节点为当前激活的节点</td>
<td>data要粘贴的节点数据一般通过<code>renderer.copyNode()</code>方法和<code>renderer.cutNode()</code>方法获取</td>
</tr>
<tr>
<td>CUT_NODE</td>
<td>剪切节点操作节点为当前激活的节点如果有多个激活节点只会对第一个有效对根节点使用无效</td>
<td>callback(回调函数剪切的节点数据会通过调用该函数并通过参数返回)</td>
</tr>
<tr>
<td>SET_NODE_STYLE</td>
<td>修改节点样式</td>
<td>node要设置样式的节点prop样式属性value样式属性值isActive布尔值是否设置的是激活状态的样式</td>
</tr>
<tr>
<td>SET_NODE_ACTIVE</td>
<td>设置节点是否激活</td>
<td>node要设置的节点active布尔值是否激活</td>
</tr>
<tr>
<td>CLEAR_ACTIVE_NODE</td>
<td>清除当前已激活节点的激活状态操作节点为当前激活的节点</td>
<td></td>
</tr>
<tr>
<td>SET_NODE_EXPAND</td>
<td>设置节点是否展开</td>
<td>node要设置的节点expand布尔值是否展开</td>
</tr>
<tr>
<td>EXPAND_ALL</td>
<td>展开所有节点</td>
<td></td>
</tr>
<tr>
<td>UNEXPAND_ALL</td>
<td>收起所有节点</td>
<td></td>
</tr>
<tr>
<td>UNEXPAND_TO_LEVELv0.2.8+</td>
<td>展开到指定层级</td>
<td>level要展开到的层级123...</td>
</tr>
<tr>
<td>SET_NODE_DATA</td>
<td>更新节点数据即更新节点数据对象里<code>data</code>对象的数据</td>
<td>node要设置的节点data对象要更新的数据<code>{expand: true}</code></td>
</tr>
<tr>
<td>SET_NODE_TEXT</td>
<td>设置节点文本</td>
<td>node要设置的节点text要设置的文本字符串换行可以使用<code>\n</code>richTextv0.4.0+如果要设置的是富文本字符需要设为<code>true</code></td>
</tr>
<tr>
<td>SET_NODE_IMAGE</td>
<td>设置节点图片</td>
<td>node要设置的节点imgData对象图片信息结构为<code>{url, title, width, height}</code>图片的宽高必须要传</td>
</tr>
<tr>
<td>SET_NODE_ICON</td>
<td>设置节点图标</td>
<td>node要设置的节点icons数组预定义的图片名称组成的数组可用图标可在<a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/src/svg/icons.js">https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/src/svg/icons.js</a>文件里的<code>nodeIconList</code>列表里获取到,图标名称为<code>type_name</code>,如<code>['priority_1']</code></td>
</tr>
<tr>
<td>SET_NODE_HYPERLINK</td>
<td>设置节点超链接</td>
<td>node要设置的节点link超链接地址title超链接名称可选</td>
</tr>
<tr>
<td>SET_NODE_NOTE</td>
<td>设置节点备注</td>
<td>node要设置的节点note备注文字</td>
</tr>
<tr>
<td>SET_NODE_TAG</td>
<td>设置节点标签</td>
<td>node要设置的节点tag字符串数组内置颜色信息可在<a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/src/utils/constant.js">https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/src/utils/constant.js</a>里获取到)</td>
</tr>
<tr>
<td>INSERT_AFTERv0.1.5+</td>
<td>将节点移动到另一个节点的后面</td>
<td>node要移动的节点 exist目标节点</td>
</tr>
<tr>
<td>INSERT_BEFOREv0.1.5+</td>
<td>将节点移动到另一个节点的前面</td>
<td>node要移动的节点 exist目标节点</td>
</tr>
<tr>
<td>MOVE_NODE_TOv0.1.5+</td>
<td>移动一个节点作为另一个节点的子节点</td>
<td>node要移动的节点 toNode目标节点</td>
</tr>
<tr>
<td>ADD_GENERALIZATIONv0.2.0+</td>
<td>添加节点概要</td>
<td>data概要的数据对象格式节点的数字段都支持默认为{text: '概要'}</td>
</tr>
<tr>
<td>REMOVE_GENERALIZATIONv0.2.0+</td>
<td>删除节点概要</td>
<td></td>
</tr>
<tr>
<td>SET_NODE_CUSTOM_POSITIONv0.2.0+</td>
<td>设置节点自定义位置</td>
<td>node要设置的节点 left自定义的x坐标默认为undefined top自定义的y坐标默认为undefined</td>
</tr>
<tr>
<td>RESET_LAYOUTv0.2.0+</td>
<td>一键整理布局</td>
<td></td>
</tr>
<tr>
<td>SET_NODE_SHAPEv0.2.4+</td>
<td>设置节点形状</td>
<td>node要设置的节点shape形状全部形状https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/src/Shape.js</td>
</tr>
</tbody>
</table>
<h3>setData(data)</h3>
<p>动态设置思维导图数据纯节点数据</p>
<p><code>data</code>思维导图结构数据</p>
<h3>setFullData(<em>data</em>)</h3>
<blockquote>
<p>v0.2.7+</p>
</blockquote>
<p>动态设置思维导图数据包括节点数据布局主题视图</p>
<p><code>data</code>完整数据结构可参考<a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/example/exportFullData.json">exportFullData</a></p>
<h3>getData(withConfig)</h3>
<blockquote>
<p>v0.2.9+</p>
</blockquote>
<p>获取思维导图数据</p>
<p><code>withConfig</code><code>Boolean</code>默认为<code>false</code>即获取的数据只包括节点树如果传<code>true</code>则会包含主题布局视图等数据</p>
<h3>export(type, isDownload, fileName)</h3>
<blockquote>
<p>需要先注册<code>Export</code>插件</p>
</blockquote>
<p>导出</p>
<p><code>type</code>要导出的类型可选值pngsvgjsonpdfv0.2.1+smm本质也是json</p>
<p><code>isDownload</code>是否需要直接触发下载布尔值默认为<code>false</code></p>
<p><code>fileName</code>v0.1.6+导出文件的名称默认为<code>思维导图</code></p>
<p>如果是导出为<code>png</code>那么可以传递第四个参数</p>
<p><code>transparent</code>v0.5.7+, <code>Boolean</code>默认为<code>false</code>指定导出图片的背景是否是透明的</p>
<p>如果是导出为<code>svg</code>那么可以传递第四个参数</p>
<p><code>plusCssText</code>附加的<code>css</code>样式如果<code>svg</code>中存在<code>dom</code>节点想要设置一些针对节点的样式可以通过这个参数传入</p>
<p>如果是导出为<code>json</code><code>smm</code>那么可以传递第四个参数</p>
<p><code>withConfig</code><code>Boolean</code>默认为<code>true</code>指定导出的数据中是否包含配置数据否则只导出纯节点树数据</p>
<h3>toPos(x, y)</h3>
<blockquote>
<p>v0.1.5+</p>
</blockquote>
<p>将浏览器可视窗口的坐标转换成相对于画布的坐标</p>
<h3>addPlugin(plugin, opt)</h3>
<blockquote>
<p>v0.4.0+</p>
</blockquote>
<p>注册插件使用<code>MindMap.usePlugin</code>注册插件只能在实例化之前实例化后注册的插件是不会生效的所以如果想在实例化后注册插件可以使用实例的<code>addPlugin</code>方法</p>
<h3>removePlugin(plugin)</h3>
<blockquote>
<p>v0.4.0+</p>
</blockquote>
<p>移除注册的插件无论是通过<code>usePlugin</code>还是<code>addPlugin</code>方法注册的插件都可以移除</p>
</div>
</template>
<script>
export default {
}
</script>
<style>
</style>