vue项目树状图的实现

本文介绍了在一个Vue项目中如何利用G6图可视化引擎实现树状图的背景、相关技术及详细集成步骤。在项目需求下,选择G6因其直观美观的树状图示例。集成过程中,封装了树状图渲染的公共方法,处理数据格式,并在合适时机调用,同时注意数据切换时的容器清理,以避免多个树状图的并存。
摘要由CSDN通过智能技术生成

1.实现背景

项目需要直观的展示元素之间的关系,需要实现一个树状图

数据可视化可以用Echarts HighCharts,但是相关树状图的示例不够直观,且不美观

几种工具之间比较,选择了蚂蚁金服的G6来实现(在开发期间有树状图的示例,之后再看发现这个例子没有了)

2.相关技术介绍

G6图可视化引擎(蚂蚁数据可视化 G6)

G6 是一个图可视化引擎。它提供了图的绘制、布局、分析、交互、动画等图可视化的基础能力。旨在让关系变得透明,简单。让用户获得关系数据的 Insight。

3.项目集成

3.1树状图渲染公共方法

因为页面有多处用到了树状图的逻辑,所以将方法封装成了公共的方法

文件路径 /src/utils/treeNode.js

3.1.2handleTree 处理渲染数据

主要用于将后端返回的数据处理为可以成功渲染树状图的数据格式

具体逻辑解释见代码中注释

export function handleTree(data,currentComponent){
  // 判断数据类型 根节点只有一个,不是数组
  if(Array.isArray(data)){
    data.forEach(item => {
      // data是后端返回数据 处理为有 id label style键值的对象,主要根据这几个值渲染树状图
    
实现vue+echarts树状图,可以按照以下步骤操作: 1. 安装echarts:在项目中安装echarts依赖,可以使用npm或yarn命令进行安装。 2. 引入echarts:在组件中引入echarts,并创建一个echarts实例。 3. 获取数据:获取需要展示的树状图数据,可以使用ajax或axios等方式进行获取。 4. 处理数据:将获取到的数据进行递归处理,生成符合echarts树状图要求的数据格式。 5. 配置echarts:设置树状图的布局、样式、节点名称等配置。 6. 渲染树状图:将配置好的echarts实例渲染到DOM中。 以下是一个简单的vue+echarts树状图示例代码: ``` <template> <div ref="treeChart" style="height: 500px;"></div> </template> <script> import * as echarts from 'echarts'; export default { mounted() { this.initTreeChart(); }, methods: { initTreeChart() { const treeChart = echarts.init(this.$refs.treeChart); // 模拟数据 const data = { name: 'root', children: [ { name: 'node1', children: [ { name: 'node1.1' }, { name: 'node1.2' } ] }, { name: 'node2' } ] }; // 处理数据 const option = { series: [ { type: 'tree', data: [data], top: '1%', left: '7%', bottom: '1%', right: '20%', symbolSize: 7, label: { position: 'left', verticalAlign: 'middle', align: 'right' }, leaves: { label: { position: 'right', verticalAlign: 'middle', align: 'left' } }, expandAndCollapse: true, animationDuration: 550, animationDurationUpdate: 750 } ] }; // 渲染树状图 treeChart.setOption(option); } } } </script> ```
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值