zoukankan      html  css  js  c++  java
  • 使用jsplumb的一些笔记

     欢迎就是需要使用jsplumb跟正在使用jsplumb的一起讨论 欢迎私聊

    1.关于jsplumb的connection的一些事件

    ####connection拖动的事件

    instance.bind('connectionDragStop', function(conn) {});

     ####连接废弃

    instance.bind('connectionAborted', (conn, originalEvent) => {})

    ####在落下来某一个点之前

    instance.bind('beforeDrop', (conn) => {})

    ####

    instance.bind('beforeDrag', (conn) => {})

    ####

    instance.bind('connectionDrag', (conn) => {})

    ####

    instance.bind('beforeDetach', (conn) => {})

     ####想要拿到连线的点击事件啊,hover事件啊,都可以通过bind来实现

    instance.bind('click', function(c) {})

    等等这些事件吧~~~~~

    2.就是关于连接线的一些样式问题

      1.你可以在一个页面上实现多种连接的样式,这个都是可以实现的

      2.有关于线是实线啊,虚线啊这些也都是可以实现的 虚线的话dashstyle可以来实现,应该是跟css差不多的

    恩。。。。。

    放一些废弃代码

    initConnect(instance) {
                var that = this;
                instance.batch(function() {
                    for (const point of that.$store.state.nodes) {
                        that.initNode(instance, point.node_id)
                        if (point.child_nodes.length > 0 || point.parent_node == 'root') {
                            instance.addEndpoint(point.node_id, {
                                uuid: `${point.node_id}-bottom`,
                                anchor: 'Bottom',
                                maxConnections: -1,
                                // connectorStyle: { stroke: '#2FB39C', strokeWidth: 2 },
                                // connectorHoverStyle: {
                                //     strokeWidth: 3,
                                //     stroke: "yellow",
                                // },
                                deleteEndpointsOnEmpty: true,
                                dragOptions: {},
                            }, {
                                isSource: true,
                                isTarget: true,
                            });
                        }
                        if (point.parent_node !== 'root') {
                            instance.addEndpoint(point.node_id, {
                                uuid: `${point.node_id}-top`,
                                anchor: 'Top',
                                maxConnections: -1,
                                deleteEndpointsOnEmpty: true,
                            }, {
                                isSource: true,
                                isTarget: true,
                            });
                        }
                        if (point.jump_nodes.length > 0) {
                            point.jump_nodes.forEach((item, index) => {
                                instance.connect({
                                    source: point.node_id,
                                    target: item,
                                    paintStyle: {
                                        stroke: "#E72F1F",
                                        strokeWidth: 2.5,
                                        dashstyle: "4 2",
    
                                    },
                                    maxConnections: -1,
                                    anchor: 'Right',
                                    overlays: [
                                        ["Arrow",
                                            {
                                                 9,
                                                length: 8,
                                                location: 1,
                                                events: {
                                                    click: function() {
                                                        // alert('click')
                                                    }
                                                }
                                            }
                                        ],
                                        ["Custom", {
                                            create: function(component) {
                                                return $('<img src=' + shears + '>');
                                            },
                                            location: -50,
                                            events: {
                                                click: function(e) {
                                                    that.deleteConfirmFun(instance, e.component)
                                                },
    
                                            }
                                        }]
                                    ]
                                });
                            })
                        }
                    }
                    // init transition
                    for (const i of that.$store.state.lines) {
                        const uuid = [`${i[0]}-bottom`, `${i[1]}-top`];
                        instance.connect({
                            uuids: uuid,
                        });
                    }
    
    
                })
                var sourceEndpoint=this.jsPlumbInstance.getEndpoint(`A1-bottom`);
                    console.log('sourceEndpoint',sourceEndpoint)
            },
    addConnect(point) {
                var parent=this.findParentNode(point.node_id);
                // console.log('parentNode',parentNode)
                this.jsPlumbInstance.addEndpoint(point.node_id, {
                    uuid: `${point.node_id}-bottom`,
                    anchor: 'Bottom',
                    maxConnections: -1,
                    deleteEndpointsOnEmpty: true,
                    dragOptions: {},
                }, {
                    isSource: true,
                    isTarget: true,
                });
                this.jsPlumbInstance.addEndpoint(point.node_id, {
                    uuid: `${point.node_id}-top`,
                    anchor: 'Top',
                    maxConnections: -1,
                    deleteEndpointsOnEmpty: true,
                }, {
                    isSource: true,
                    isTarget: true,
                });
                var sourceEndpoint=this.jsPlumbInstance.getEndpoint(`${parent.node_id}-bottom`);
                var targetEndpoint=this.jsPlumbInstance.getEndpoint(`${point.node_id}-top`);
                const uuid = [`${parent.node_id}-bottom`, `${point.node_id}-top`];
                this.jsPlumbInstance.connect({
                    source:sourceEndpoint,
                    target:targetEndpoint
                })
                this.jsPlumbInstance.repaintEverything({clearEdits:false})
            },
    deleteEndpoint() {
                console.log('123')
                // jsPlumb.detach(conn);
                // 删除他与子元素的连接
                console.log(this.jsPlumbInstance)
                // this.jsPlumbInstance.remove(this.nodes[0].node_id);
                // this.jsPlumbInstance.empty(this.nodes[0].node_id);
    
                var a = this.jsPlumbInstance.getEndpoint(`${this.nodes[0].node_id}-bottom`)
                console.log('a', a)
                this.jsPlumbInstance.deleteEndpoint(a)
            },

     恩。。。还有一个问题

    就是如果你连线的元素发生了位置的转移,如果你是通过端点去连接的

    然后我想说 是确实需要重绘的

    如果你元素的位置发生了改变

    有什么想说的 欢迎来指教 

     

  • 相关阅读:
    Linux 安装 PostgreSQL
    【Linux】ZeroMQ 在 centos下的安装
    Celery
    Django学习之完成数据库主从复制、读写分离和一主多从情况下的使用办法
    python异步编程之asyncio(百万并发)
    Python正则表达式中的re.S,re.M,re.I的作用
    云开发 :云原生(Cloud Native)
    极简Unity调用Android方法
    UnityShader快速上手指南(四)
    UnityShader快速上手指南(三)
  • 原文地址:https://www.cnblogs.com/lwwen/p/10000084.html
Copyright © 2011-2022 走看看