GoJs制作简单的流程图

一、 简介

因为公司业务需求,要编写一个可配置的流程图。我老大给我推荐了Go.js这个功能强大的可视化图表库。这几天一直泡在GoJs的官网上,可惜全是英文看起来非常吃力。希望每天总结一下可以,梳理一下学习中的漏洞。

就从一个小demo开始吧

二、简单的流程图制作

利用GoJs制作一个简单的流程图

第一步

下载go.js
然后新建一个HTML文件

//引入go.js
<script src="./go.js"></script>

//创建存放画布的盒子
<div style="width: 100%; display: flex; justify-content: space-between">
     <div id="myPaletteDiv" style="width: 100px; margin-right: 2px; background-color: #282c34;"></div>
     <div id="myDiagramDiv" style="flex-grow: 1; height: 750px; background-color: #282c34;"></div>
</div>

//创建画布
var $ = go.GraphObject.make;
var myDiagram = $(go.Diagram, "myDiagramDiv");

第二步

给画布添加一个简单的流程图

//定义节点模板 go.Shape定义节点图形 
myDiagram.nodeTemplate =
    $(go.Node, "Auto",
        $(go.Shape, "RoundedRectangle", { //矩形
             fill: "white"//默认白色
        },
        new go.Binding("fill", "color")), //将Shape.fill绑定为node.data.color
        $(go.TextBlock, {
              margin: 5
        },
        new go.Binding("text", "key")) //将TextBlock.text绑定为node.data.key
     );
 //定义连接线的模板
 myDiagram.linkTemplate =
     $(go.Link,
          $(go.Shape, //连接线
          new go.Binding("stroke", "color"),
          new go.Binding("strokeWidth", "thick")),
          $(go.Shape, //箭头形状
               {
                   toArrow: "OpenTriangle",
                   fill: null
               },
          new go.Binding("stroke", "color"),
          new go.Binding("strokeWidth", "thick"))
      );
      //添加节点数据
          var nodeDataArray = [{
                key: "start",
                color: "lightblue",
            },
            {
                key: "yes",
                // color: "white",
            },
            {
                key: "end",
                color: "pink",
            }
        ];
       //添加连接线数据
        var linkDataArray = [{
            from: "start",
            to: "yes"
        }, {
            from: "yes",
            to: "end"
        }];
        //将节点挂载到模型上
        myDiagram.model = new go.GraphLinksModel(nodeDataArray, linkDataArray);

第三步

添加画板

myPalette =
     $(go.Palette, "myPaletteDiv", {
           nodeTemplateMap: myDiagram.nodeTemplateMap, //共享画布的节点模板
           model: new go.GraphLinksModel([{ //在画板上添加需要的节点模板
                key: "Start"
           }])
      });

最终效果图
简单的流程图
实在是太简单了😂
欢迎纠错 谢谢

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GoJS是一个用于创建交互式流程图、图表和数据可视化JavaScript库。而Vue是一种用于构建用户界面的渐进式框架。 结合GoJS和Vue可以轻松地创建一个交互式的流程图应用。首先,我们需要在Vue项目中引入GoJS库。可以通过npm安装GoJS并引入它,或者直接在HTML文件中引入GoJS的脚本文件。 接下来,我们可以使用Vue的组件系统来构建流程图的各个组件,例如节点、连线和画布等。可以将这些组件定义为Vue的单文件组件,这样可以更好地组织和管理代码。 在Vue组件中,我们可以使用GoJS的API来创建和配置流程图。可以设置节点的属性、样式和事件处理程序等。还可以定义连线的样式和事件,以便用户可以在画布上拖拽节点和连线。 当用户对流程图进行更改时,我们可以通过Vue的数据响应机制来更新数据模型。这样,我们可以随时获取到流程图的最新状态,并将其保存或发送到服务器进行进一步处理。 另外,GoJS还提供了许多有用的功能,例如自动布局、图形导出和交互式编辑等。我们可以根据需要使用这些功能来增强我们的流程图应用。 总而言之,使用GoJS和Vue可以轻松地创建交互式的流程图应用。通过结合Vue的组件系统和GoJS的API,我们可以方便地构建和管理流程图的各个组件,并使用Vue的数据响应机制来实现流程图的动态更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值