1.安装jQuery和jQuery-ui

npm i jquery s
npm i jquery-ui s
yarn install

2.在vue.config.js中进行配置

// webpack build externals
const prodExternals = {
  vue: 'Vue',
  'vue-router': 'VueRouter',
  vuex: 'Vuex',
  axios: 'axios',
  jquery: 'jquery',// 新添加
  $: 'jquery' // 新添加
}

3.在需要引入的组件中引入

<script>
  import jsplumb from 'jsplumb'
  import  $ from "jquery"
   // 需要注意的是,在jquery-ui引入的时候,
  // 直接写成 import juqery-ui 是没有效果的,只能直接写到具体的方法
  import 'jquery-ui/ui/widgets/draggable'
  import 'jquery-ui/ui/widgets/droppable'
  export default {
    name: 'test1',
    components: {
      jsplumb
    },

    mounted(){
      /* global jsPlumb */
      var instance = jsPlumb.getInstance({
        Container:"diagramContainer"
      });
      instance.connect({
        source: 'item_left',
        target: 'item_right',
        paintStyle: { stroke: 'lightgray', strokeWidth: 3 },//设置连线样式
        endpointStyle: { fill: 'lightgray', outlineStroke: 'darkgray', outlineWidth: 2 },//设置连线样式
        overlays: [ ['Arrow', { width: 12, length: 12, location: 1 }] ],//设置箭头
        endpoint: 'Dot',
        connector: ['Bezier'],
        anchor: ['Left', 'Right']

      });

      //注册实体可draggable
      $("#item_left").draggable({
        containment: "parent",
        drag: function (event, ui) {
          instance.repaintEverything();
        },
        stop: function () {
          instance.repaintEverything();
        }
      });
      $("#item_right").draggable({
        containment: "window",
        drag: function (event, ui) {
          instance.repaintEverything();
        },
        stop: function () {
          instance.repaintEverything();
        }
      });
    }
  }
</script>

 

Logo

前往低代码交流专区

更多推荐