vue table中使用多选的问题(翻页后如何保存已选项),联动echarts图表实现流量监控

流量监控项目需求:

根据表格数据,添加多选功能,默认全选,根据已选项更新图表视图

1.表格需要多选

2.要联动图表,所以关键是要利用表格多选的触发回调函数

vue table中使用多选:

很简单,只需要在table中增开一项,type定义为selection即可:

如何默认列表全选呢?

先关联table:

数据加载完成以后,获取列表数据长度,手动循环切换状态(toggleRowSelection是关键,通过这个方法来触发echarts的刷新):

OK,现在可以实现默认全选状态了:

如何与echarts图表联系起来呢?

我使用的图有两个,饼图和折线图,先说饼图,饼图需要的是数据项名称和数据,即name和value,方法是我们ajax请求成功后,对数据进行循环,获取到所需的name和value值,具体方法不赘述了,需要了解echarts的安装、使用、配置的,可以前往echarts官网查看文档,也可以翻看我上一篇关于echarts的博文,里面记录了关于图表的使用和配置,数据的规则,如何刷新视图,以及踩过的坑,这里就不重复说明了,直接上代码:

实现的效果为:

项目中,折线图的需求是,显示十条折线,横坐标为当前月往前推五个月,也就是近半年的数据,纵坐标为每月的点击量,OK,添加折线图,通过多选框的监听回调事件toggleRowSelection来获取已选择的项,通过循环拿出每一项的ID,当然这个ID是你自己数据的ID,然后通过接口将含有ID列表的数组发往服务器,返回数据中包含多个月,以及每个月的点击量,这样就实现了每次点击都会刷新折线图,这里有个需要注意的,就是现在默认是全选,当我打印出已选项的时候回发现,每次刷新页面都是选择整个表格从1-10的数据,也就是说会触发10次监听事件,而我们只需要最后全选状态下的最后一次,所以这里我加了个判断,默认firstTime为true,当我请求的数据总数和已选择的数据总数相同,并且是第一次进入时,才生成折线图,这样就把10次ajax请求缩减为了1次:

生成折线图:

OK,现在可以把折线图,以及多选数据联动实现了:

vue中使用table多选,翻页后已选项如何保存呢?

使用row-key属性获取已选项的ID,当然这个ID也是你自己数据的ID,比如我下面红框中的toanID,然后建立一个空数组保存已选项的ID,就OK了:

table中:

data中:

methods中:

OK了,现在功能都已实现,饼状图后台现在还没有给我根据ID查询总数的接口,后期再加上去,希望本文对你能有所帮助!

原文地址:https://www.cnblogs.com/wangqiao170/p/9273699.html

时间: 2024-10-07 10:59:14

vue table中使用多选的问题(翻页后如何保存已选项),联动echarts图表实现流量监控的相关文章

vue2.0在table中实现全选和反选

其实在去年小颖已经写过一篇:Vue.js实现checkbox的全选和反选 小颖今天在跟着慕课网学习vue的过程中,顺便试试如何在table中实现全选和反选,页面的css样式是直接参考慕课网的样式写的,js是小颖自己写哒,欢迎大家吐槽和点赞,嘻嘻 慕课网demo的  git 地址:ShoppingCart 页面效果: 具体怎么实现的呢? 因为上篇文章:使用localstorage来存储页面信息 中已经有写项目是怎么创建的所以小颖在这里就不重复了,其实只是在上篇文章的基础上稍微做了改动: App.v

实现前端table中checkbox全选功能,并将选中的数据发送到后端

一.需求 1. 点击这个checkbox按钮,会选中下面所用checkbox,当然在选中的情况下点击,会将下面所有选中的checkbox取消: 2. 当下面使用submit的提交按钮时,会将所有checkbox选中的数据提交给后端: 二.实现 1.实现全选checkbox功能 技术分析:其实这里可以使用js活着jquery两种方式,我暂时使用的是js中的dom实现的,具体代码如下: <!DOCTYPE html> <html> <head> <title>实

实现table中checkbox复选框、以及判断checked是否被选中、js操作checkedbox选中

上图是实现效果. 下面贴代码 表的第一行也就是<th>中的代码,onclick事件是实现全选或者全不选效果. <th> <input id="allboxs" onclick="allcheck()" type="checkbox"/> </th> td中的代码 <td> <input name="boxs" type="checkbox"/

table中列复选框全选,再选 效果

<table class="table table-striped sortable table-bordered table-hover " id="zdnews"> <thead> <tr> <th>运单号</th> <th>发货人</th> <th>收货人</th> <th>货物信息</th> <th id="pa

sublimeText3 中配置sass环境,并将编译后文件保存到指定文件夹

sass基于ruby引擎,所以安装时ass.compass之前需要安装ruby.具体的链接应该是(http://rubyinstaller.org/downloads).下载并安装相应的版本,勾选第二项(要在cmd中使用ruby). 打开命令行,输入ruby -v,查看我们安装的ruby版本信息. ruby安装完成之后,打开ruby的command面板,接下来就是安装sass了.Windows下安装sass有多种方法,这里说一下其中的两种: 1.到 Rubygems(http://rubygem

jQuery+SpringMVC中的复选框选择与传值

一.checkbox选择 在jQuery中,选中checkbox通用的两种方式: $("#cb1").attr("checked","checked");$("#cb1").attr("checked",true); 对应的jQuery函数,主要完成三个功能: 1.第一个复选框选中或取消选中,则下面的复选框为全选或取消全选: 2.当下面的复选框全部选中时,则将第一个复选框设置为选中,当下面的复选框中有一个没

【tool】软件测试中翻页功能测试用例设计

翻页功能我们常碰到的一般有以下几个功能: 1.首页.上一页.下一页.尾页. 2.总页数,当前页数 3.指定跳转页 4.指定每页显示条数 当然,有一些是少于多少页,全部以数字的形式显示,多于多少页后,才出现下一页的控件.本文暂且用以上四点来做为通用的用例来设计吧. 对于1翻页链接或按钮的测试,主要要检查的测试点有: 1.有无数据时控件的显示情况 2.在首页时,首页和上一页是否能点击 3.在尾页时,下一页和尾页是否能点击 4.在非首页和非尾页时,四个按钮功能是否正确 5.翻页后,列表中的记录是否仍按

vue项目中的elementUI的table组件导出成excel表

1.安装依赖:npm install --save xlsx file-saver 2.在放置需要导出功能的组件中引入 import FileSaver from 'file-saver' import XLSX from 'xlsx' 3.HTML中的设置,简单来说就是给需要导出的table标签el-table上加一个id:如exportTab,对应下面的exportExcel方法中的 document.querySelector('#exportTab') 4.在methods中设置真正实现

Vue 实例中的生命周期钩子

Vue 框架的入口就是 Vue 实例,其实就是框架中的 view model ,它包含页面中的业务处理逻辑.数据模型等,它的生命周期中有多个事件钩子,让我们在控制整个Vue实例的过程时更容易形成好的逻辑. Vue 实例 在文档中经常会使用 vm 这个变量名表示 Vue 实例,在实例化 Vue 时,需要传入一个选项对象,它可以包含数据(data).模板(template).挂载元素(el).方法(methods).生命周期钩子(lifecyclehook)等选项. Vue 实例化的选项 需要注意的