go.js流程图

电力项目配置需要一个可以配置的万能流程图,选型技术为go.js。

拿到需求,老大说看一下go.js, so 现在官网上找了个demo,跑通。

然后需要的效果图如下:

214518_VA2G_3489292.png

然后改改demo成这样:

214550_mWxW_3489292.png

接着改颜色,思路:遍历出所有国网绿颜色的节点 依次找到节点间的连线 改变连线的属性(颜色宽度箭头颜色大小)。上代码:

/**
   * 查找所有需要的节点
   * @returns {}
   */
  
  function findAllNodes() {
      var arrStep = [];
      var everyStep = null;
      myDiagram.nodes.each(function(node) {
          if (node.data.hasOwnProperty('category') && node.data.category === 'blueStep') {
              everyStep = node;
              arrStep.push(everyStep); 
          } else {
               return false;
          }
          
      });
      return arrStep;
  };
  
  /**
   * 查找步骤之间的连线
   * @param nodes
   * @returns {Array}
   */
  function findFinishedLinks(steps) {

      var arrLinks = [];

      if (!steps || steps.length < 1) return arrLinks;

      var currStep = steps[0];// 【开始】步骤

      for (var i = 0; i < steps.length; i++) {

          var step = steps[i];

          // 连线
          var link = currStep.findLinksBetween(step).first();
          if (!link) continue;
          arrLinks.push(link);

          currStep = step;
      }

      return arrLinks;
  };
  
  
  /**
   * 改变所有“已完成”步骤的连线颜色
   * @param links
   */
  function showFinishedLinks(links) {

      if (!links) return;

      for (var i = 0; i < links.length; i++) {

          // 连线
          var link = links[i];
         /*  link.findObject("HIGHLIGHT").stroke = "#2DACA5";
          link.findObject("myArrow").fill = "#2DACA5";
          link.findObject("HIGHLIGHT").strokeWidth = 2; */
          myDiagram.startTransaction("vacate");
          myDiagram.model.setDataProperty(link.data, "stroke", (link.data.color ="#2DACA5"));
          myDiagram.model.setDataProperty(link.data, "stroke", (link.data.stroke = "#2DACA5"));
          myDiagram.model.setDataProperty(link.data, "fill", "#2DACA5");
          myDiagram.model.setDataProperty(link.data, "strokeWidth", 2);
          myDiagram.commitTransaction("vacate");
          
      /*  // 置于最上层,防止被遮挡
          myDiagram.startTransaction('modified zOrder');
          myDiagram.model.setDataProperty(link.data, "fill", "#2DACA5");
          myDiagram.model.setDataProperty(link.data, "zOrder", 2);
          myDiagram.commitTransaction('modified zOrder'); */
      }
  };

后期整理会把相关源码上传到git主页,,,,

转载于:https://my.oschina.net/u/3489292/blog/1600039

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值