go.js流程图

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

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

而后须要的效果图以下:.net

而后改改demo成这样:get

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

/**
   * 查找全部须要的节点
   * @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) {it

      var arrLinks = [];io

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

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

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

          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主页,,,,

相关文章
相关标签/搜索