当前位置:   article > 正文

【vue2+antvx6】节点大小不一致,点击按钮流程图自动布局

【vue2+antvx6】节点大小不一致,点击按钮流程图自动布局

需求:

1、点击优化布局的按钮,自动布局(从左到右),按钮变成撤销布局按钮

2、点击撤销布局的按钮,返回之前的布局

3、在点击优化布局的按钮后,如果移动了节点,则自动将撤销布局的按钮变成优化布局的按钮

第一步:安装插件

npm i @antv/layout

第二步:写方法

  1. // 优化布局(自动布局)
  2. layout() {
  3. this.isRevoke = true;
  4. const gridLayout = new DagreLayout({
  5. type: "dagre",
  6. rankdir: "LR",
  7. // align: "UL",
  8. ranksep: 30,
  9. nodesep: 15,
  10. controlPoints: true,
  11. });
  12. //布局所需的格式
  13. const originData = {
  14. nodes: [],
  15. edges: [],
  16. };
  17. //获取所有节点
  18. const nodes = graph.getNodes();
  19. //获取当前数据
  20. const jso = (document.querySelector("#container").value = JSON.stringify(
  21. graph.toJSON({ diff: true })
  22. ));
  23. //保存原先布局
  24. localStorage.setItem("layoutAntv", jso);
  25. //原先布局中的数据放置到所需格式中
  26. JSON.parse(jso).cells.forEach((i) => {
  27. if (i.shape === "edge") {
  28. originData.edges.push(i);
  29. } else {
  30. originData.nodes.push(i);
  31. }
  32. });
  33. //我设置的vue自定义节点,所以节点在添加的时候,会根据实际盒子的大小进行设置(利用node.resize()进行改变)
  34. //所以我的节点大小是不一致的,需要替换一下改变后的节点大小
  35. nodes.forEach((node) => {
  36. const size = node.si
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/503404
推荐阅读
相关标签
  

闽ICP备14008679号