前端实现人员关系图谱

入职前端工作到现在差不多有一年半的时间了,和朋友偶然聊天的时候被问到,能不能用所学的前端知识做一个家族关系的族谱,可以使家族关系更加简单明了。当时听完这个需求,觉得可能还是蛮简单的,后来动手做的时候,发现族谱的连线,是需要根据返回的数据动态生成的,这就是我这个小前端,有点头秃了🤡。

解决技术困难

当时阻碍我前进的就是如何实现族谱的连线以及根据数据渲染它们的对应关系,后来在逛博客的过程中,发现了antdesign的charts图表组件。利用这个组件,如果可以进行一些改造,可能就可以实现族谱的关系图。
在这里插入图片描述

开始动手

首先需要安装ant-design/charts,具体安装过程请参考 官方文档。

安装完成以后,就要根据数据渲染出想要的视觉效果,由于svg图相关的知识比较薄弱,所以实现的视觉可能有点丑陋,大家将就着看看,我写这篇文章的目的就是总结自己的技术探索历程,可能这篇文章下周就修改了。
先看视觉效果。
在这里插入图片描述
代码:

import React, {
    useEffect, useState } from "react";
import "./Treechart.css";
import {
    Modal } from "antd";
import {
    OrganizationGraph } from "@ant-design/charts";
import * as _ from "lodash"


// const data = {
   
//   id: "joel",
//   value: {
   
//     text: "李伟峰",
//     value: "陈兰兰",
//     // 建议使用 bae64 数据
//     icon: "https://avatars.githubusercontent.com/u/31396322?v=4",
//     style: {
   
//       fill: "#00CED1",
//       width: "200",
//     },
//     img: "/api/img/%E8%80%81%E4%BA%BA.jpeg",
//   },
//   style: {
   
//     width: 110,
//     height: 40,
//     // stroke: "#87ceeb",
//     fill: "	#FFC0CB",
//     radius: "8",
//     // textAlign: "center",
//   },
//   children: [
//     {
   
//       id: "c1",
//       value: {
   
//         text: "李伟峰",
//         value: "陈兰兰",
//         // 建议使用 bae64 数据
//         icon: "https://avatars.githubusercontent.com/u/31396322?v=4",
//       },
//       children: [
//         {
   
//           id: "c1-1",
//           value: {
   
//             text: "李伟峰",
//             value: "陈兰兰",
//             // 建议使用 bae64 数据
//             icon: "https://avatars.githubusercontent.com/u/31396322?v=4",
//           },
//         },
//         {
   
//           id: "c1-2",
//           value: {
   
//             text: "李伟峰",
//             value: "陈兰兰",
//             // 建议使用 bae64 数据
//             icon: "https://avatars.githubusercontent.com/u/31396322?v=4",
//           },
//           children: [
//             {
   
//               id: "c1-2-1",
//               value: {
   
//                 text: "李伟峰",
//                 value: "陈兰兰",
//                 // 建议使用 bae64 数据
//                 icon: "https://avatars.githubusercontent.com/u/31396322?v=4",
//               },
//             },
//             {
   
//               id: "c1-2-2",
//               value: {
   
//                 text: "李伟峰",
//                 value: "陈兰兰",
//                 // 建议使用 bae64 数据
//                 icon: "https://lwfcll.oss-cn-hangzhou.aliyuncs.com/img/1630238333160.png",
//               },
//             },
//           ],
//         },
//       ],
//     },
//     {
   
//       id: "c2",
//       value: {
   
//         text: "李伟峰",
//         value: "陈兰兰",
//         // 建议使用 bae64 数据
//         icon: "https://avatars.githubusercontent.com/u/31396322?v=4",
//       },
//     },
//     {
   
//       id: "c3",
//       value: {
   
//         text: "李伟峰",
//         value: "陈兰兰",
//         // 建议使用 bae64 数据
//         icon: "https://avatars.githubusercontent.com/u/31396322?v=4",
//       },
//       children: [
//         {
   
//           id: "c3-1",
//           value: {
   
//             text: "李伟峰",
//             value: "陈兰兰",
//             // 建议使用 bae64 数据
//             icon: "https://avatars.githubusercontent.com/u/31396322?v=4",
//           },
//         },
//         {
   
//           id: "c3-2",
//           value: {
   
//             text: "李伟峰",
//             value: "陈兰兰",
//             // 建议使用 bae64 数据
//             icon: "https://lwfcll.oss-cn-hangzhou.aliyuncs.com/img/%E4%B8%AD%E5%B9%B4%E5%A4%AB%E5%A6%872.jpeg",
//           },
//           children: [
//             {
   
//               id: "c3-2-1",
//               value: {
   
//                 text: "李伟峰",
//                 value: "陈兰兰",
//                 // 建议使用 bae64 数据
//                 icon: "https://avatars.githubusercontent.com/u/31396322?v=4",
//               },
//             },
//             {
   
//               id: "c3-2-2",
//               value: {
   
//                 text: "李伟峰",
//                 value: "陈兰兰",
//                 // 建议使用 bae64 数据
//                 icon: "https://avatars.githubusercontent.com/u/31396322?v=4",
//               },
//             },
//             {
   
//               id: "c3-2-3",
//               value: {
   
//                 text: "李伟峰",
//                 value: "陈兰兰",
//                 // 建议使用 bae64 数据
//                 icon: "https://avatars.githubusercontent.com/u/31396322?v=4",
//               },
//             },
//           ],
//         },
//         {
   
//           id: "c3-3",
//           value: {
   
//             text: "李伟峰",
//             value: "陈兰兰",
//             // 建议使用 bae64 数据
//             icon: "https://avatars.githubusercontent.com/u/31396322?v=4",
//           },
//         },
//       ],
//     },
//   ],
// };

const colorArr = ["#00CED1", "#FFA07A", "#87CEFA", "#BA55D3", "#00FA9A"];

export default function TreeChart() {
   
  /**
   * 遍历树的方法
   */
  //   const traverseTree = (data, fn) => {
   
  //     if (typeof fn !== "function") {
   
  //       return;
  //     }

  //     if (fn(data) === false) {
   
  //       return false;
  //     }

  //     if (data && data.children) {
   
  //       for (let i = data.children.length - 1; i >= 0; i--) {
   
  //         if (!traverseTree(data.children[i], fn)) return false;
  //       }
  //     }
  //     return true;
  //   };

  //   traverseTree(data, (d) => {
   
  //     d.leftIcon = {
   
  //       style: {
   
  //         fill: "#e6fffb",
  //         stroke: "#e6fffb",
  //       },
  //       img:
  //         "https://gw.alipayobjects.com/mdn/rms_f8c6a0/afts/img/A*Q_FQT6nwEC8AAAAAAAAAAABkARQnAQ",
  //     };
  //     d.rightIcon = {
   
  //         style: {
   
  
最低0.47元/天 解锁文章
数仓+血缘图+流程图+前端+js
06-03
此血缘图实现了以下功能: 1、支持节点跨级连线 2、支持正反向连线(任意连线)3、节点层级清晰 4、支持放大、缩小功能 5、支持拖拽节点功能 6、连线为箭头连线 7、连线上可以加文字标注 8、节点内容清晰明了 9、节点可以加不同的背景颜色 10、每个节点不需要坐标 。适合数仓的表、字段等血缘图。
html页面展示关系图,可拖拽的html5人物关系图代码
weixin_42510783的博客
06-05 2097
一款可拖拽的html5人物关系图代码,可以显示预设的人物头像、人物的关系等,可以鼠标拖拽来自由排列人物顺序,可以指定不同关系的连线样式。查看演示下载资源:33次 下载资源下载积分:20积分页面的body部分,设置好人物关系的canvas显示容器,代码如下: 页面的底部,需引入jQuery库和必要的JS文件,并设置好人物关系所有的显示内容,...
前端vue echart自定义图表(柱形图 折线图 饼图 树形结构图 关系图谱 )
chenchuang0128的博客
05-30 5849
前端组件化开发:使用ECharts快速实现自定义图表摘要:随着前端开发技术的发展,组件化开发已成为提高开发效率和降低维护成本的有效手段。本文将介绍如何使用ECharts库进行前端组件化开发,快速实现自定义的图表,包括柱形图、折线图、饼图、树形结构图和关系图谱等。通过结合业务特性的模块拆分策略、模块间的交互方式和构建系统等,可以实现灵活的组件组合和扩展,提高开发效率和降低维护成本。一、引言在前端开发中,图表的展示对于数据的可视化具有重要意义。
Vue关系图谱组件
最新发布
weixin_57761373的博客
05-28 477
Vue 关系图谱组件是基于 Vue.js 框架开发的一种组件,用于展示数据之间的关系。它通常采用图形化的方式,将数据以节点和边的形式呈现出来,帮助用户直观地理解数据之间的联系和结构。通过本文的介绍,你应该对 Vue 关系图谱组件有了基本的了解。它是一种强大的工具,可以帮助我们更好地展示和理解数据之间的关系,为前端开发提供了更多的可能性和灵活性。
前端工具】使用Echats生成关系图谱,可展开折叠
xbl的博客
06-27 2680
根据服务关系制作关系图谱,echarts官方关系图没有想要的案例,网上也没有好的效果,故参考网上已有的部分案例,自行写了一个,效果还不错。2、点击路径,可展开详细信息。1、默认展示查询到的所有路径列表。
前端-relation-graph实现关系数据展示(关系图/流程图)
weixin_47917431的博客
11-18 6709
今天公司同事的项目新需求需要实现数据关系展示,我在CSDN上找的了答案,并分享给大家。具体在哪位大佬分享,我会在文章末尾引用标注给出链接。话不多说,接下来介绍这个为我们开发人员提供的关系数据组件。
各种前端技术关系图和分类o(╥﹏╥)o
TO_NARUTO的博客
09-09 1269
一、前言 (╥╯^╰╥)一入前端,深似海,以前我读书那会儿怎么没有发现,前端里面竟然有这么多技术类别,很多都是类似的功能,好几个框架!哎,花了一下午,自己绘制了个思维导图。对前端技术分类和关系等,有了一定的了解。突然o(╥﹏╥)o就觉得学个前端好难。 二、自己好的关系导图 这是根据Bootstrap中文完首页推荐的技术,自己进行分类绘制的导图,当我绘制完,才发现竟然有人家已经分类好的前端所有技术汇总-印记中文。但是仔细对比了一下,发现我的汇总和这个汇总还是有区别,很明显它...
前端JS + SVG 实现关系图谱 流程图
DLM1031653077的博客
03-26 2800
重要需掌握,线,矩形、圆 线:<line x1="521" y1="108" x2="521" y2="145" stroke="black" stroke-width="2" marker-start="url(#ClearTriangleL)">></line> 矩形:<rect x="408" y="8" width="254" height="43" fill="white" stroke="#ccc" stroke-width="1"><..
Graph Demo 人员图谱
07-21
在这个"Graph Demo 人员图谱"中,我们主要探讨的是如何使用JavaScript和vis.js库来构建一个可视化的人员关系网络。vis.js是一个强大的JavaScript库,它提供了多种类型的数据可视化选项,包括网络图、时间线和表格。 ...
可拖拽的html5人物关系图代码
09-11
在这个项目中,人物图标或者关系图的某些特定元素可能用SVG来实现。 3. **事件处理**: HTML5提供了丰富的事件处理机制,比如`mousedown`, `mousemove`, `mouseup`等,这些事件可以用来实现拖放功能。当用户按下鼠标...
python基于医疗知识图谱的问答系统
04-21
本项目中的"python基于医疗知识图谱的问答系统"提供了这样一个实践平台,让开发者和研究人员能够深入学习和应用上述技术。通过探索这个项目,你可以了解到如何将Python与医疗知识图谱相结合,打造一个实用的医疗信息...
基于java毕业论文知识图谱及可视化原型系统设计与实现.docx
07-23
这个系统的关键组成部分包括需求分析、知识图谱构建、可视化设计和实现前端与后端开发以及系统部署。 首先,需求分析是项目启动的基础,通过对毕业论文管理的需求进行深入理解,确定系统的主要功能,如论文数据的...
CSDN知识图谱插件分享,拓扑图插件分享
09-11
下面将详细讨论这两个概念以及相关的前端关系图谱和拓扑图前端插件。 知识图谱是一种结构化的知识表示方法,它通过节点(实体)和边(关系)来描绘现实世界中的事物及其相互联系。在CSDN的知识图谱中,我们可以看到...
前端如何制作关系图_如何使用字符表示图关系
weixin_33398049的博客
01-28 2563
作者:等你归去来出处:https://www.cnblogs.com/yougewe/p/13865184.html知识图谱听起来很高大上,而且也应用广泛。而图数据库,你可以到网上搜搜,基本就是像 neo4j, janusgraph, HugeGraph...如果想让做个类似的图谱的东西,你会怎么办呢?一来就上真的图谱真的好吗?也许前期就三两个关系链,也许只是业务试水,你就去搞个真的图数据库过来?...
实现人物关系图谱,人物影响力图
chuyouyinghe的专栏
08-15 698
最近在做一个项目,其中有一个页面是要做一个类似于个人分享关系图的效果。于是找了网上很多demo,借鉴的一些思路和方法,打算自己动手撸一个出来。
前端可视化】ECharts 关系图力导图(知识图谱)类型配置
日常问题bug解决、学习分享、个人杂谈等等随便写写哈哈哈
09-28 998
记录下 效果图 配置项 let myChart: any = null; const categories = [ { name: "错误码", }, { name: "原因", }, { name: "设备", }, { name: "用户操作", }, { name: "现象", }, ]; // 初始化分布...
antd/x6-graph——实现流程图绘制功能——技能提升
yehaocheng520的博客
04-03 1646
antd/x6-graph——实现流程图绘制功能——技能提升
Vue中数据可视化关系图展示与关系图分析
stormjun的博客
09-10 1780
在本文中,我们介绍了如何使用Vue.js和ECharts.js来创建数据可视化关系图,并进行关系图分析。关系图是一种强大的工具,可以用于可视化和分析各种数据关系。希望这篇文章对您在Vue中进行数据可视化关系图展示和分析有所帮助。以上就是关于Vue中数据可视化关系图展示与关系图分析的文章。希望这篇文章能够帮助您开始使用Vue.js和ECharts.js来创建强大的数据可视化应用程序。
VUE中 用AntV G6 + element 实现关系图展示
weixin_60068942的博客
09-06 4477
getColumnLineage 是请求后端的接口,我的血缘关系是根据不同入参动态展示的,所以data信息就不给大家粘贴啦。写了一个血缘的按钮 ,点击后 血缘关系在对话框 el-dialog 上弹框展示。1.效果图 (我的需求是做字段血缘展示)3.5 销毁布 定义 chart。3.6 针对我的需求 设计。
antdesign3.9.x
07-13
### 回答1: antdesign3.9.x 是一个基于 React 开发的开源 UI 组件库。它提供了丰富的组件和样式,可以帮助开发者搭建精美且高效的 web 应用界面。 antdesign3.9.x 的特点之一是具有响应式的设计,可以适应不同大小的屏幕和设备。它提供了多种布局组件和响应式工具,可以方便地进行页面的排版和布局。无论是在桌面、平板还是手机上访问,用户都可以获得一致的使用体验。 antdesign3.9.x 还拥有丰富的组件库,包括按钮、输入框、下拉菜单、表格、弹窗等常用组件,可以满足大部分前端开发的需求。这些组件具有丰富的样式和功能,可以通过简单的配置实现复杂的交互效果。开发者只需要按照文档中的示例,引入相应的组件即可快速搭建界面。 除了基础组件外,antdesign3.9.x 还提供了一些特殊的组件,如日历、图表、地图等,可以帮助开发者实现特定的功能。这些组件通常具有良好的扩展性,可以通过配置参数和事件回调实现不同的效果。 另外,antdesign3.9.x 还提供了一套可定制的主题系统,开发者可以根据自己的需要自定义组件的样式和风格。除了预设的主题色,还可以进行更细粒度的定制,如字体、边框颜色等。这使得开发者可以根据自己的品牌和设计风格定制界面,使应用更加独特和个性化。 总而言之,antdesign3.9.x 是一个功能强大且灵活的 UI 组件库,可以帮助开发者快速构建出符合标准设计规范的优秀界面。无论是个人项目还是企业级应用,antdesign3.9.x 都是一个值得选择的工具。 ### 回答2: Ant Design 是一个基于 React 的 UI 组件库,Ant Design 3.9.x 是其当前版本。Ant Design 提供了丰富而强大的组件,使开发者能够快速构建美观、易用的用户界面。 Ant Design 3.9.x 版本有以下特点和更新: 1. 支持响应式设计:Ant Design 可以根据不同的屏幕大小和设备自动调整布局,确保在任何设备上都有良好的用户体验。 2. 主题定制:Ant Design 提供了易于定制的主题机制,开发者可以根据自己的需求轻松地定制组件的样式和颜色。 3. 新增组件:3.9.x 版本引入了一些新的组件,如卡片(Card)、上传(Upload)和步骤条(Steps),提供了更多的选择和功能。 4. 优化和 bug 修复:每个版本都会对已有组件进行优化和 bug 修复,以提高性能和稳定性。 5. 文档和社区支持:Ant Design 提供了详尽的文档和示例,开发者可以快速学习和使用组件。此外,Ant Design 还有活跃的社区支持,开发者可以在社区中提问和交流。 Ant Design 3.9.x 版本是一个成熟稳定的版本,使用它可以让开发者快速构建现代化的 Web 应用程序。无论是新项目还是现有项目的升级,Ant Design 都是一个值得考虑的选择。 ### 回答3: Ant Design 是一款基于 React 技术栈的企业级 UI 设计语言和前端组件库。而 Ant Design 3.9.x 是 Ant Design 在其开发历程中的一个版本。Ant Design 3.9.x 版本是该组件库的中间版本之一,具有一定的成熟度和稳定性。 Ant Design 3.9.x 版本在之前版本的基础上进行了不少优化和改进。这个版本中可能会包含一些新的组件或者功能,也可能包含一些已有组件的更新或修复。Ant Design 团队通常会在每个版本中根据用户的反馈和需求进行功能的增加和优化。所以 Ant Design 3.9.x 版本的发布可能会带来一些新特性和更好的用户体验。 Ant Design 提供了一系列高质量的 UI 组件,例如按钮、表格、表单等,可以用于构建现代化且美观的交互界面。Ant Design 的组件设计遵循了一套统一的设计规范和原则,使得用户可以非常方便地进行开发和定制。Ant Design 还提供了丰富的主题定制能力,用户可以根据自己的需求轻松地进行样式的修改和扩展。 Ant Design 3.9.x 版本的发布说明中可能会提到一些新增的组件、样式变更、API 更新等内容,开发者可以根据自己的项目需求和现有代码进行相应的升级。同时,Ant Design 团队还会提供详细的文档和示例,帮助开发者理解和使用新版本的特性。 总结来说,Ant Design 3.9.x 是 Ant Design 在其演化发展过程中的一个版本,它是基于 React 的企业级 UI 组件库,提供丰富的组件和优雅的设计,并且不断进行版本迭代和改进,为开发者提供更好的开发体验和更符合用户期望的界面效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 程序员的浪漫——Node.js实现通过邮件定时给女朋友发情话 13419
  • React项目引入antd的树形控件实现节点增删改 9259
  • 前端实现人员关系图谱 8925
  • React实现组件的拖拽 5428
  • es6常用的数组操作方法 3052

分类专栏

  • React学习 15篇
  • TypeScript学习 6篇
  • JavaScript学习 17篇
  • 笔记 9篇

最新评论

  • React实现组件的拖拽

    诸葛卍军师: 可以运行,附上我自己附加App.css文件 .App { height: 1000px; width: 1000px; background: #eee; position: relative; } .tuo-zhuai { width: 200px; height: 200px; background-color: red; position: absolute; cursor: pointer; }

  • React实现组件的拖拽

    weixin_46526741: 请问没法去除拖动后回到原来位置的动画怎么办

  • 前端实现人员关系图谱

    云之旋律: 请问可以创建一个仓库,分享一下代码吗。感谢。

  • React实现组件的拖拽

    hb_AAA: 没有css啊

  • React项目引入antd的树形控件实现节点增删改

    manong_001: antd4.0这样写https://blog.csdn.net/weixin_47809584/article/details/122332719 有两个地方需要修改,看下面评论

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • svg学习记录(十一)
  • 实现antd的Upload组件复制粘贴上传文件
  • React实现组件的拖拽
2022年4篇
2021年49篇
2020年18篇

目录

目录

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

PHP网站源码布吉网站优化软件民治网站seo优化光明优秀网站设计坑梓如何制作网站大运企业网站建设丹竹头网站改版塘坑网站优化排名爱联外贸网站建设双龙seo排名永湖网站优化按天收费盐田网站建设宝安外贸网站制作福永seo排名大芬高端网站设计沙井seo优化木棉湾企业网站制作爱联网站建设设计坪山关键词按天收费荷坳企业网站设计广州网站排名优化广州企业网站设计木棉湾SEO按天扣费丹竹头英文网站建设光明网络广告推广民治网站优化软件福永外贸网站设计龙华网站开发光明模板制作爱联百搜标王龙华网络推广歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化