Echart饼形图和折线图的循环展示及选择展示
需求:根据不同的入参调同一接口,循环展示一组饼形图或折线图;
主要问题:在于给定的数据格式不符合图表的配置项格式,需要拆分组装数据;首先默认展示几个图表,当选中一个类别,需要展示其中一个的时候,页面中的Dom没有清除,用了clear()无效,于是乎,就在页面中做两个div,一个用于展示选中的某一项,一个用于展示所有图表。
- <div v-if="showPie1">
- <div id="chart-row" v-for="(item,index) in dataList" :key="index" style="display: flex;justify-content: center;margin-bottom: 40px;width: 80%;margin:0 auto;">
- <div class="left-chart" :id="'left-chart-'+item.id" style="width:500px;height: 400px;margin-bottom:20px;padding-top:10px;border: 1px solid #f0f0f0;">
- <img src="../../assets/timg.jpg" alt="暂无图片" style="width:100px;height:100px;"></div>
- <div class="right-chart" :id="'right-chart-'+item.id" style="width:500px;height: 400px;margin-bottom:20px;padding-top:10px;border: 1px solid #f0f0f0;">
- <img src="../../assets/timg.jpg" alt="暂无图片" style="width:100px;height:100px;"></div>
- </div>
- </div>
- <div id="pie" v-if="showPie2">
- <div id="chart-row" v-for="(item,index) in itemList" :key="index" style="display: flex;justify-content: center;margin-bottom: 40px;width: 80%;margin:0 auto;">
- <div class="left-chart" :id="'left-chart-'+item.id" style="width:500px;height: 400px;margin-bottom:20px;padding-top:10px;border: 1px solid #f0f0f0;"><img src="../../assets/timg.jpg" alt="暂无图片" style="width:100px;height:100px;"></div>
- <div class="right-chart" :id="'right-chart-'+item.id" style="width:500px;height: 400px;margin-bottom:20px;padding-top:10px;border: 1px solid #f0f0f0;"><img src="../../assets/timg.jpg" alt="暂无图片" style="width:100px;height:100px;"></div>
- </div>
- </div>
id为chart-row的是选中某一项的dom,id为pie的是默认展示所有图表的dom.
dom的id取名跟绑定图表初始化的dom名一致,且命名是有规律的。
我这里是同时展示两种类型的图表,成功率和明细,使用axios.all()方法将数据同时请求回来,在请求接口时,使用ES7中的async异步执行,保证数据在.all方法中能够全部获取完。
- //获取折线图成功失败率接口定义
- async getLeftLineData(list){
- var data = {}
- if(this.filters.invoice){
- data = { ticketType: this.filters.invoice}
- }else{
- data = { ticketType: list.id }
- }
- return this.$api.report.ocrMonthCount(data)
- },
获取到的数据在axios.all方法里做处理,其中optionList是存放循环入参信息的;
- optionList: [
- //选择
- { value: '', label: "请选择"},
- { value: "001", label: "选择一" },
- { value: "002", label: "选择二" },
- { value: "003", label: "选择三" },
- ],
- for(let i = 0; i < optionList.length; i++){
- axios.all([this.getLeftLineData(optionList[i]), this.getRightLineData(optionList[i])])
- .then(res=>{
- let leftData = res[0].data
- let rightData = res[1].data
- var xAxis = [];
- var failTotal = []
- var successTotal = []
- var successFailurArry = [1, 2]
- for(var y = 0; y<successFailurArry.length; y++){
- // 基于准备好的dom,初始化echarts实例,左侧占比
- var myChart = echarts.init(document.getElementById('left-line-'+optionList[i].id));
- for (var j = 0; j < leftData.fail.length; j++) {
- xAxis.push(leftData.fail[j].monthName);
- failTotal.push(leftData.fail[j].monthTotal);
- }
- for (var k = 0; k < leftData.success.length; k++) {
- successTotal.push(leftData.success[k].monthTotal);
- }
- // 绘制图表
- var seriesOption = {
- //配置信息
- }
- myChart.setOption(seriesOption, true);
- }
有时,myChart.clear()无效,可以手动的将上一次定义的值清空。
Echart饼形图和折线图的循环展示及选择展示的更多相关文章
- 使用echart 做出数据折线图
代码如下: // 基于准备好的dom,初始化echarts图表var myChart = echarts.init(document.getElementById("main")) ...
- react-echarts之折线图的显示
react中想要实现折线图和饼图的功能,需要引入react-echarts包,然后再实现折线图的功能.我这里引用的版本是:0.1.1.其他的写法参echarts官网即可.下面详细讲解的是我在react ...
- HighCharts实现多数据折线图分列显示
HighCharts实现多数据折线图分列显示 BY ZYZ HighCharts是一个很好用的web端绘图插件,用起来很方便,它的官方支持很好.并且有中文API(不全然).画出来的图像也挺美丽的. 近 ...
- C# WinForm开发系列之c# 通过.net自带的chart控件绘制饼图,柱形图和折线图的基础使用和扩展
一.需要实现的目标是: 1.将数据绑定到pie的后台数据中,自动生成饼图. 2.生成的饼图有详细文字的说明. 1.设置chart1的属性Legends中默认的Legend1的Enable为false: ...
- ECharts折线图多个折线每次只显示一条
echart 两条折线图如何默认只显示一条,另一条隐藏呢 只需要在legend后加上, selectedMode: 'single', selectedMode [ default: true ] 图 ...
- swift app中展示折线图, 饼状图, 柱状图等数据图表
github 下载Charts-master SDK,该SDK有多种可自定义的图表样式 lineChart 正弦余弦线图 LineChart (cubic lines) LineChart (grad ...
- 微信小程序echart 折线图legend不显示的问题
最近使用小程序echart折线图,遇到表头一直不显示问题,查询之后解决方案:
- echart折线图,柱状图,饼图设置颜色
转载: 之前在做报表的时候用过echart 用完也就完了,而这次在用的时候已经忘了,所以这里简单记录一下,好记性不如烂笔头!!! 1.折线图修改颜色: xAxis: { type: 'category ...
- FusionCharts数据展示成饼状图、柱状图和折线图
FusionCharts数据展示成饼状图.柱状图和折线图 本文以展示柱状图为例进行介绍,当然这仅仅是一种方法而已:还有很多方法可以用于展示图表,例如echarts,自定义图表标签.使用jfreecha ...
随机推荐
- JarvisOJ level3_x64
这一题是和前面x86的差不多,都是利用了同一个知识点,唯一的区别就是使用的堆栈地址不同,x86是直接使用堆栈来传递参数的,而x64不同 x64的函数调用时整数和指针参数按照从左到右的顺序依次保存在寄存 ...
- 7)加了基础控制器Controller.php
文件目录展示: 改动代码展示: Controller.php <?php /** * Created by PhpStorm. * User: Interact * Date: 2017/8/2 ...
- 第十六届“二十一世纪的计算”学术研讨会 图灵奖获得者Butler W. Lampson主题演讲
Personal Control of Digital Data 图灵奖获得者Butler W. Lampson主题演讲" title="第十六届"二十一世纪的计算&qu ...
- leetcode第24题:两两交换链表中的节点
通过分析,这属于数据结构类型题目,但涉及到多次交换,也需要算法知识. 首先,我想的是,将链表中节点相互交换. class Solution: def swapPairs(self, head: Lis ...
- Excel中带字母的数字序列自增实现方法
示例: 在A1单元格输入以下公式,然后向下填充公式 =".mr"&ROW()&" {margin-right: "&ROW()& ...
- Android的HttpClient调用,冲突的解决办法
只适用部分情况 题外话 攻关百度自动发贴作推广失败,但登录已拿下.全扔有点浪费. 在登录的基础上写了个百度的自动签到系统,功能已实现([java,android,nodejs,.net]+nodejs ...
- Ionic3学习笔记(十四)使用 videogular2 实现视频播放以及遇到的一些问题
本文为原创文章,转载请标明出处 目录 使用 videogular2 安装 增加图标.字体支持 导入 module 举个例子 遇到的问题 iOS 端自动进入全屏播放 Android 端 autoplay ...
- YY孵化虎牙,陌陌收购探探:你更看好谁?
近日欢聚时代公布了2017第四季财报和全年财报,表现不错.其CFO 金秉表示,虎牙最近向美国证券交易委员会(SEC)提交了注册上市申请书草案文件,可能会在美国IPO上市,以便获取自己的投资者群体以融资 ...
- AtomicBoolean介绍
网上资料: 使用 AtomicBoolean 高效并发处理 "只初始化一次" 的功能要求: 1 privatestatic AtomicBoolean initialized = ...
- AI能帮我们造出一个无肉的世界吗?
AI听起来很遥远,其实已经渗透到我们的日常工作和生活中.在不远的未来,互联网.大数据.硬件的发展和软件的优化,乃至全社会的参与,人工智能将真正从实验室走进生活,它将成为改变我们生活的一部分.我们吃的肉 ...