echart树状图图表

根据后端返回的树状结构,渲染echart树状图,并且默认二级节点后是折叠的
在这里插入图片描述

父级引入组件

    .tree_chart {width: 100%;height: calc(100% - 30px);}<div class="tree_chart"><EachartTree :treeData="allData.treeData" /></div>

树状图子组件

<template><div class="echart_box"><div id="treeEchart"></div></div>
</template><script>
import * as echarts from "echarts"
export default {props: {treeData: {type: Array,default: () => []},},data () {return {treeEchart: null,treeDataLsit: []}},watch: {treeData (newVal, oldVal) {if (newVal) {this.treeDataLsit = newValthis.treeEchart =nullthis.getBarData()}},},mounted () {this.$nextTick(() => {this.getBarData()})window.addEventListener('resize', () => {this.treeEchart.resize()});},methods: {getBarData () {let option = {tooltip: {trigger: 'item',triggerOn: 'mousemove',color: '#fff',backgroundColor: 'skyblue',borderColor: 'skyblue',},grid: {top: 0,left: 0,right: 0,bottom: 0,containLabel: true},animationDurationUpdate: 1500,animationEasingUpdate: 'quinticInOut',series: [{type: 'tree',symbolSize: [140, 50],symbol: 'rect',edgeShape: 'polyline',edgeForkPosition: '50%',edgeSymbol: ['circle', 'arrow'],edgeSymbolSize: [4, 10],edgeLabel: {normal: {textStyle: {fontSize: 18,},},},initialTreeDepth: 2,orient: 'vertical',itemStyle: {color: '#FFC125',borderColor: '#FFC125',},expandAndCollapse: true,animationDuration: 550,animationDurationUpdate: 750,//线条的颜色lineStyle: {normal: {opacity: 0.9,color: '#53B5EA',type: 'dashed',width: 1,},},label: {position: 'inside',fontSize: 12,color: '#fff',formatter: function (params) {return [`${params.data.name}`,`10 人`].join('\n');},},top: 50, // 设置节点顶部和容器顶部的距离left: 0, // 设置节点左侧和容器左侧的距离bottom: 80, // 设置节点底部和容器底部的距离right: 0, // 设置节点右侧和容器右侧的距离// leaves: {//     label: {//         position: 'inside',//         color: '#fff',//     },//     itemStyle: {//         color: '#dfdfdf',//         borderColor: '#dfdfdf',//     },// },level: [  // 设置不同层级的节点间距{ nodeSpacing: 50 },  // 第一层节点间距为50{ nodeSpacing: 150 },  // 第二层节点间距为30{ nodeSpacing: 150 },  // 第三层节点间距为20],data: this.treeDataLsit},],}this.treeEchart = echarts.init(document.getElementById("treeEchart"))this.treeEchart.setOption(option)},},
}
</script><style lang="scss" scoped>
.echart_box {display: flex;align-items: center;justify-content: center;width: 100%;height: 100%;position: relative
}#treeEchart {width: 100%;height: 100%;
}
</style>

数据转换、重构

   /* 转换树形结构 */transformData (originalData, isParent = false) {return originalData.map((node, index) => {let obj = {name: node.deptName,itemStyle: {color: isParent ? '#13bc4c' : '#4095e5',borderColor: isParent ? '#13bc4c' : '#4095e5',},}if (node.child) {obj.children = this.transformData(node.child)}return obj;});},//获取到树状结构数据getOrganizationData(params).then((res) => {let arr = [res.data.data]this.allData.treeData = this.transformData(arr, true);this.allData.treeData.map((item) => {if (item.children) {item.children.map((item1) => {item1.collapsed = true; //这是设置图表折叠的属性})}})})

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

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

相关文章

机试:字符串相关简单问题

字符移动问题 这道题的描述是这样的&#xff1a;输入一个字符串&#xff0c;将其中的数字字符移动到非数字字符之后&#xff0c;并保持数字字符和非数字字符输入时的顺序。例如&#xff1a;输入字符串“ab4f35gr#a6”,输出为“abfgr#a4356”。 以下使我试着敲的代码&#xff…

STK中的光照计算模型

本文简要阐述STK中光照计算的模型。 在航天任务中&#xff0c;通常需要分析地面站、飞行器在一定时间内的光照情况&#xff0c;具体包括&#xff1a; 地面站处在光照区和阴影区的具体时间范围&#xff1b;考虑地形遮挡后&#xff0c;地面站的光照区和阴影区的变化情况&#x…

SketchUp Pro 2024 mac草图大师 激活版 专业的3D建模软件

对于追求专业、高效的设计师们来说&#xff0c;SketchUp Pro 2024 for Mac无疑是最佳的选择。它提供了线条、形状、曲线、文本和图像等多种建模元素&#xff0c;让您能够根据需求自由创作。同时&#xff0c;软件还支持智能标注和尺寸功能&#xff0c;让建模过程更加精确、高效。…

加盟商小程序运用线上渠道的作用是什么

很多行业都有头部品牌&#xff0c;为了满足市场需要和品牌发展、提升营收&#xff0c;加盟模式很常见&#xff0c;通过不断宣传/品牌影响力&#xff0c;获得更多有意向的人&#xff0c;而有意向的用户也需要找到靠谱的品牌及清晰流程等。 在【雨科】平台可制作加盟商信息服务展…

通俗易懂讲乐观锁与悲观锁

浅谈乐观锁与悲观锁 乐观锁和悲观锁是Java并发编程中的两个概念。使用乐观锁和悲观锁可以解决并发编程中数据不一致性、死锁、性能差等问题&#xff0c;乐观锁与悲观锁的实行方式不同&#xff0c;所以其特性也不近相同&#xff0c;下文将详细介绍两者的特性与适用场景。 《熊…

MinIO学习笔记

MinIO学习笔记 MinIO简介Springboot整合MinioMinIO中的Bucket、ObjectMinioClient的常用API&#xff1a;操作bucketMinioClient的常用API&#xff1a;操作对象 MinIO集群部署纠删码模式部署单机多磁盘的纠删码模式部署分布式集群部署 Nginx 视频学习地址 MinIO简介 MINIO干什…

机器人非线性系统反馈线性化与解耦

机器人非线性系统的反馈线性化和解耦是控制理论中的两个重要概念&#xff0c;它们分别用于简化系统分析和设计过程&#xff0c;提高控制系统的性能。 首先&#xff0c;反馈线性化是一种将非线性系统转化为线性系统的技术。在机器人控制中&#xff0c;由于机器人本身是一个强耦…

什么是最大路径?什么是极大路径?

最近学习中&#xff0c;在这两个概念上出现了混淆&#xff0c;导致了一些误解&#xff0c;在此厘清。 最大路径 在一个简单图G中&#xff0c;u、v之间的距离 d ( u , v ) min ⁡ { u 到 v 的最短路的长度 } d(u,v) \min \{ u到v的最短路的长度 \} d(u,v)min{u到v的最短路的…

20231911 2023-2024-2 《网络攻防实践》实践九报告

1.实践内容 1.1 缓冲区 缓冲区是内存空间的一部分&#xff0c;在内存中预留了一定的存储空间&#xff0c;用来暂时保存输入和输出等I/O操作的一些数据&#xff0c;这些预留的空间就叫做缓冲区。 1.2 shellcode shellcode是一段用于利用软件漏洞而执行的代码&#xff0c;也可以…

第十四届蓝桥杯大赛软件赛国赛C/C++ 大学 B 组 数三角

//枚举顶点。 //不存在等边三角形 #include<bits/stdc.h> using namespace std; #define int long long const int n2e311; int a,b,c,l[n],r[n]; signed main() {ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>a;for(int i1;i<a;i){cin>>…

【初阶数据结构】带头双向循环链表讲解

前言 &#x1f4da;作者简介&#xff1a;爱编程的小马&#xff0c;正在学习C/C&#xff0c;Linux及MySQL。 &#x1f4da;本文收录与初阶数据结构系列&#xff0c;本专栏主要是针对时间、空间复杂度&#xff0c;顺序表和链表、栈和队列、二叉树以及各类排序算法&#xff0c;持…

开源连锁收银系统哪个好

针对开源连锁收银系统的选择&#xff0c;商淘云是一个备受关注的候选。商淘云以其功能丰富、易于定制和稳定性等优势&#xff0c;吸引了众多企业和开发者的关注。下面将从四个方面探讨商淘云开源连锁收银系统的优势&#xff1a; 首先&#xff0c;商淘云提供了丰富的功能模块。作…