当前位置:   article > 正文

jsPlumb 流程图处理(一)_jsplumb addendpoint

jsplumb addendpoint

本文主要针对流程图通过端点手动连接和保存后通过数据进行加载。例图:

jsPlumb.getInstance() 该api主要用于生成当前实例、在一个页面多个流程图是这个api需要。

一.流程图拖动问题

从某个地方拖动元素到流程图区域可以使用jQuery-UI的拖动和放置进行处理。流程图内的拖动直接使用jsPlumb.draggable(id)改api里面的id为元素id。

二.流程图创建问题

当元素拖动、放置到流程图区域后就会创建对应元素,该元素就是自己手绘的div

三.给元素创建对应端点

1、添加端点api:jsPlumb.addEndpoint(id,params, referenceParams)用于添加单个端点,循环添加多个。或者jsPlumb.addEndpoints()添加多个。

id: 元素id,

params: {

uuid:用于保存后进行自动连接的参数。
anchor:设置端点的样式和位置。
isTarget: true,则可接入线,反之则不可以
isSource: true,则可拉出线,反之则不可以
connectorOverlays: 用于设置线上面的一些参数。

}

referenceParams:一些公共的参数在这里引入进行合并。

2、uuid说明

该参数用于端点连接是用到。获取则通过 当前端点里面的参数endpoint._jsPlumb.uuid可以获取到。

3、anchor说明,具体文档:https://jsplumbtoolkit.com/community/doc/anchors.html

通过数组进行定位是x、y、dx、dy说明,x代表从左到右(0-1),y代表从上到下(0-1)。dx代表从从左到右(-1-0-1)中间为0,dy代表从上到下(-1-0-1)中间为0。例如: [0, 0.5, -1, 0]代表leftCenter(left)。

4、connectorOverlays主要用于设置拉出的线。文档地址:https://jsplumbtoolkit.com/community/doc/overlays.html

通过Custom可以自定义图标。

5、端点是存在一些默认样式的,直接使用就行,如果需要特殊样式则可以通过endpoint里面的image参数来引入图片。例如:

endpoint: ['Image', {src: imgUrl}]

6、线常用参数说明:具体说明:https://wdd.js.org/jsplumb-chinese-tutorial/#/?id=id=_3-jsplumb默认配置简介

  1. maxConnections: 1,
  2. connector: ['Flowchart'], // Bezier: 贝塞尔曲线 Flowchart: 具有90度转折点的流程线 StateMachine: 状态机 Straight: 直线
  3. endpointStyle: {fill: '#456'}, // 端点样式
  4. connectorStyle: {
  5. stroke: '#07a8f9', // 连线样式
  6. strokeWidth: 3 // 线宽度
  7. 'stroke-dasharray': '5,5' // 用于创建虚线
  8. }

四、端点的移入显示、离开隐藏问题。

用于节点都是动态添加的所以需要动态绑定事件,可以通过jquery的on进行绑定。

1、通过jsPlumb.selectEndpoints({source: id})/jsPlumb.selectEndpoints({target: id})通过上面的两个参数进行获取输入、输出端点、通过动态添加和删除.jtk-hover 该css类进而实现该端点的隐藏显示。

  1. $('#' + this.parentId).on('mouseenter', this.child, function () {
  2. let domSource = jsPlumb.selectEndpoints({source: $(this).attr('id')})
  3. let domTarget = jsPlumb.selectEndpoints({target: $(this).attr('id')})
  4. domSource.each(function (item) {
  5. $(item.canvas).addClass('jtk-hover')
  6. })
  7. domTarget.each(function (item) {
  8. $(item.canvas).addClass('jtk-hover')
  9. })
  10. })
  11. $('#' + this.parentId).on('mouseleave', this.child, function () {
  12. let domSource = jsPlumb.selectEndpoints({source: $(this).attr('id')})
  13. let domTarget =jsPlumb.selectEndpoints({target: $(this).attr('id')})
  14. domSource.each(function (item) {
  15. $(item.canvas).removeClass('jtk-hover')
  16. })
  17. domTarget.each(function (item) {
  18. $(item.canvas).removeClass('jtk-hover')
  19. })
  20. })

五、流程图常用事件。

1、connection 连接后出发

2、connectionDetached 断开连接后出发

3、beforeDrop 连接前出发,在这里可以进行验证阻止某些线连接。

4、click 点击线、点触发

5、mouseover、mouseout 移入移出触发

六、端点的删除、流程图dom节点的删除。

1、流程图dom节点的删除:jsPlumb.remove(id) 用于删除dom、点、线也就是删除相关的一切。

jsPlumb.deleteConnectionsForElement(id) 用于删除线。

2、端点的删除:jsPlumb.deleteEndpoint(id)

流程图二功能描述:(1)流程图保存、(2)流程图加载、(3)微缩图截取。

链接:https://blog.csdn.net/github_38186390/article/details/86477187

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/117115
推荐阅读
相关标签
  

闽ICP备14008679号