vue+element+echarts饼状图+可折叠列表
html:
<div id="echartsDiv" style="width: 48%; height: 430px; float: left;">
</div>
<div id="tableDiv" style="width: 52%;float: left;">
<el-table :data="tableData" border row-key="id" style="margin: 0 auto" :row-class-name="getRowClassName">
<el-table-column fixed type="index" label="序号" align="center" show-overflow-tooltip></el-table-column>
<el-table-column fixed prop="sourceName" label="投诉方式" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="totalCount" label="数量" align="center" show-overflow-tooltip></el-table-column>
<el-table-column prop="completedPercent" label="百分比" align="center" show-overflow-tooltip></el-table-column> </el-table>
</div>
js:
var vue = new Vue({
el: '#app',
data: {
// 指定图表的配置项和数据
option : {
// 图标标题
title : {
text: '投诉方式统计',
x:'center'
},
// 提示框组件
tooltip : {
trigger: 'item',
// 字符串模板,饼图、仪表盘、漏斗图: {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
formatter: "{a}</br>{b} : {c} ({d}%)"
},
// 图例组件
legend : {
orient: 'horizontal',
bottom: 'bottom',
data: []
},
series : {
name: '投诉方式',
type: 'pie',
radius : '50%',
center: ['50%', '50%'],
label : {
normal : {
show : true,
formatter : "{b} : {c} ({d}%)"
}
},
data:[],
itemStyle: {
emphasis: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
},// 接口返回的结果集合
backResultData:[],
// 表格数据
tableData:[],
// 行展开后的子表格数据
subTableData:[]
},
successCallBack : function(result){
if(result.success){
// 接口返回的结果集合
backResultData = result.data;
// 设置饼图数据,普通for循环遍历,饼图去除总计列
for(var i=0; i<result.data.length-1; i++){
var resultData = result.data[i];
if(!resultData.parentName){
self.option.legend.data.push(resultData.sourceName);
self.option.series.data.push({
value : parseInt(resultData.totalCount),
name : resultData.sourceName
});
}
}
// 设置表格数据
for(var i=0; i<result.data.length; i++){
// 取出返回结果集合中的对象
changeObj = result.data[i];
if(!changeObj.parentName){
// 设置子表格数据
for(var j=0; j<backResultData.length-1; j++){
if(backResultData[j].parentName==changeObj.sourceName){
self.subTableData.push(backResultData[j]);
}
}
// 给changeObj对象添加children属性,并赋值一个由接口返回列表中对象组成的数组
changeObj.children=self.subTableData;
self.tableData.push(changeObj);
}
// 存放子表格数据的数组每次父表元素之后都置空
self.subTableData=[];
// 百变对象置空
changeObj={};
}
console.log(self.tableData);
// 基于准备好的DOM,初始化echarts实例
var myChart = echarts.init(document.getElementById('echartsDiv'));
// 使用刚指定的配置项和数据显示图表
myChart.setOption(self.option);
}
}
效果:

其中,只有element2.8及其以上版本才支持列表折叠子列表的,前面版本支持列表展开行是本行的详情信息;
vue+element+echarts饼状图+可折叠列表的更多相关文章
- Echarts 饼状图自定义颜色
今天给饼状图着色问题,找了好久 终于找到了 话不多说直接上代码 $.ajax({ url: "/HuanBaoYunTai/ajax/HuanBaoYunTaiService.ashx&qu ...
- jquery echarts 饼状图
var myChart = echarts.init(document.getElementById('myChart')); option = { title : { text: '某站点用户访问来 ...
- echarts 饼状图调节 label和labelLine的位置
原理 使用一个默认颜色为透明的,并且只显示labelLine的饼状图 然后通过调节这个透明的饼状图 以达到修改labelLine的位置 echarts地址 https://gallery.echart ...
- canvas图表详解系列(3):动态饼状图(原生Js仿echarts饼状图)
本章建议学习时间4小时 学习方式:详细阅读,并手动实现相关代码(如果没有canvas基础,需要先学习前面的canvas基础笔记) 学习目标:此教程将教会大家如何使用canvas绘制各种图表,详细分解步 ...
- ECharts饼状图添加事件
和柱状图添加事件没有区别,详情如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content ...
- echarts 饼状图 改变折线长度
$(function (){ //ups部分 var myChart = echarts.init(document.getElementById('result')) var option = { ...
- echarts 饼状图
说明:这是我做项目时自己写的小例子,里面有冗余的参数. 开发环境 vs2012 asp.net mvc4 c# 1.显示效果 2.HTML代码 <%@ Page Language=" ...
- Echarts饼状图
<head> <meta charset="utf-8"> <title>ECharts</title> <script sr ...
- echarts饼状图位置设置
series: { name: "流量占比分布", type: "pie", radius: ["40%", "60%" ...
随机推荐
- mysql的安装,一步一步的教你
1.下载mysql安装包 ,我这里安装的是mysql-5.6.41-winx64 (https://downloads.mysql.com/archives/community/) 选择自己的版本 我 ...
- 史上最详细的Android消息机制源码解析
本人只是Android菜鸡一个,写技术文章只是为了总结自己最近学习到的知识,从来不敢为人师,如果里面有不正确的地方请大家尽情指出,谢谢! 606页Android最新面试题含答案,有兴趣可以点击获取. ...
- golang web框架 kratos中的日志框架
kratos是bilibili开源的一个web框架. 日志用法: logger.go package kratoslog import ( "flag" "github. ...
- 【XXE学习】XML外部实体注入
一.XML外部实体注入介绍 1.1 XXE简介 XML外部实体注入(XML External Entity Injection)也就是人们(mian shi guan )常说的XXE啦,见名知意,就是 ...
- Linux-常见报错注释
1. command not found 命令没有找到 2. No such file or directory 没有这个文件或目录 3. Permission denied ...
- luogu P2473 奖励关
奖励关 看到数据范围,想到状压,那问题就是如何设计方程 设\(dp[i][j]\)表示在第\(i\)轮的时候,状态为\(j\)时的最优策略所拿的分值,\(j\)的二进制下为1的位置,表示选了这个宝物, ...
- docker 安装 sonarQube
sonarQube 是一款开源代码检测工具.本篇介绍通过 docker 来安装.大概的一个运作流程是这样的,先通过 sonar-scanner 插件扫描代码,把数据存储到数据库,sonarQube 读 ...
- SQL Server中的distinct(不允许重复)
参考网址:https://blog.csdn.net/tswc_byy/article/details/81835023 一.建库和建表create database scortuse scortcr ...
- python turtle的使用
turtle.pendown() # 放下画笔 turtle.penup() # 抬起画笔 turtle.pensize(int) # 设置画笔宽度,值为整数型 turtle.forward(f ...
- DeltaLake数据湖解决方案
Delta Lake 是DataBricks公司推出的一种数据湖解决方案,Delta为该方案的核心组件.围绕数据流走向(数据入湖从流入数据湖.数据组织管理.数据查询到流出数据湖)推出了一系列功能特性, ...