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 相关文章推荐
jQuery编辑器KindEditor4.1.4代码高亮显示设置教程
Mar 01 Javascript
JavaScript字符串插入、删除、替换函数使用示例
Jul 25 Javascript
ExtJS自定义主题(theme)样式详解
Nov 18 Javascript
Array 重排序方法和操作方法的简单实例
Jan 24 Javascript
jQuery中的val()示例应用
Feb 26 Javascript
js操作模态窗口及父子窗口间相互传值示例
Jun 09 Javascript
jQuery选择器源码解读(一):Sizzle方法
Mar 31 Javascript
JS中使用变量保存arguments对象的方法
Jun 03 Javascript
在html中引入外部js文件,并调用带参函数的方法
Oct 31 Javascript
详解Node.js利用node-git-server快速搭建git服务器
Sep 27 Javascript
详解基于Vue/React项目的移动端适配方案
Aug 23 Javascript
Vue实现商品飞入购物车效果(电商项目)
Nov 26 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
PHP判断远程图片或文件是否存在的实现代码
2014/02/20 PHP
PHP中if和or运行效率对比
2014/12/12 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
JavaScript执行效率与性能提升方案
2012/12/21 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
jQuery向后台传入json格式数据的方法
2015/02/13 Javascript
AngulerJS学习之按需动态加载文件
2017/02/13 Javascript
3分钟快速搭建nodejs本地服务器方法运行测试html/js
2017/04/01 NodeJs
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
详解vuejs2.0 select 动态绑定下拉框支持多选
2019/04/25 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
layui 实现二级弹窗弹出之后 关闭一级弹窗的方法
2019/09/18 Javascript
Python3之读取连接过的网络并定位的方法
2018/04/22 Python
浅谈pytorch和Numpy的区别以及相互转换方法
2018/07/26 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
Python实现打砖块小游戏代码实例
2019/05/18 Python
Python实现分数序列求和
2020/02/25 Python
python 瀑布线指标编写实例
2020/06/03 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
Python程序慢的重要原因
2020/09/04 Python
Python定时任务框架APScheduler原理及常用代码
2020/10/05 Python
使用纯 CSS 创作一个脉动 loader效果的源码
2018/09/28 HTML / CSS
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
美国内衣第一品牌:Hanes(恒适)
2016/07/29 全球购物
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
大学生期末自我鉴定
2014/02/01 职场文书
测量工程专业求职信
2014/02/24 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
2014年自愿离婚协议书范本
2014/09/25 职场文书
作文评语怎么写
2014/12/25 职场文书
浅谈Python类的单继承相关知识
2021/05/12 Python
MySQL CHAR和VARCHAR该如何选择
2021/05/31 MySQL
MySQL七种JOIN类型小结
2021/10/24 MySQL