JavaScript is required

HTML 配置与布局

createRelationGraph(host, config) 接受 RGHtmlConfig:

type RGHtmlConfig = {
  options?: RGOptions;
  data?: RGJsonData;
  events?: RGListeners;
  renderers?: RGHtmlRenderers;
  layers?: RGHtmlLayers;
  plugins?: readonly RGHtmlPlugin[];
  ui?: {
    toolbar?: boolean | RGHtmlToolbarOptions;
    miniView?: boolean | RGHtmlMiniViewOptions;
    editing?: boolean | RGHtmlEditingOptions;
  };
  relationGraphCore?: new () => RelationGraphCore;
};

常用配置

const graph = await createRelationGraph('#graph', {
  options: {
    layout: {layoutName: 'tree', from: 'left'},
    defaultNodeWidth: 140,
    defaultNodeHeight: 54,
    defaultNodeBorderRadius: 6,
    defaultLineColor: '#8a949e',
    defaultLineWidth: 2,
    defaultLineShape: 6,
    showToolBar: true,
    showMiniView: true,
    wheelEventAction: 'zoom',
    dragEventAction: 'move',
    moveToCenterWhenRefresh: true,
    zoomToFitWhenRefresh: true
  },
  data,
  ui: {
    toolbar: true,
    miniView: {position: 'br', width: 220, height: 130}
  }
});

配置类别

类别 常用字段
视图 viewSize, backgroundColor, backgroundImage, fullscreenElementXPath
节点 defaultNodeWidth, defaultNodeHeight, defaultNodeShape, defaultNodeColor, defaultNodeBorderRadius
连线 defaultLineColor, defaultLineWidth, defaultLineShape, defaultJunctionPoint, defaultLineMarker
交互 wheelEventAction, dragEventAction, disableDragNode, disableZoom, disableDragCanvas
展开 defaultExpandHolderPosition, reLayoutWhenExpandedOrCollapsed
工具 showToolBar, toolBarDirection, toolBarPositionH, toolBarPositionV, showMiniView
性能 performanceMode, overviewMode, overviewEnterZoom, overviewExitZoom, maxDomNodes
刷新 moveToCenterWhenRefresh, zoomToFitWhenRefresh, useAnimationWhenRefresh

完整公共配置见图谱全局配置项。HTML 平台没有另一套配置语义,它直接使用核心 RGOptions。

内置布局

options: {
  layout: {
    layoutName: 'tree',
    from: 'left',
    levelDistance: 180,
    min_per_width: 120,
    max_per_width: 220
  }
}
layoutName 适用场景
fixed 使用数据中的 x、y 坐标
center 根节点居中、关系向外扩展
tree 单向或双向层级树
smart-tree 自动分析方向的关系树
folder 组织架构和紧凑目录树
circle 环形关系展示
force 网络和聚类关系

布局字段按布局类型有所不同。详细语义见内置布局算法。

运行时更新

graph.updateOptions({
  backgroundColor: '#10151b',
  defaultLineColor: '#a8b3bd'
});

await graph.setLayouter({
  layoutName: 'force',
  maxLayoutTimes: 300
});
graph.doLayout();

updateOptions() 只传变化字段。不要直接修改 graph.getOptions() 返回的只读视图。

EasyView 与性能模式

性能策略可以在大量节点或较小缩放比例时从 DOM/SVG 切换到 Canvas 概览。矩形节点的概览圆角取 node.borderRadius ?? defaultNodeBorderRadius ?? 5;投影圆角不足 3 CSS 像素时使用普通矩形,以减少绘制成本。

options: {
  performanceMode: 'auto',
  overviewMode: 'auto',
  maxDomNodes: 1200
}

下一页:数据、事件与 API。