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. PHP-Audit-Labs-Day1 - in_array函数缺陷

    函数缺陷原理分析 先看一段简单的源代码 class Challenge{ const UPLOAD_DIRECTORY = './solutions/'; private $file; private ...

  3. 关于stm32 HardFault_Handler 异常的处理 死机

    在系统开发的时候,出现了HardFault_Handler硬件异常,也就是死机,尤其是对于调用了os的一系统,程序量大,检测堆栈溢出,以及数组溢出等,找了半天发现什么都没有的情况下,估计想死的心都有了 ...

  4. JavaScript学习06(操作BOM和表单)

    操作BOM window 所有浏览器都支持 window 对象.它代表浏览器的窗口. 所有全局 JavaScript 对象,函数和变量自动成为 window 对象的成员. 全局变量是 window 对 ...

  5. 一篇文章让你搞懂如何通过Nginx来解决跨域问题

    Nginx跨域实现   首先大家要搞清楚什么是跨域,为什么会有跨域情况的出现.哪些情况属于跨域? 跨域:由于浏览器的同源策略,即属于不同域的页面之间不能相互访问各自的页面内容 注:同源策略,单说来就是 ...

  6. Xilinx约束学习笔记(二)—— 定义时钟

    2. 定义时钟 2.1 关于时钟 为了获得最佳精度路径覆盖信息,必须正确定义时钟. 时钟要定义在时钟树的根 pin 或 port 上,称为 source point. 时钟的边缘应该由周期和波形进行组 ...

  7. 模拟7 T3 寿司题解

    题目要求可以转化成一个01串,让通过最少次数把序列变成中间是0,两端是1: 首先我们可以考虑一些性质: 最优解一定是每次操作都把0和1交换 这个很好理解,如果你交换同一种东西,跟没换一样 这个题卡就卡 ...

  8. NOIP 模拟 $20\; \rm y$

    题解 \(by\;zj\varphi\) 首先发现一共最多只有 \(2^d\) 种道路,那么可以状压,(不要 \(dfs\),会搜索过多无用的状态) 那么设 \(f_{i,j,k}\) 为走 \(i\ ...

  9. dubbo-admin管理控制台安装

    拉项目切换分支到master git clone https://github.com/apache/dubbo-admin.git /var/tmp/dubbo-admin 打开项目修改配置 dub ...

  10. COM笔记-类厂

    CoCreateInstance实际上并没有直接创建COM组件 ,而是创建了一个被称作是类厂的组件.而所需的组件正是由些类厂创建的.类厂组件的唯一功能就创建其他的组件.创建组件的标准接口是IClass ...