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饼状图+可折叠列表的更多相关文章

  1. Echarts 饼状图自定义颜色

    今天给饼状图着色问题,找了好久 终于找到了 话不多说直接上代码 $.ajax({ url: "/HuanBaoYunTai/ajax/HuanBaoYunTaiService.ashx&qu ...

  2. jquery echarts 饼状图

    var myChart = echarts.init(document.getElementById('myChart')); option = { title : { text: '某站点用户访问来 ...

  3. echarts 饼状图调节 label和labelLine的位置

    原理 使用一个默认颜色为透明的,并且只显示labelLine的饼状图 然后通过调节这个透明的饼状图 以达到修改labelLine的位置 echarts地址 https://gallery.echart ...

  4. canvas图表详解系列(3):动态饼状图(原生Js仿echarts饼状图)

    本章建议学习时间4小时 学习方式:详细阅读,并手动实现相关代码(如果没有canvas基础,需要先学习前面的canvas基础笔记) 学习目标:此教程将教会大家如何使用canvas绘制各种图表,详细分解步 ...

  5. ECharts饼状图添加事件

    和柱状图添加事件没有区别,详情如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content ...

  6. echarts 饼状图 改变折线长度

    $(function (){ //ups部分 var myChart = echarts.init(document.getElementById('result')) var option = { ...

  7. echarts 饼状图

    说明:这是我做项目时自己写的小例子,里面有冗余的参数. 开发环境 vs2012 asp.net mvc4  c# 1.显示效果 2.HTML代码 <%@ Page Language=" ...

  8. Echarts饼状图

    <head> <meta charset="utf-8"> <title>ECharts</title> <script sr ...

  9. echarts饼状图位置设置

    series: { name: "流量占比分布", type: "pie", radius: ["40%", "60%" ...

随机推荐

  1. mysql的安装,一步一步的教你

    1.下载mysql安装包 ,我这里安装的是mysql-5.6.41-winx64 (https://downloads.mysql.com/archives/community/) 选择自己的版本 我 ...

  2. 史上最详细的Android消息机制源码解析

    本人只是Android菜鸡一个,写技术文章只是为了总结自己最近学习到的知识,从来不敢为人师,如果里面有不正确的地方请大家尽情指出,谢谢! 606页Android最新面试题含答案,有兴趣可以点击获取. ...

  3. golang web框架 kratos中的日志框架

    kratos是bilibili开源的一个web框架. 日志用法: logger.go package kratoslog import ( "flag" "github. ...

  4. 【XXE学习】XML外部实体注入

    一.XML外部实体注入介绍 1.1 XXE简介 XML外部实体注入(XML External Entity Injection)也就是人们(mian shi guan )常说的XXE啦,见名知意,就是 ...

  5. Linux-常见报错注释

    1. command not found 命令没有找到 2. No such file or directory         没有这个文件或目录 3. Permission denied     ...

  6. luogu P2473 奖励关

    奖励关 看到数据范围,想到状压,那问题就是如何设计方程 设\(dp[i][j]\)表示在第\(i\)轮的时候,状态为\(j\)时的最优策略所拿的分值,\(j\)的二进制下为1的位置,表示选了这个宝物, ...

  7. docker 安装 sonarQube

    sonarQube 是一款开源代码检测工具.本篇介绍通过 docker 来安装.大概的一个运作流程是这样的,先通过 sonar-scanner 插件扫描代码,把数据存储到数据库,sonarQube 读 ...

  8. SQL Server中的distinct(不允许重复)

    参考网址:https://blog.csdn.net/tswc_byy/article/details/81835023 一.建库和建表create database scortuse scortcr ...

  9. python turtle的使用

    turtle.pendown() # 放下画笔  turtle.penup() # 抬起画笔  turtle.pensize(int) # 设置画笔宽度,值为整数型  turtle.forward(f ...

  10. DeltaLake数据湖解决方案

    Delta Lake 是DataBricks公司推出的一种数据湖解决方案,Delta为该方案的核心组件.围绕数据流走向(数据入湖从流入数据湖.数据组织管理.数据查询到流出数据湖)推出了一系列功能特性, ...