Lineflow 收费插件
v0.12.2+
该插件用于支持节点连线的流动效果,流动效果仅在连线为虚线的情况下生效,效果如下:

收费
暂不支持购买单个插件,只能打包购买所有收费插件。
价格:¥999,包含所有收费插件。
扫码转账备注:插件购买。以及你的邮箱地址(如果达到文字上限,那么你可以分两次付款),然后会将插件文件发送到你的邮箱。购买请在充分的使用和考虑后进行,如果你对前端开发不太熟悉,不知道如何使用插件,那么请谨慎考虑购买,没有特殊原因不会退费。如果你发现了 bug,或者有需求,可以提交相关的 issue。
注册
1.引用打包后的文件:
js
import MindMap from 'simple-mind-map'
import Lineflow from 'lineflow.cjs.min.js'
// 或 import Lineflow from 'lineflow.esm.min.js'
// 如果你想要iife格式的打包文件,可以在插件的package.json的build命令中添加:esbuild ./index.js --bundle --minify --external:buffer --format=iife --outfile=./dist/xxx.iife.min.js --global-name=xxx,然后再执行一次npm run build即可生成
MindMap.usePlugin(Lineflow)
2.引用未打包的源码
可以先进入到插件目录执行:
bash
npm link
然后进入到你的项目根目录执行:
bash
npm link simple-mind-map-plugin-lineflow
然后就可以直接导入进行使用:
js
import MindMap from 'simple-mind-map'
import Lineflow from 'simple-mind-map-plugin-lineflow'
MindMap.usePlugin(Lineflow)
注册完且实例化MindMap
后可通过mindMap.lineflow
获取到该实例。
如果你是使用 mindMap.addPlugin 方法来动态注册的组件,那么需要调用一次重新渲染的方法:
js
mindMap.addPlugin(Lineflow)
mindMap.reRender()
说明
配置
流动效果配置最终反映到的是主题上的三个字段:
js
{
// 否开启流动效果,仅在虚线时有效
lineFlow: false,
// 流动效果一个周期的时间,单位:s
lineFlowDuration: 1,
// 流动方向是否是正方向,即从父节点到子节点
lineFlowForward: true
}
温馨提醒
1.如果要开启所有虚线的流动效果,可以通过修改主题配置的相关方法;
2.单个节点自身的设置优先级高于整体的设置;
3.对于较复杂的虚线效果可能流动效果会出现跳动;
4.目录组织图、组织结构图,水平线的流动会有问题;
使用方法
开启或更新所有连线的流动效果
要实现这个功能实际上就是修改主题配置中的流动效果相关字段。
js
const customConfig = {
lineFlow: false,
lineFlowDuration: 1,
lineFlowForward: true
// 其他主题配置...
}
const update = (prop, value) => {
customConfig[prop] = value
mindMap.setThemeConfig({
...customConfig
})
}
// 开启流动效果
update('lineFlow', true)
要获取当前配置的话可以通过getThemeConfig
方法:
js
Object.keys(customConfig).forEach(key => {
customConfig[key] = mindMap.getThemeConfig(key)
})
开启或更新指定节点的流动效果
要实现这个功能实际上就是更新节点自身的数据:
js
let activeNodes = []
mindMap.on('node_active', (node, nodeList) => {
activeNodes = [...nodeList]
})
const nodeConfig = {
lineFlow: false,
lineFlowDuration: 1,
lineFlowForward: true
// 其他节点配置...
}
const update = (prop, value) => {
nodeConfig[prop] = value
activeNodes.forEach(node => {
node.setStyle(prop, value)
})
}
要回显数据的话可以通过节点的getStyle
方法:
js
Object.keys(nodeConfig).forEach(item => {
nodeConfig[item] = activeNodes[0].getStyle(item, false)
})
当然,插件也提供了一个方法来更新:
js
mindMap.lineflow.updateNodeLineFlow(activeNodes, {
...nodeConfig
})
方法
updateNodeLineFlow(appointNodes, config = {})
appointNodes
:单个节点实例,或节点实例数组,可以传递空数组,代表给当前激活的节点设置config
:流动效果设置,对象类型,可以只传递部分字段,结构如下:
js
{
lineFlow: false,// 虚线连线是否开启流动效果
lineFlowDuration: 1,// 连线动画一个周期的时间,单位:s
lineFlowForward: true,// 流动方向是否是从父节点到子节点
}
更新指定节点的流动效果设置。