Skip to content

网络图 NetworkGraph

在4合一网络图中,NetworkGraph 是图的载体,它包含了图上的所有元素(横道、活动、边等),同时挂载了图的相关操作(如交互监听、元素操作、渲染等)。

平移、缩放

1、画布平移

普通画布(未开启 scroller 模式)通过开启 panning 选项来支持拖拽平移。

js
const netGraph = new NetworkGraph({
  panning: true,
})

// 等同于
const netGraph = new NetworkGraph({
  panning: {
    enabled: true,
  },
})

拖拽可能和其他操作冲突,此时可以设置 modifiers 参数,设置修饰键后需要按下修饰键并点击鼠标才能触发画布拖拽。

js
const netGraph = new NetworkGraph({
  panning: {
    enabled: true,
    modifiers: 'shift',
  },
})

还可以配置 eventTypes 来设置触发画布拖拽的行为,支持 leftMouseDownrightMouseDownmouseWheel,默认为 ['leftMouseDown']

js
const netGraph = new NetworkGraph({
  panning: {
    enabled: true,
    eventTypes: ['leftMouseDown', 'rightMouseDown', 'mouseWheel']
  },
})

可以通过以下 API 来启用/禁止画布平移:

js
netGraph.isPannable() // 画布是否可以平移
netGraph.enablePanning() // 启用画布平移
netGraph.disablePanning() // 禁止画布平移
netGraph.togglePanning() // 切换画布平移状态

2、画布缩放 (甘特图gantt中配置scales,时标刻度缩放)

通过开启 mousewheel 选项来支持画布缩放。这里说明怎么通过代码来进行画布缩放:

js

导出(暂未启用)

1、导出 PNG/JPEG

js
import { DataUri } from 'network-planing-graph'

netGraph.toPNG((dataUri: string) => {
  //dataUri base64 下载
  DataUri.downloadDataUri(dataUri, 'network-graph.png')
})

toPNG/toJPEG 支持以下参数:

width

导出图片的宽度

height

导出图片的高度

padding

图片的 padding

watermark

导出图片水印

js
netGraph.toPNG((dataUri: string) => {
  // 下载
  DataUri.downloadDataUri(dataUri, 'chart.png')
}, {
  padding: {
    top: 20,
    right: 30,
    bottom: 40,
    left: 50,
  },
})

2、导出 MPP/Excel/PDF/XML

js
netGraph.toMPP((dataUrl: string) => {
  // 下载地址
})
netGraph.toExcel((dataUrl: string) => {
  // 下载地址
})
netGraph.toPDF((dataUrl: string) => {
  // 下载地址
})
netGraph.toXML((dataUrl: string) => {
  // 下载地址
})

Released under the MIT License.