echarts绘制关系图

效果图:

 代码:

<template><div id="serveGraph" style="height: 100%; width: 100%; z-index: 88;"></div>
</template>
<script>
import { defineComponent,reactive,toRefs,onMounted,watch } from 'vue'
import * as echarts from 'echarts'export default defineComponent({name:'drawGraph',props:{graphData:{type:Object,default:{data:[],link:[],}},},emits:[],components:{},setup(props,ctx) {const state = reactive({data:[],links:[],paramsData:[],myChart: null,})onMounted(() => {})// 初始化数据const init = function() {state.data = [];state.links = [];let dataList = props.graphData.data;for(var i = 0; i < dataList.length; i++) {var obj = {"name": dataList[i].name,"type":'1',symbol: dataList[i].master == true ? 'image://static/images/serve-1.png' : 'image://static/images/serve-2.png',"symbolSize":[90,90],"dragable":false,"itemStyle":{},"dataDetail":dataList[i],"category":1,"lineStyle":{width:1,},"label":{show:true, // 是否显示标签offset:[0,70],fontSize:16,color:'#5B607D'},}state.data.push(obj)}draw();}// 绘制图表const draw = function() {var option = {// 图表标题title:{show: false, // 显示策略,默认值true, 可选为: true(显示) | false (隐藏)text:'服务器分布', // 主标题文本, '\n'指定换行x:'center', // 水平安放位置,默认为左对齐,可选为:'center','left','right',{number}(x坐标,单位px)y:'center', // // 垂直安放位置,默认为全图顶端,可选为:// 'top' ¦ 'bottom' ¦ 'center'¦ {number}(y坐标,单位px)//textAlign: null          // 水平对齐方式,默认根据x设置自动调整//backgroundColor: 'rgba(0,0,0,0)',//borderColor: '#ccc',    // 标题边框颜色//borderWidth: 0,         // 标题边框线宽,单位px,默认为0(无边框)//padding: 5,             // 标题内边距,单位px,默认各方向内边距为5,// 接受数组分别设定上右下左边距,同cssitemGap:40, //主副标题纵向间隔, 单位为px,默认为10 textStyle: {fontSize: 50,fontWeight: 'bolder',color: '#fff'        // 主标题文字颜色                    },subtextStyle: {color: '#aaa'        // 副标题文字颜色},},xAxis: {show: false,type: "value"},yAxis: {show: false,type: "value"}, tooltip: {trigger: 'item',textStyle: { fontSize: '100%'},axisPointer:{},position: 'top',show:true,borderColor: 'red',backgroundColor:'#fff',textStyle:{color:'#5B607D'},shadowColor: 'none',borderWidth: '0', //边框宽度设置1borderColor: 'transparent', //设置边框颜色     enterable:true,             formatter: params => {    let string = ``;string += `<div style="min-width:200px;max-height:200px;background:#fafafa"><div style="padding:10px;background:#fafafa">服务器信息详情</div><div style="padding:10px;background:#fafafa"><div style="height:30px"><span style="display:inline-block;width:80px">名称:</span> <span>${params.data.name}</span></div></div></div>`return string;},},  // backgroundColor:'rgba(255, 255, 255, 0.5)',// animationDurationUpdate: function (idx) {//     // 越往后的数据延迟越大//     return idx * 1000;// },// animationEasingUpdate: 'bounceIn',series: [{type: 'graph',name: "服务器详情信息",layout: 'force',force: {// initLayout:5 , // 力引导的初始化布局,默认使用xy轴的标点repulsion: 1300, // 节点之间的斥力因子。支持数组表达斥力范围,值越大斥力越大。gravity: 0.4, // 节点受到的向中心的引力因子。该值越大节点越往中心点靠拢。edgeLength: 100, // 边的两个节点之间的距离,这个距离也会受 repulsion影响 。值越大则长度越长layoutAnimation: true // 因为力引导布局会在多次迭代后才会稳定,这个参数决定是否显示布局的迭代动画// 在浏览器端节点数据较多(>100)的时候不建议关闭,布局过程会造成浏览器假死。                        },lineStyle: { // ========关系边的公用线条样式。color: '#e2e7f5',width: 2, //线的粗细type: 'dashed', // 线的类型 'solid'(实线)'dashed'(虚线)'dotted'(点线)globalCoord: false,curveness: 0.2, // 线条的曲线程度,从0到1opacity: 1// 图形透明度。支持从 0 到 1 的数字,为 0 时不绘制该图形。默认0.5},edgeSymbol: ['circle', 'arrow'],edgeSymbolSize: 4,edgeLabel: { show: false, textStyle: { fontSize: 10,color:'#fff ' }, formatter: "{c}" },roam: true,label: {show: true,color: "#fff"},data: state.data,links: props.graphData.link,draggable:true,zoom:1,},]}state.myChart = echarts.init(document.getElementById('serveGraph'));window.addEventListener('resize',() => {state.myChart.resize();})state.myChart.setOption(option);}watch(()=>props.graphData,(val) => {init();},{// immediate:true,deep:true,})        return {...toRefs(state),}}
})</script>
<style lang="scss" scoped></style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/21046.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MFC、Qt、WPF?该用哪个?

MFC、Qt和WPF都是流行的框架和工具&#xff0c;用于开发图形用户界面&#xff08;GUI&#xff09;应用程序。选择哪个框架取决于你的具体需求和偏好。MFC&#xff08;Microsoft Foundation Class&#xff09;是微软提供的框架&#xff0c;使用C编写&#xff0c;主要用于Windows…

Vue2:基础入门

Vue2&#xff1a;基础入门1 Date: April 10, 2023 Sum: vue简介、vue的基本使用、vue的指令、修饰符、过滤器&#xff08;废&#xff09;、小黑的书架、记事本 Tags: * 目标&#xff1a; 能够知道 vue 的基本使用步骤 掌握插值表达式和 v-bind 指令的用法 能够掌握如何使用…

贪心算法求解背包问题

贪心算法&#xff0c;在对问题求解时&#xff0c;总是做出在当前看来是最好的选择。也就是说&#xff0c;不从整体最优上加以考虑&#xff0c;算法得到的是在某种意义上的局部最优解 。 解题的一般步骤是&#xff1a; 1.建立数学模型来描述问题&#xff1b; 2.把求解的问题分成…

vue+ts 错误随笔

笔记 问题Parameter ‘xxx’ implicitly has an ‘any’ type的解决ts ref定义数组&#xff0c;数组遍历报错>类型“never”上不存在属性“xx”ts项目computed定义数据Getting a value from the props in root scope of <script setup> will cause the value to lose …

右值引用带来的效率提升(C++11)

文章目录 一.左值引用和右值引用二.C11区分左值和右值的语法设计意义--对象的移动构造和移动赋值场景分析1:C11之前C11之后 场景分析2:函数std::move右值引用的广泛使用 三.引用折叠 一.左值引用和右值引用 左值:可以取到地址的对象(可以出现在赋值符号的左边),对左值的引用称…

【Linux】计算机网络的背景和协议分层

文章目录 网络发展协议何为协议网络协议协议分层OSI七层模型TCP/IP五层模型&#xff08;四层&#xff09; 基本通信流程mac地址和ip地址网络通信本质 网络发展 从一开始计算机作为一台台单机使用&#xff0c;到现在网络飞速发展&#xff0c;从局域网Lan建立起局域网&#xff0…

go逆向符号恢复

前言 之前一直没怎么重视&#xff0c;结果发现每次遇到go的题都是一筹莫展&#xff0c;刷几道题练习一下吧 准备 go语言写的程序一般都被strip去掉符号了&#xff0c;而且ida没有相关的签名文件&#xff0c;没办法完成函数名的识别与字符串的定位&#xff0c;所以第一步通常…

时序数据异常检测算法

引言 异常检测的场景很多&#xff0c;例如&#xff1a;硬件的故障检测、流量的异常点的检测等场景。针对时间序列类数据的异常检测算法也有很多&#xff0c;业界比较流行的比如普通的统计学习方法–3σ原则和箱线图识别数据离群点&#xff0c;它利用检测点偏移量来检测出异常。…

【八】mybatis 日志模块设计

mybatis 日志模块设计 简介&#xff1a;闲来无事阅读一下mybatis的日志模块设计&#xff0c;学习一下优秀开源框架的设计思路&#xff0c;提升自己的编码能力 模块设计 在Mybatis内部定义了4个级别&#xff1a;Error:错误 、warn:警告、debug:调试、trance&#xff0c;日志优…

HDFS架构刨析

HDFS架构刨析 概述HDFS架构图整体概述主角色&#xff1a;namenodefsimage内存元数据镜像文件edits log&#xff08;Journal&#xff09;编辑日志 从角色&#xff1a;datanode主角色辅助角色&#xff1a;secondarynamenode 重要特性主从架构分块存储机制副本机制namespace元数据…

iPhone 8透明屏的透明度高吗?

iPhone 8是苹果公司于2017年推出的一款智能手机&#xff0c;它采用了全新的设计和技术&#xff0c;其中一个亮点就是透明屏。 透明屏是指屏幕具有透明度&#xff0c;可以透过屏幕看到背后的物体。 iPhone 8的透明屏采用了最新的OLED技术&#xff0c;这种技术可以实现更高的对比…

Python实现对IP网段的快速检测

前言 本文是该专栏的第33篇,后面会持续分享python的各种干货知识,值得关注。 在工作上可能会遇到这样的需求,需要你对某个IP地址的网段进行批量检测。将可用和不可用IP批量筛选出来,尤其是在爬虫项目中,对于IP可用性的检测需求较多。 那么在python中,有没有方法可以快速…

后端技术趋势指南|如何选择自己的技术方向

编程多条路&#xff0c;条条通罗马 后台大佬 后台路线都是面对后台服务器业务&#xff0c;比如web后台服务器&#xff0c;视频后台服务器&#xff0c;搜索后台服务器&#xff0c;游戏后台服务器&#xff0c;直播后台服务器&#xff0c;社交IM后台服务器等等&#xff0c;大部分…

桶排序算法

桶排序算法 算法思想概述&#xff1a; 桶排序&#xff08;Bucket Sort&#xff09;是一种非比较性的排序算法&#xff0c;它将待排序的元素分到有限数量的桶&#xff08;或箱子&#xff09;中&#xff0c;然后对每个桶中的元素分别进行排序&#xff0c;最后合并所有桶的元素得…

使用tinyxml解析和修改XML文件

首先要清楚XML文件包含哪些元素&#xff1a; 他是由元素、文本或者两者混合物组成。元素可以拥有属性&#xff0c;元素是指从开始标签到结束标签的部分。 <?xml version"1.0" encoding"UTF-8" ?> <books><book id"1001">&…

Java版工程项目管理系统平台+企业工程系统源码+助力工程企业实现数字化管理 em

鸿鹄工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离构建工程项目管理系统 1. 项目背景 一、随着公司的快速发展&#xff0c;企业人员和经营规模不断壮大。为了提高工程管理效率、减轻劳动强度、提高信息处理速度和准确性&#xff0c;公司对内部工程…

TypeScript【enum 枚举】

导语 在 TypeScript 中&#xff0c;新增了很多具有特性的一些数据类型处理方法&#xff0c;enum 【枚举】就是其中&#xff0c;很具有代表性的一种&#xff0c;所以本章节就来聊聊 在 TypeScript 中如何去运用 enum 【枚举】。 枚举的概念&#xff1a; 枚举&#xff08;Enum&am…

yolov3-tiny原理解析及代码分析

前言 从去年十一月份开始学习yolo神经网络用于目标识别的硬件实现&#xff0c;到现在已经六个月了。一个硬件工程师&#xff0c;C/C基础都差劲的很&#xff0c;对照着darknet作者的源码和网上东拼西凑的原理讲解&#xff0c;一点一点地摸索。刚开始进度很慢&#xff0c;每天都…

汽车EBSE测试流程分析(四):反思证据及当前问题解决

EBSE专题连载共分为“五个”篇章。此文为该连载系列的“第四”篇章&#xff0c;在之前的“篇章&#xff08;三&#xff09;”中已经结合具体研究实践阐述了“步骤二&#xff0c;通过系统调研确定改进方案”等内容。那么&#xff0c;在本篇章&#xff08;四&#xff09;中&#…

怎么维护好自己的电脑

你的电脑已经成为你工作、学习、娱乐的最佳工具之一&#xff0c;但是如果你不做好电脑维护工作&#xff0c;就可能面临着电脑变慢、蓝屏、崩溃等问题。在这篇文章中&#xff0c;我们将介绍10个电脑维护步骤&#xff0c;让你的电脑更加稳定&#xff01; 为什么需要电脑维护&…