vue实现前端列表多条件筛选


Posted in Javascript onOctober 26, 2020

本文实例为大家分享了vue实现前端列表多条件筛选的具体代码,供大家参考,具体内容如下

1、先上图:

vue实现前端列表多条件筛选

2、搜索条件绑定的数据是:

filterForm:{
 schoolName:'',//输入的学校名称
 position:'',//选择的区域区域
 schoolLevel:"",//选择的学校办别
},
schoolList:[
 {schoolName:'青岛市实验高级中学',schoolLevel:"",position:'山东省青岛市城阳区硕阳路69号'},
 {schoolName:'山东省青岛第二中学',schoolLevel:"",position:'山东省青岛市崂山区松岭路70号'},
 {schoolName:'山东省青岛第一中学',schoolLevel:"",position:'山东省青岛市市南区单县路46号'},
 {schoolName:'山东省青岛第三十九中学',schoolLevel:"",position:'市南区登州路5号'},
 {schoolName:'山东省青岛第六中学',schoolLevel:"",position:'山东省青岛市黄岛区云台山路66号'},
 {schoolName:'山东省青岛第十九中学',schoolLevel:"",position:'山东省青岛市即墨区鳌山卫街道卫场路69号'},
 {schoolName:'青岛艺术学校',schoolLevel:"",position:'青岛市李沧区九水路176号'},
 {schoolName:'山东省青岛第九中学',schoolLevel:"",position:'山东省青岛市黄岛区七星河路559号'},
 {schoolName:'青岛电子学校',schoolLevel:"",position:'山东省青岛市市北区台东一路118号'}
],//其中schoolList是元数据
resull:[]//搜索结果,也是列表循环的数据

3、监听:

watch: {
 // 监听对象变化
 filterForm:{
 handler(val, oldVal){
  if(val){
  // 如果筛选条件全为空,查全部;否则按条件筛选
  var objIsEmpty = this.filterForm.schoolName == '' && this.filterForm.schoolLevel == '' && this.filterForm.position == ''
  if(objIsEmpty){
   this.result = this.schoolList
  } else {
   // /拿到有值的参数
   let tempFilter = {};
   for(var key in this.filterForm) {
   if(typeof(this.filterForm[key]) != "undefined" && typeof(this.filterForm[key]) != "null" && this.filterForm[key] != null && this.filterForm[key] != "") {
    tempFilter[key] = this.filterForm[key];
   }
   }
   // console.log(tempFilter,'输出tempFilter')
   this.result = this.schoolList.filter(
   //筛选
   (item) => {
    let flag = false;
    for(key in tempFilter) {
    console.log(key,'输出key')
     if(item[key].toString().indexOf(tempFilter[key].toString()) >= 0) {
     flag = true;
     } else {
                    flag = false;
                    break;
                  }
                }
                if(flag) {
                  return item;
                }
              }
            );
            console.log(this.result,'输出筛选结果')
          }
        }
      },
      deep:true
    }
}

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

更多vue学习教程请阅读专题《vue实战教程》

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js setTimeout opener的用法示例详解
Oct 23 Javascript
JavaScript中函数(Function)的apply与call理解
Jul 08 Javascript
基于Jquery+div+css实现弹出登录窗口(代码超简单)
Oct 27 Javascript
JavaScript通过使用onerror设置默认图像显示代替alt
Mar 01 Javascript
JS刷新父窗口的几种方式小结(推荐)
Nov 09 Javascript
js自制图片放大镜功能
Jan 24 Javascript
jQuery插件FusionCharts实现的2D柱状图效果示例【附demo源码下载】
Mar 06 Javascript
vue.js利用defineProperty实现数据的双向绑定
Apr 28 Javascript
bootstrap多层模态框滚动条消失的问题
Jul 21 Javascript
ES6中Array.copyWithin()函数的用法实例详解
Sep 16 Javascript
Element-ui tree组件自定义节点使用方法代码详解
Sep 17 Javascript
原生JS与JQ获取元素的区别详解
Feb 13 Javascript
vue实现单一筛选、删除筛选条件
Oct 26 #Javascript
vue通过接口直接下载java生成好的Excel表格案例
Oct 26 #Javascript
基于elementUI竖向表格、和并列的案例
Oct 26 #Javascript
原生js实现贪吃蛇游戏
Oct 26 #Javascript
JavaScript实现五子棋小游戏
Oct 26 #Javascript
详解vue3.0 的 Composition API 的一种使用方法
Oct 26 #Javascript
vue3.0 加载json的方法(非ajax)
Oct 26 #Javascript
You might like
解析VS2010利用VS.PHP插件调试PHP的方法
2013/07/19 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
PHP实现统计在线人数功能示例
2016/10/15 PHP
PHP数组相加操作及与array_merge的区别浅析
2016/11/26 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
php post换行的方法
2020/02/03 PHP
js中将URL中的参数提取出来作为对象的实现代码
2011/08/16 Javascript
js文件缓存之版本管理详解
2013/07/05 Javascript
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
jQuery中after()方法用法实例
2014/12/25 Javascript
使用jQueryMobile实现滑动翻页效果的方法
2015/02/04 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
node.js读取文件到字符串的方法
2015/06/29 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
Node.js批量给图片加水印的方法
2016/11/15 Javascript
微信小程序 websocket 实现SpringMVC+Spring+Mybatis
2017/08/04 Javascript
原生js实现简单的模态框示例
2017/09/08 Javascript
基于jQuery选择器之表单对象属性筛选选择器的实例
2017/09/19 jQuery
极简主义法编写JavaScript类
2017/11/02 Javascript
JavaScript实现切换多张图片
2021/01/27 Javascript
python解析发往本机的数据包示例 (解析数据包)
2014/01/16 Python
Python实现针对给定字符串寻找最长非重复子串的方法
2018/04/21 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
Python3.7.0 Shell添加清屏快捷键的实现示例
2020/03/23 Python
Python3爬虫里关于Splash负载均衡配置详解
2020/07/10 Python
Python fileinput模块如何逐行读取多个文件
2020/10/05 Python
Python爬虫抓取论坛关键字过程解析
2020/10/19 Python
优质服务活动实施方案
2014/05/02 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
2015新学期开学寄语
2015/02/26 职场文书
运动会主持词大全
2015/07/02 职场文书
2016年情人节问候语
2015/11/11 职场文书
干货:如何写好工作总结报告!
2019/05/10 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
css3实现的加载动画效果
2021/04/07 HTML / CSS
5个pandas调用函数的方法让数据处理更加灵活自如
2022/04/24 Python