欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > 一文玩转【relation-graph 关系图谱】再也不怕遇到这样的需求

一文玩转【relation-graph 关系图谱】再也不怕遇到这样的需求

2025/4/25 1:14:11 来源:https://blog.csdn.net/weixin_43742274/article/details/140297050  浏览:    关键词:一文玩转【relation-graph 关系图谱】再也不怕遇到这样的需求

✨ 关于 relation-graph

relation-graph是支持Vue2、Vue3、React的关系数据展示组件,支持通过【插槽】让使用者使用"普通HTML元素、Vue组件、React组件"来完全自定义图形元素,并提供实用的API接口让使用者轻松构建可交互的图形应用。
官网文档:https://www.relation-graph.com/#/index
在这里插入图片描述

✨ 基本使用:(Vue3.0)

第一步:在项目中安装对应的插件

npm install --save relation-graph-vue3

第二步:创建对应SFC组件

<template><div><div style="border: #efefef solid 1px; height: calc(100vh - 100px);width: 100%;"><relation-graph ref="graphRef$" :options="options" ><template #node="{node}"><div class="node-item" @click="showNodeTips(node, $event)">//自定义节点中显示内容<div class="node-item-info"><div class="node-item-info-item"><div class="item-label">所属部门:</div><div class="item-value">部门编号+部门名称</div></div><div class="node-item-info-item"><div class="item-label">工作电话:</div><div class="item-value">00-1234 1234</div></div><div class="node-item-info-item"><div class="item-label">工作邮箱:</div><div class="item-value">Pall.Lin.123@manpowergrc.com</div></div><div class="node-item-info-item"><div class="item-label">下属人数:</div><div class="item-value">198</div></div></div></div></template></relation-graph></div></div>
</template>
<script setup name="RelationGraph">
import RelationGraph from 'relation-graph-vue3'
const options = {"backgroundImage": "https://ssl.relation-graph.com/images/relatioon-graph-canvas-bg.png","backgroundImageNoRepeat": true,"disableDragNode": true,"defaultFocusRootNode": false,"disableNodeClickEffect": true,"disableLineClickEffect": true,"defaultExpandHolderPosition": "bottom","defaultNodeBorderWidth": 1,"defaultNodeColor": "#ffffff","defaultNodeBorderColor": "#D8D8D8","defaultNodeFontColor": "#303133","defaultLineColor": "#999","checkedLineColor": null,"defaultLineShape": 4,"defaultNodeShape": 1,"defaultNodeWidth": 340,"defaultNodeHeight": 148,"defaultJunctionPoint": "tb","layouts": [{"label": "中心","layoutName": "tree","centerOffset_x": 0,"centerOffset_y": 0,"distance_coefficient": 1,"layoutDirection": "v","from": "top","levelDistance": "","min_per_width": "360","max_per_width": 500,"min_per_height": "300","max_per_height": 500}]
}
const jsonData = {rootId: 'a',nodes: [{ id: 'a', text: 'a', },{ id: 'b', text: 'b', },{ id: 'c', text: 'c', },{ id: 'd', text: 'd', },{ id: 'e', text: 'e', },{ id: 'f', text: 'f', },],lines: [{ from: 'a', to: 'b', },{ from: 'a', to: 'c', },{ from: 'a', to: 'd', },{ from: 'a', to: 'e', },{ from: 'a', to: 'f', },],}
//点击当前节点
const showNodeTips = (nodeObject, $event) => {isShowNodeTipsPanel.value = true
}
// 点击画布事件
const onCanvasClick = ($event) => {isShowNodeTipsPanel.value = false
}
onMounted(()=>{
//初始化画布const graphInstance = graphRef.value?.getInstance()if (graphInstance) {graphInstance.setOptions(options)graphInstance.setJsonData(jsonData)graphInstance.moveToCenter()graphInstance.zoomToFit()}})

第三步:自定义配置界面
在这里插入图片描述
基本配置json

const options = {"backgroundImage": "https://ssl.relation-graph.com/images/relatioon-graph-canvas-bg.png","backgroundImageNoRepeat": true,"disableDragNode": true,"defaultFocusRootNode": false,"disableNodeClickEffect": true,"disableLineClickEffect": true,"defaultExpandHolderPosition": "bottom","defaultNodeBorderWidth": 1,"defaultNodeColor": "#ffffff","defaultNodeBorderColor": "#D8D8D8","defaultNodeFontColor": "#303133","defaultLineColor": "#999","checkedLineColor": null,"defaultLineShape": 4,"defaultNodeShape": 1,"defaultNodeWidth": 340,"defaultNodeHeight": 148,"defaultJunctionPoint": "tb","layouts": [{"label": "中心","layoutName": "tree","centerOffset_x": 0,"centerOffset_y": 0,"distance_coefficient": 1,"layoutDirection": "v","from": "top","levelDistance": "","min_per_width": "360","max_per_width": 500,"min_per_height": "300","max_per_height": 500}]
}

数据格式:

 const jsonData = {rootId: 'a',nodes: [{ id: 'a', text: 'a', },{ id: 'b', text: 'b', },{ id: 'c', text: 'c', },{ id: 'd', text: 'd', },{ id: 'e', text: 'e', },{ id: 'f', text: 'f', },],lines: [{ from: 'a', to: 'b', },{ from: 'a', to: 'c', },{ from: 'a', to: 'd', },{ from: 'a', to: 'e', },{ from: 'a', to: 'f', },],}

数据赋值:

graphRef$.value.setJsonData(jsonData)

完成这些之后我们就可以得到一个基本的关系图谱
在这里插入图片描述
在这里插入图片描述

✨ 如何自定义图谱结构以及样式

1.配置界面进行可视化配置
在这里插入图片描述

2.完成之后点击此处,copy 出我们的json对象,替换到我们自定义组件中即可
在这里插入图片描述
3.具有丰富的事件与交互供大家使用
在这里插入图片描述
常用的事件:

  1. node-click 节点点击事件
  2. line-click 节点连线点击事件
  3. canvas-click 画布点击事件

4.自定义图表动画效果

在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词