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. 安装Linux的步骤 包含linux下安装jdk,及mysql

    https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/isos/x86_64/ 镜像下载网址,4G 左右. 安装VMware 15版本 一路下一步, ...

  2. pwnable.kr之brainf*ck

    pwnable.kr之brainf*ck 今天又是被难倒的一天Orz,个人感觉pwnable.kr上的题都比较剑走偏锋,仔细做过去,一定会有很大的收获. 不多说了,今天看的是第二关的第一道题:brai ...

  3. XCTF-Web进阶-upload1

    显然是让我们上传文件,思路当然是上传一个木马文件,然后通过蚁剑连接查看目录获取flag. 但是当我们想要上传php文件的时候会出现弹窗,并且连"上传"按钮都被禁用了. ext = ...

  4. python ui自动化之多窗口切换

    wd.current_window_handle #获取当前窗口句柄 wd.window_handles #获取所有窗口句柄 wd.switch_to.window(wd.window_handles ...

  5. 我快被Framework源码烦死了!

    前言 这段时间,忙到没时间学新东西,都有点心有余而力不足,想着抽空补补课,于是重读了Framework源码. 因为Framework源码太重要了,像掉帧监控.函数插装.慢函数检测.ANR 监控.启动监 ...

  6. 『Java』成员内部类 匿名内部类

    成员内部类 成员方法类是定义在一个类中的方法外的类,例如: public class Outer{ // 外部类 class Inner { // 内部类 // 内部类成员 } // 外部类成员 } ...

  7. Linux命令(八)之安装Jdk、Tomcat

    .personSunflowerP { background: rgba(51, 153, 0, 0.66); border-bottom: 1px solid rgba(0, 102, 0, 1); ...

  8. rancher2.2.2搭建pipeline

    1.通过docker容器安装gitlab代码库 docker run --detach \--hostname 192.168.102.62 \ --env GITLAB_OMNIBUS_CONFIG ...

  9. Build a Beautiful oh-my-zsh Themes

    Selection Criteria double line; provide username, hostname, current directory; provide information o ...

  10. SpringBoot开发九-生成验证码

    需求介绍-生成验证码 先生成随机字符串然后利用Kaptcha API生成验证图片 代码实现 先在pom.xml引入 <dependency> <groupId>com.gith ...