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 相关文章推荐
javascript 出生日期和身份证判断大全
Nov 13 Javascript
javascript 面向对象的JavaScript类
May 04 Javascript
json2.js的初步学习与了解
Oct 06 Javascript
动态加载js和css(外部文件)
Apr 17 Javascript
JQuery悬停控制图片轮播——代码简单
Aug 05 Javascript
jQuery on()方法示例及jquery on()方法的优点
Aug 27 Javascript
基于JQuery的购物车添加删除以及结算功能示例
Mar 08 Javascript
JavaScript动态绑定详解
Sep 14 Javascript
React Native验证码倒计时工具类分享
Oct 24 Javascript
详谈js中标准for循环与foreach(for in)的区别
Nov 02 Javascript
微信小程序中限制激励式视频广告位显示次数(实现思路)
Dec 06 Javascript
js+css实现全屏侧边栏
Jun 16 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
mysql5的sql文件导入到mysql4的方法
2008/10/19 PHP
php从文件夹随机读取文件的方法
2015/06/01 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
php表单加入Token防止重复提交的方法分析
2016/10/10 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
vue如何实现observer和watcher源码解析
2017/03/09 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
微信小程序 仿美团分类菜单 swiper分类菜单
2017/04/12 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
JS实现简易换图时钟功能分析
2018/01/04 Javascript
微信小程序自定义可滑动日历界面
2018/12/28 Javascript
详解微信小程序-canvas绘制文字实现自动换行
2019/04/26 Javascript
JavaScript交换变量的常用方法小结【4种方法】
2020/05/07 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
利用Python的Django框架中的ORM建立查询API
2015/04/20 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
python字符串反转的四种方法详解
2019/12/02 Python
Python tkinter实现图片标注功能(完整代码)
2019/12/08 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
总结Pyinstaller的坑及终极解决方法(小结)
2020/09/21 Python
python 模拟登陆163邮箱
2020/12/15 Python
ProBikeKit新西兰:自行车套件,跑步和铁人三项装备
2017/04/05 全球购物
Goodee官方商店:迷你投影仪
2021/03/15 全球购物
Java的for语句中break, continue和return的区别
2013/12/19 面试题
总经理职责
2013/12/22 职场文书
副总经理岗位职责
2014/03/16 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
竞选班干部演讲稿400字
2014/08/20 职场文书
学习党章的体会
2014/11/07 职场文书
在校证明模板
2015/06/17 职场文书
音乐研修感悟
2015/11/18 职场文书
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL