vue2使用antv x6案例(功能齐全)

因为是把已经他当作组件来使用,所以大家使用的时候有些需要改一下,大部分的功能都在里面了,希望可以帮到大家。目前有时候使用会出现部分bug,vue-contextmenujs这个组件是用来实现右击显示菜单的,我也是网上找的,效果还可以。

参考:VUE右键菜单 vue-contextmenujs的使用_~Serendipity~的博客-CSDN博客


  
  
  
  

vue2使用antv x6案例(功能齐全)_第1张图片

--------------------------2023.10.31-------------------------

1. 在实际使用中我发现了一些bug,在点击保存时会调用graphRecreate重新渲染,之后如果你单击或右击任意节点,可能会出现没有按住鼠标但节点会自己移动,并且框选的框子会与节点分离的情况,也有点击其他页面再点回来画布不会自动伸缩resize,这时候可以在graphRecreate方法里先使用this.graph.dispose()来清空画布,this.initGraph()重新渲染即可。

2. 使用时发现缩放页面,画布不会自动伸缩,需要在this.initGraph()方法中定义画布时加入autoResize: true即可 ,this.graph = new Graph({ autoResize: true ])

-------------------------2023.11.30---------------------------

需求:获取从根节点到叶子节点的所有路径(前提是没有形成环)

//this.allNodes保存了所有路径
animate() {
      // this.graph.getSuccessors(element)
      // this.graph.getLeafNodes()
      //获取所有根节点(没有入边的节点)
      var roots = this.graph.getRootNodes();
      roots.forEach(element => {
          this.stack.push(element);
          this.getNeighbor(element);
          this.stack.pop();
      });
}
//递归获取子节点
getNeighbor(cell) {
      //获取该节点的所有相邻节点(出边所指的节点)
      var neighbors = this.graph.getNeighbors(cell, { outgoing: true });
      if (neighbors.length == 0) {
        var s = [];
        this.stack.forEach(element1 => {
          s.push(element1);
        });
        this.allNodes.push(s);
      }
      neighbors.forEach(element => {
        this.stack.push(element);
        this.getNeighbor(element);
        this.stack.pop();
      });
},

你可能感兴趣的:(javascript,前端,vue.js)