当前位置: 首页 > news >正文

关于如何在ElementUI中实现统计Table筛选结果数量

在开发单位自己的系统时,领导提了这个需求,在看了ElementUI发现并没有实现这个功能。

遂向官方求解,得回复:自己在filter-method 中实现。于是便有了思路。

 

这里本人使用了一个比较暴力的方法,仅供参考:

1、给所有column的filter-method事件绑定一个对应方法:

     filterMethodsXXX(value, row){
        if(row.brandName === value) {
          if(this.filterArray.filterXXXSet.indexOf(row.id)===-1){
            this.filterArray.filterXXXSet.push(row.id);
          }
          return true;
        }else{
            return false;
        }
      }

意思就是给每个column设置一个数组用于存储筛选结果。

2、在Table的filter-change事件中绑定一个方法,使用使用ES6 中的Set 数据结构进行交集操作(数组为空则跳过计算)

      filterChange(filters){
        let tempSet = new Set(this.filterArray.filterBrandNameArray);
        for (let key in this.filterArray) {
          if(this.filterArray[key].length===0){
            continue;
          }
          tempSet = new Set(this.filterArray[key].filter(x => tempSet.has(x)));
        }

最终tempSet的长度即为统计值。

 

        let a = new Set([1, 2, 3]);
        let b = new Set([3, 5, 2]);
        // 交集
        let intersectionSet = new Set([...a].filter(x => b.has(x)));
        // [2,3]

 

之后发现其实可以用array的indexOf来做,没必要用Set,于是:

        let tempSet = this.filterArray.filterBrandNameArray;
        for (let key in this.filterArray) {
          if(this.filterArray[key].length===0){
            continue;
          }
          tempSet = this.filterArray[key].filter(x => {return tempSet.indexOf(x)!==-1;});
        }

 

转载于:https://www.cnblogs.com/blueroses/p/8032952.html

相关文章:

  • iOS网络基础 实战进阶篇
  • 使用ELK构建分布式日志分析系统
  • 后端的一些经验与心得
  • 超过父控件的部分不能响应事件怎么办
  • WKWebView的使用总结(oc与js交互使用心得)
  • JavaScript 中的错误隔离
  • golang测试
  • java在线聊天项目 客户端登陆窗口LoginDialog的注册用户功能 修改注册逻辑 增空用户名密码的反馈 增加showMessageDialog()提示框...
  • 八个维度,谈谈产品经理的分类与发展方向
  • 第一课 安装 登陆CentOS 7
  • 创建和使用数据库
  • CSS中使用expression完美设置页面最小宽度
  • Android 从SetContentView()谈起
  • 为什么volatile不能保证原子性而Atomic可以?
  • SQL优化常用方法44
  • python3.6+scrapy+mysql 爬虫实战
  • Java深入 - 深入理解Java集合
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Linux gpio口使用方法
  • ng6--错误信息小结(持续更新)
  • node和express搭建代理服务器(源码)
  • Object.assign方法不能实现深复制
  • spring + angular 实现导出excel
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • 阿里云ubuntu14.04 Nginx反向代理Nodejs
  • 给初学者:JavaScript 中数组操作注意点
  • 项目管理碎碎念系列之一:干系人管理
  • 一、python与pycharm的安装
  • 异常机制详解
  • Mac 上flink的安装与启动
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​第20课 在Android Native开发中加入新的C++类
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • #include<初见C语言之指针(5)>
  • (libusb) usb口自动刷新
  • (vue)页面文件上传获取:action地址
  • (编程语言界的丐帮 C#).NET MD5 HASH 哈希 加密 与JAVA 互通
  • (多级缓存)多级缓存
  • (附源码)springboot 房产中介系统 毕业设计 312341
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (七)理解angular中的module和injector,即依赖注入
  • (转) SpringBoot:使用spring-boot-devtools进行热部署以及不生效的问题解决
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • (转)全文检索技术学习(三)——Lucene支持中文分词
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .htaccess配置重写url引擎
  • .NET/C# 中你可以在代码中写多个 Main 函数,然后按需要随时切换
  • .NET导入Excel数据
  • .net中生成excel后调整宽度
  • @Conditional注解详解
  • @GlobalLock注解作用与原理解析
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [.NET 即时通信SignalR] 认识SignalR (一)
  • []Telit UC864E 拨号上网
  • [2021]Zookeeper getAcl命令未授权访问漏洞概述与解决