首页 技术 正文
技术 2022年11月23日
0 收藏 464 点赞 4,794 浏览 2568 个字

 import React from ‘react’;import {message} from ‘antd’import vis from ‘vis’;import {api as http} from ‘../../fetch’;let relation = { nodes: [], edges: [] };   //设置关联图的数据(nodes为节点、edges为关联线)const visDate={  //后端返回的数据格式nodes:[{image:IconDomain,label:’域名’,size:25,id:1,},{image:IconDomain,label:’域名’,size:25,id:2,}],edges:[{arrows:’to’,from:’1′,to:’2′}]};class Vis extends React.Component{ constructor(props) { super(props); this.state = { relation: { nodes: [], edges: [] }, nodeheight:window.screen.height-326  //设置关联图高度为浏览器的高低减去顶部的高度 }; }; componentDidMount(){ this.props.onRef(this)     let nodeheight=window.screen.height-326; this.setnode() } setnode=(url,name)=>{    //请求后端接口 http.get(url,{params:{name:name}}) .then(response=>{ if(response.code===1){ response.data.nodes.map((val,index)=>{ val.image=IconDomain; val.is_root?val.size=70:val.size=150; }) visDate.nodes=response.data.nodes visDate.edges=response.data.organ let container = document.getElementById(“graph”); relation = { nodes: new vis.DataSet(), edges: new vis.DataSet() }; let data = this.findNode(visDate); let option = { // autoResize: true, width: ‘100%’, height: this.state.nodeheight+’px’, nodes: { shape: ‘box’, // shape: ‘image’, level:11, font: { size: 18, color: ‘red’, // margin:100 }, borderWidth: 2, // widthConstraint:{ // minimum:150, // maximum:150 // }, widthConstraint:150, //设置节点的宽度,超出换行 fixed:false, //设置节点固定,如果为真,则节点不会沿X方向移动 mass:2, chosen:false, labelHighlightBold:false // margin:10 // physics: true, }, edges: { smooth: { enabled: false, //设置线是否可弯曲 type: ‘dynamic’ }, color: “#fff”, arrows: { to: { scaleFactor: 0.6 //箭头大小 } } }, layout:{ randomSeed:1,//配置每次生成的节点位置都一样,参数为数字1、2等 // hierarchical: { // direction: ‘UD’,//UD:上下 DU:下上 LR:左右 RL:右左 // sortMethod: ‘directed’ // }, //层级结构显示} }, physics: { enabled: true, //节点不能重叠,整体图回弹效果 solver: ‘forceAtlas2Based’, barnesHut: { gravitationalConstant: -4000, centralGravity: 0.3, springLength: 120, springConstant: 0.04, damping: 0.09, avoidOverlap: 0 } }, interaction: { hover: true,//鼠标移过后加粗该节点和连接线 // dragNodes:false,//是否能拖动节点 selectable:false,//是否可以点击选择 hover:false, // chosen:false, // labelHighlightBold:false } }; let network = new vis.Network(container, data, option); }else{ message.error(response.msg) } }).catch(error=>{ console.log(error) }) } findNode = (data, name) => {    //根据名称调用后端接口根据自己的业务来 data.nodes.map((value, index) => { relation.nodes.update({ chosen:false, widthConstraint:value.size, id: value.id, // image: value.image, label: value.label, size: value.size, // level:Number(index), shape:value.is_root?’circle’:’box’});   //区分根节点和普通节点,根节点为圆形,普通节点为长方形 return relation }); relation.edges.update(data.edges); return relation }; render(){ return( <div style={{display:’flex’}}> <div id=”graph” style={{justifyContent:’center’,width:’100%’}}> </div> </div> ) }}export default Vis;

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,996
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,510
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,353
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,137
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,770
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,848