GoJS 基础

简介

GoJS 是什么

GoJS 是一个用于实现交互式图表的 JavaScript 库

在 vue 中使用

  1. 安装:

    1. npm install gojs --save
  2. gojs

    1. import gojs from 'gojs' // 在 main.js 中引入
    2. Vue.prototype.go = gojs // 挂载
  1. 创建一个空图像

// 结构部分(template)

  1. <div class="flowChart" id="flowChart"></div> // 准备节点

// 样式部分(css)

  1. .flowChart {
  2. width: 800px;
  3. height: 400px;
  4. margin: 10% auto;
  5. background-color: rgb(236, 236, 236);
  6. }

// 行为部分(script)

  1. // 初始化
  2. init(){
  3. var $ = go.GraphObject.make
  4. var myDiagram = $(go.Diagram, "flowChart", // 获取节点
  5. {
  6. "undoManager.isEnabled": true // 设置开启 Ctrl-Z 撤消,Ctrl-Y 重做
  7. }
  8. )
  9. }

效果示例:
image.png

  1. 在图像中添加节点

// 行为部分(script)

  1. // 初始化
  2. init(){
  3. var $ = go.GraphObject.make
  4. var myDiagram = $(go.Diagram, "flowChart") // 获取节点
  5. var myModel = $(go.Model)
  6. myModel.nodeDataArray = [
  7. { key: "东方月初" },
  8. { key: "王权富贵" },
  9. { key: "涂山红红" }
  10. ]
  11. myDiagram.model = myModel
  12. }

效果示例:
image.png

通过创建由 GraphObjects 组成的模板,创建一个节点,我们可以使用几个构建块类:

  • 形状:用于显示带有颜色的预定义或自定义几何图形;
  • 文本块:以各种字体显示(可能可编辑)文本;
  • 图片:用于显示图像;
  • 面板:用于容纳其他对象的集合的容器,这些对象可以根据面板的类型以不同的方式定位和调整大小(如桌子、垂直堆叠和拉伸容器);

// 行为部分(script)

  1. // 初始化
  2. init(){
  3. var $ = go.GraphObject.make
  4. var myDiagram = $(go.Diagram, "flowChart") // 获取节点
  5. myDiagram.nodeTemplate = $(
  6. go.Node,
  7. 'Horizontal', // 设置位置 - 水平居中
  8. { background: "#44CCFF" }, // 设置模板样式
  9. $(go.TextBlock,
  10. 'Horizontal',
  11. { font : 'bold 16px sans-serif' },
  12. new go.Binding("text", "key")
  13. ),
  14. )
  15. var myModel = $(go.Model)
  16. myModel.nodeDataArray = [
  17. { key: "东方月初" },
  18. { key: "王权富贵" },
  19. { key: "涂山红红" }
  20. ]
  21. myDiagram.model = myModel
  22. }

效果示例:
image.png