vue jsplumb的基础使用

jsplumb的基础使用

项目环境vue-cli , 使用:npm i jsplumb -S
官方文档全英文,呵呵哒,推荐中文文档 https://wdd.js.org/jsplumb-chinese-tutorial/#/(有些基础的介绍,入门足够了,深入的需要自己再查阅相关资料了)

// 基础的使用
<template>
  <div id="labelManage">
    <div id="main">
        <div class="flowchart-demo" id="flowchart-demo">
            <div class="window" id="flowchartWindow1">1
            </div>
            <div class="window" id="flowchartWindow2">2
            </div>
            <div class="window" id="flowchartWindow3">3
            </div>
            <div class="window" id="flowchartWindow4">4
            </div>
        </div>
    </div>

  </div>
</template>
<script>
  import jsplumb from 'jsplumb'
  export default {
      data(){
        return {

        }
      },
      methods:{

      },
      mounted(){
        jsPlumb.ready(function() {
          var j = jsPlumb.getInstance({
            DragOptions: { cursor: 'pointer', zIndex: 2000 },
            PaintStyle: { stroke: 'red', strokeWidth: 3 },  //配置自己拖拽小点的时候连接线的默认样式
            Endpoint: ["Dot", {radius: 5}], //这个是控制连线终端那个小点的半径
            // EndpointStyle : { fill : "red" }, //这个是控制连线终端那个小点的样式
            // EndpointHoverStyle  : { fill : "blue" }, //这个是控制连线终端那个小点的样式
            Connector: ["Flowchart",{curviness:70}],
            ConnectionOverlays: [
                [ "Arrow", { location: 1 } ],
                [ "Label", {
                    location: 0.5,
                    label: "hehe",
                    id: "label",
                    cssClass: "aLabel"
                }]
            ],
            Container:"flowchart-demo"
          });

          j.draggable($('.window'));
          j.addEndpoint('flowchartWindow1',{uuid:1 , anchor: "TopCenter",  isSource:true});
          j.addEndpoint('flowchartWindow2',{uuid:2 ,anchor:'Right', isTarget:true});
          j.addEndpoint('flowchartWindow3',{anthors:'Right', isTarget:true});
          // let line = j.connect({uuids: ["1", "2"], editable: true})
          j.connect({
            uuids:[1,2],  //根据uuid进行连接
            paintStyle: { stroke: 'red', strokeWidth: 3 },  //线的样式
            endpointStyle: { fill: 'blue', outlineStroke: 'darkgray', outlineWidth: 2 },//点的样式
            overlays: [ ['Arrow', { width: 12, length: 12, location: 0.5 }] ]   //覆盖物 箭头 及 样式
          })

        });

      }
  }
</script>

<style scoped lang="scss">
.flowchart-demo {
    width: 800px;
    height: 600px;
    border: 1px solid #000;
    position: relative;
}
.flowchart-demo .window {
    border: 1px solid #346789;
    box-shadow: 2px 2px 19px #aaa;
    -o-box-shadow: 2px 2px 19px #aaa;
    -webkit-box-shadow: 2px 2px 19px #aaa;
    -moz-box-shadow: 2px 2px 19px #aaa;
    -moz-border-radius: 0.5em;
    border-radius: 0.5em;
    opacity: 0.8;
    filter: alpha(opacity=80);
    text-align: center;
    position: absolute;
    background-color: #eeeeef;
    color: black;
    font-family: helvetica;
    font-size: 0.9em;
    line-height: 60px;
    width: 60px;
    height: 60px;
}
.flowchart-demo .window:hover {
    box-shadow: 2px 2px 19px #444;
    -o-box-shadow: 2px 2px 19px #444;
    -webkit-box-shadow: 2px 2px 19px #444;
    -moz-box-shadow: 2px 2px 19px #444;
    opacity: 0.6;
    filter: alpha(opacity=60);
}
.flowchart-demo .active {
    border: 1px dotted green;
}
.flowchart-demo .hover {
    border: 1px dotted red;
}

#flowchartWindow1 {
    top: 34em;
    left: 5em;
}
#flowchartWindow2 {
    top: 7em;
    left: 36em;
}
#flowchartWindow3 {
    top: 27em;
    left: 48em;
}
#flowchartWindow4 {
    top: 23em;
    left: 22em;
}

</style>


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容