1.0.18 • Published 1 year ago

dragonfly-dag v1.0.18

Weekly downloads
7
License
MIT
Repository
github
Last release
1 year ago

dragonfly-dag

小蜻蜓 💗 小蝴蝶( https://github.com/alibaba/butterfly

Dragonfly-dag 是以 Butterfly-dag 为原型,基于 Vue3 的全新实现。

image

Dragonfly-dag 的目标:

  • 更好的可维护性和代码逻辑清晰度
  • 更好的 Vue 整合开发体验
  • 对原生JS、Vue2、React等提供支持

感谢小蝴蝶团队对这个项目的支持!

快速运行 demo:

如果使用 npm:

npm i
npm run dev

如果使用 yarn:

yarn install
yarn dev

核心组件

画布 DragonflyCanvas

画布属性

属性类型默认值必填支持双向绑定说明
nodesArray[]NY显示的节点,节点数据结构参见节点信息
edgesArray[]NY显示的边,边数据结构参见边信息
zonesArray[]NY显示的区域,边数据结构参见区域信息
layoutObject{}NY节点和区域的位置,以id为键,以定位信息为值,参见定位信息
zoomSensitivityNumber0.001NN缩放敏感度
zoomScaleNumber1NY缩放比例
maxZoomScaleNumber5NN最大缩放比例
minZoomScaleNumber0.1NN最小缩放比例
layoutConfigObject{}NN布局配置,边数据结构参见Dagre 布局
showArrowBooleantrueNN连线显示箭头
arrowZoomRatioNumber1NN箭头缩放比例
arrowPositionNumber100NN箭头显示百分比位置,范围0-1000为起点,100为终点
beforeAddEdgeHookFunctionundefinedNN添加边预处理钩子
nodeGroupStringObjectFunctionundefinedNN节点组控配置,组控配置方式参见组控策略
endpointGroupStringObjectFunctionundefinedNN锚点组控配置
canvasDraggingString'off'NY画布拖拽行为,可选值:off:禁用select:节点圈选zoom:选区放大scroll:画布滚屏
nodeDraggingString'off'NY节点拖拽行为,可选值:off:禁用move:移动节点link:连接节点
canvasWheelingString'off'NY画布滚轮行为,可选值:off:禁用zoom:滚轮缩放scroll:滚屏
lineShapeObjectStraightLineNN连线形状
linkingLineShapeObjectStraightLineNN连线时的连线形状

画布插槽

插槽scope默认内容说明
nodeRenderernode节点 ID 文本自定义节点渲染
topEndpointsnode顶部锚点
leftEndpointsnode左侧锚点
rightEndpointsnode右侧锚点
bottomEndpointsnode底部锚点
edgeLabelRendereredge连线标签文本自定义连线标签渲染
zoneRendererzone自定义区域渲染

锚点 DragonflyEndpoint

属性类型默认值必填支持双向绑定说明
endpointObject-YN锚点信息,参考锚点信息
groupStringObjectundefinedNN节点组控规则
labelClassStringundefinedNN锚点标签样式
labelStringundefinedNN锚点标签

直线 StraightLine

属性类型默认值必填支持双向绑定说明
sourceObject-YN连线起点,连线端点信息数据结构参见连线端点信息
targetObject-YN连线终点,连线端点信息数据结构参见连线端点信息

之字线 ZigZagLine

属性类型默认值必填支持双向绑定说明
sourceObject-YN连线起点,连线端点信息数据结构参见连线端点信息
targetObject-YN连线终点,连线端点信息数据结构参见连线端点信息

S曲线 SCurveLine

属性类型默认值必填支持双向绑定说明
sourceObject-YN连线起点,连线端点信息数据结构参见连线端点信息
targetObject-YN连线终点,连线端点信息数据结构参见连线端点信息

数据类型

节点信息 Node

字段类型必填默认值说明
idStringY-节点唯一标识 ID
labelStringNundefined节点显示标签
movableBooleanNtrue节点是否可以拖拽移动
linkableBooleanNtrue节点是否可连线(无论连入还是连出)
endpointsArrayNundefined节点的锚点列表,数据结构参见锚点信息
groupStringObjectNundefined节点组控规则,参见 组控策略

锚点信息 Endpoint

字段类型必填默认值说明
idStringY-锚点唯一标识 ID
labelStringN-锚点显示标签
orientationStringY-锚点显示位置,可选值为topbottomleftright
linkableBooleanNtrue锚点是否可连线(无论连入还是连出)
groupStringObjectNundefined锚点组控规则,参见 组控策略
classNameStringNundefined锚点样式名
labelClassNameStringNundefined锚点标签样式名
labelStringNundefined锚点标签

边信息 Edge

字段类型必填默认值说明
idStringY-边唯一标识 ID
labelStringN-边显示标签
sourceStringN-边起点节点 ID
sourceEndpointStringN-边起点锚点 ID
targetStringN-边终点锚点 ID
targetEndpointStringN-边终点锚点 ID

连线端点信息 LineEnd

字段类型必填默认值说明
xNumberN-节点/锚点的中心 x 坐标
yNumberN-节点/锚点的中心 y 坐标
widthNumberN-节点/锚点的宽度
heightNumberN-节点/锚点的高度

区域信息 Zone

字段类型必填默认值说明
idStringtrue-区域唯一标识

定位信息 Position

字段类型必填默认值说明
xNumberN布局计算值左上角 x 坐标
yNumberN布局计算值左上角 y 坐标
widthNumberN默认显示值宽度
heightNumberN默认显示值高度

组控策略 Group

组控策略用于控制节点/锚点进行连线操作时的连入/连出的判定规则。

字符串组控策略

直接用字符串做组控策略时,字符串为组名,组名完全相同的节点/锚点可以连入。(连出能否成功取决于目标节点/锚点的组策略)

对象组控策略

字段类型必填默认值说明
nameStringNundefined当前节点/锚点所属组名
linkInStringArrayFunctionBooleanNundefined连入规则,参见 连入规则
linkOutBooleanNundefined连出规则,参见 连出规则
连入规则 linkIn
情形逻辑
undefined当前节点/锚点组名也是undefined时允许任何节点/锚点连入,否则只允许和当前节点/锚点组名一致的节点/锚点连入
String类型源节点/锚点具有相同组名时可接入
Array类型数组包含源节点/锚点的组名时可连入
Function类型函数返回true允许连入,false不允许连入,输入参数参见 函数形式的输入参数
函数形式的输入参数
// 输入参数为一个对象,解构如下:
{
  source, // 源节点ID
  sourceEndpoint, // 源锚点ID,如果值为undefined则表示源为ID为source值的节点,否则源为对应该ID的锚点
  sourceGroup; // 源节点/锚点的组名
}
连出规则 linkOut
情形逻辑
undefined当前节点可以连出
Boolean类型true时可以连出,false不允许连出
Function类型函数入参为当前节点信息(或锚点所在节点)和锚点信息(如果源为节点,锚点信息则为undefined),函数返回Boolean类型的值为true时允许连出,false不允许连出

Dagre 布局

参见Dagre 布局配置

自定义

自定义节点渲染

自定义样式

自定义连线形状

extends: LineShapeBase implement: getDefinition(): String

自定义锚点

1.0.18

1 year ago

1.0.17

1 year ago

1.0.16

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.4

1 year ago

1.0.11

1 year ago

1.0.10

1 year ago

1.0.15

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.2

2 years ago

1.0.3

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago

0.5.3

2 years ago

0.5.0

2 years ago

0.5.2

2 years ago

0.5.1

2 years ago

0.4.0

2 years ago

0.3.26

2 years ago

0.3.25

3 years ago

0.3.24

3 years ago

0.3.23

3 years ago

0.3.20

3 years ago

0.3.22

3 years ago

0.3.21

3 years ago

0.3.19

3 years ago

0.3.18

3 years ago

0.3.17

3 years ago

0.3.16

3 years ago

0.3.15

3 years ago

0.3.14

3 years ago

0.3.13

3 years ago

0.3.8

3 years ago

0.3.7

3 years ago

0.3.9

3 years ago

0.3.12

3 years ago

0.3.11

3 years ago

0.3.10

3 years ago

0.3.6

3 years ago

0.3.5

3 years ago

0.3.4

3 years ago

0.3.0

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.3.3

3 years ago

0.2.23

3 years ago

0.2.22

3 years ago

0.2.21

3 years ago

0.2.20

3 years ago

0.2.19

3 years ago

0.2.18

3 years ago

0.2.17

3 years ago

0.2.16

3 years ago

0.2.15

3 years ago

0.2.14

3 years ago

0.2.13

3 years ago

0.2.12

3 years ago

0.2.11

3 years ago

0.2.10

3 years ago

0.2.9

3 years ago

0.2.8

3 years ago

0.2.7

3 years ago

0.2.6

3 years ago

0.2.5

3 years ago

0.2.1

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.4

3 years ago

0.2.0

3 years ago

0.1.9

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago