1.0.0 • Published 4 months ago

@yuntu/react v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
4 months ago

知识图谱可视化

安装

yarn add @yuntu/react
// or
npm install @yuntu/react

组件

通用配置

参数说明类型默认值
actions数据管理实例Actionsundefined
canRegion是否可以框选(按住 shift 拖拽框选)Booleanfalse
renderNode自定义 Node 渲染Vue 组件内置渲染
renderEdge自定义 Edge 渲染Vue 组件内置渲染内置渲染
nodeEvents节点事件(click,dblclick,contextmenu 等){eventType: Function(node,d3Event)}{}
edgeEvents关系事件(click,dblclick,contextmenu 等){eventType: Function(edge,d3Event)}{}
graphEvents图事件(click,dblclick,contextmenu 等){eventType: Function(actions,d3Event)}{}
regionEvents框选事件(brushStart,brushMove,brushEnd,brushOffset){eventType: Function()}{}
onGraphLayoutEnd布局完成Function()undefined
disabledWheelZoom是否禁止鼠标滚轮缩放Booleanfalse

Force

图谱可视化组件

参数说明类型默认值
layout布局算法String|Class'force'
graphData数据配置GraphDataundefined
canDrag是否可以拖拽Booleantrue
isFixed是否固定的定位Booleanfalse

Tree

图谱可视化组件

参数说明类型默认值
graphData数据配置GraphDataundefined

API

createForceActions()

此方法生成实例为图谱展示的数据管理实例,必不可少;

actions.addData(GraphData, isReplace = false)

往当前图谱中添加数据,数据格式固定;isReplace 为 true 的时候会替换当前所有数据

deleteNodeByIds(ids, deleteAloneNodes = false)

根据节点 ids 删除节点以及关联的边,如果deleteAloneNodes === true,会连带删除孤立点,这里有两个逻辑(1.有主节点,会删除所有不和主节点关联的节点 2.没有主节点,删除所有孤立节点)

deleteEdgeByIds(ids, deleteAloneNodes = false)

根据边 ids 删除边,如果deleteAloneNodes === true,会连带删除孤立点,这里有两个逻辑(1.有主节点,会删除所有不和主节点关联的节点 2.没有主节点,删除所有孤立节点)

actions.prev()

撤销,当actions.prevStack.length !== 0的时候可以调用

actions.next()

重做,当actions.nextStack.length !== 0的时候可以调用

actions.fixedNode(node)

钉住节点(钉住后图布局将不会对钉住的节点布局,钉住后点的的属性fixed===true);如果已经钉住的再次调用将会解除锁定

actions.fixedNodes(nodes)

钉住所有节点

actions.unFixedNodes(nodes)

解除钉住节点

actions.setAllMode(mode='default')

设置所有点和边的模式,可选的有default,highlight,unHighlight

actions.highlightNode(node)

设置点高亮(同时和它连接的点和边变成default,其他的点和边变成unHighlight

actions.highlightEdge(edge)

设置边高亮(同时和它连接的点变成default

actions.exportImage(fileName)

当前图谱保存为图片,格式支持 jpeg|png|svg。(注:如果有样式,需要把样式放到组件范围内,不然下载的图片样式会丢失)

actions.adaption(minScale=undefined)

自适应当前视图大小;minScale为最小缩放量

actions.zoomTo(scale)

缩放为原图的 scale 倍

actions.reLayout()

重新布局

actions.focus(node)

聚焦到某个节点

actions.focusById(nodeId)

聚焦到某个节点

actions.packNode(node)

收缩某节点的叶子节点

createTreeActions()

此方法生成实例为图谱展示的数据管理实例,必不可少;大部分 api 和 Force 一致

actions.addData(GraphData)

往当前图谱中添加数据,数据格式固定;会替换当前所有数据

Layout

内置了以下布局

{
    force: '力导布局',
    tree: '树形布局',
    grid: '网格布局'
}

如果需要实现自定义布局,需要继承BasicLayout类实现

数据说明

Node

{
    id: String,
    type: String,
    label: String,
    nodeSize?: Number,  // default: 60
    ...other
}

Edge

{
    id: String,
    target: String,
    source: String,
    type: String,
    label: String,
    strokeWidth?: Number, // default: 1
    ...other
}

GraphData

{
    nodes: Node[],
    edges: Edge[]
}

TreeGraphData

{
    id: String,
    type: String,
    label: String,
    width?: Number,     // tree
    height?: Number,    // tree
    ...other,
    top?: [Node],
    bottom?: [Node],
    left?: [Node],
    right?: [Node],
}
1.0.0

4 months ago

0.0.8

7 months ago

0.0.7

7 months ago

0.0.5

8 months ago

0.0.4

8 months ago

0.0.3

8 months ago