vue 中cytoscape.js使用 cxtmenu菜单如何控制节点的收缩展开

vue 中cytoscape.js使用 cxtmenu菜单如何控制节点的收缩展开

【若有帮助,望采纳】
可以通过在 cxtmenu 菜单中添加收缩/展开节点的选项来实现:
1、在Vue组件中,定义菜单选项:

<template>
  <div id="cy"></div>
</template>

<script>
export default {
  data() {
    return {
      cy: null,
      collapse: false
    }
  },
  mounted() {
    this.cy = cytoscape({
      // cytoscape初始化配置
      container: document.getElementById('cy'),
      elements: [
        // cytoscape元素
      ]
    })

    // 监听菜单click事件
    this.cy.cxtmenu({
      selector: 'node',
      commands: [{
        content: '收缩节点',
        select: (ele) => {
          this.collapseNode(ele)
        }
      }, {
        content: '展开节点',
        select: (ele) => {
          this.expandNode(ele)
        }
      }]
    })
  },
  methods: {
    collapseNode(node) {
      node.children().collapse()
      this.collapse = true
    },
    expandNode(node) {
      node.children().expand()
      this.collapse = false
    }
  }
}
</script>

2、在菜单中添加收缩/展开节点的选项,并在选项的 select 回调函数中调用节点的 collapse() 或 expand() 方法,收缩/展开节点及其子节点。

3、节点的 collapse() 和 expand() 方法会将节点的状态标记为已收缩/已展开,可以通过节点的 collapsed() 方法获取节点的状态。

注意:在该示例中,this.collapse是一个组件的数据属性,用于记录节点的状态,以便在调用菜单选项时正确执行收缩/展开操作。

不知道你这个问题是否已经解决, 如果还没有解决的话:

很久之前写过一篇cytoscape.js基础篇, 地址是https://blog.csdn.net/dahaiaixiaohai/article/details/89669526. 可以适当的参考一下其内容.

很久之前写过一篇cytoscape.js初级篇, 地址是https://blog.csdn.net/dahaiaixiaohai/article/details/108862390. 可以适当的参考一下其内容.

本篇章, 正式使用cytoscape.js实现一些简单的节点菜单显示(提示)操作.

本文对应的源代码寄托于github, cytoscape.js Cxtmenu圆形菜单篇github源代码, 在此感谢github提供的服务.


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^