vue实现多条件和模糊搜索功能


Posted in Javascript onMay 28, 2019

本文实例为大家分享了vue实现多条件和模糊搜索的具体代码,供大家参考,具体内容如下

html

<div class="content">
 <div class="right">

  <select name="sex" width='100' v-model="formData.sex">
  <option value="" selected>请选择</option>
  <option value="1">男</option>
  <option value="2">女</option>
  <option value="3">不是人</option>
  </select>

  <input type="text" v-model="formData.phone" placeholder="电话(精准搜索)">

  <input type="text" v-model="formData.name" placeholder="姓名(模糊搜索)">

  <button @click="search(formData)">提交数据</button>
 </div>
 <div class="left">
  <ul>
  <li v-for="(item,index) in realList" :key="index">
   {{item.name}} || {{item.phone}} || {{item.sex | filterSex}}
  </li>
  </ul>
 </div>
 </div>

js

export default {
 name: 'styleTest',
 data() {
 return {
  formData: {
  name: '',
  phone: '',
  sex: '',
  },
  realList: [],
  list: [
  {
   name: '张址',
   phone: 18715023011,
   sex: 1,
  },
  {
   name: '张三',
   phone: 18715023012,
   sex: 2,
  },
  {
   name: '李四',
   phone: 18715023013,
   sex: 1,
  },
  {
   name: '赵武',
   phone: 18715023014,
   sex: 2,
  },
  {
   name: '晋南',
   phone: 18715023015,
   sex: 1,
  },
  {
   name: '张东',
   phone: 18715023016,
   sex: 2,
  },
  ],
 };
 },
 filters: {
 filterSex(val) {
  switch (val) {
  case 1:
   return '男';
   break;
  case 2:
   return '女';
   break;
  case 3:
   return '不是人';
   break;
  default:
   return '男';
  }
 },
 },
 computed: {
 // realList() {
 // let { name, phone, sex } = this.formData;
 // if (name && phone && sex) {
 //  return this.list;
 // }
 // },
 },
 created() {
 this.search({});
 },
 methods: {
 search({ name, phone, sex }) {
  this.realList = this.list.filter(item => {
  let matchName = true; // 姓名 筛选
  let matchSex = true; // 性别 筛选
  let matchPhone = true; // 号码 筛选

  if (sex) {
   matchSex = item.sex == sex;
  }

  if (phone) {
   // console.info(Object.prototype.toString.call(phone));
   matchPhone = item.phone == phone;
  }

  if (name) {
   // 模糊搜索;
   const keys = name
   .toUpperCase() // 转大写
   .replace(' ', '') // 删掉空格
   .split(''); // 切割成 单个字

   matchName = keys.every(key => item.name.toUpperCase().includes(key));
  }
  return matchName && matchPhone && matchSex;
  });
 },
 },
};

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

Javascript 相关文章推荐
jQuery 动画基础教程
Dec 25 Javascript
[推荐]javascript 面向对象技术基础教程
Mar 03 Javascript
实例讲解JS中setTimeout()的用法
Jan 28 Javascript
javascript实现下雪效果【实例代码】
May 03 Javascript
jQuery实现的简单拖拽功能示例
Sep 13 Javascript
jQuery插件zTree实现删除树子节点的方法示例
Mar 08 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
Apr 10 Javascript
vue.js实现备忘录功能的方法
Jul 10 Javascript
使用JS中的Replace()方法遇到的问题小结
Oct 20 Javascript
深入了解响应式React Native Echarts组件
May 29 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
Jul 09 Javascript
谈谈JavaScript令人迷惑的==与+
Aug 31 Javascript
vue实现路由切换改变title功能
May 28 #Javascript
Vue 无限滚动加载指令实现方法
May 28 #Javascript
vue实现搜索过滤效果
May 28 #Javascript
微信小程序 image组件遇到的问题
May 28 #Javascript
vue实现搜索功能
May 28 #Javascript
Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
May 28 #Javascript
如何实现双向绑定mvvm的原理实现
May 28 #Javascript
You might like
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
用PHP制作的意见反馈表源码
2007/03/11 PHP
PHP substr 截取字符串出现乱码问题解决方法[utf8与gb2312]
2011/12/16 PHP
PHP数组排序函数合集 以及它们之间的联系分析
2013/06/27 PHP
php中的单引号、双引号和转义字符详解
2017/02/16 PHP
PHP进程通信基础之信号
2017/02/19 PHP
PHP之多条件混合筛选功能的实现方法
2019/10/09 PHP
IE浏览器兼容Firefox的JS脚本的代码
2008/10/23 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
jquery中checkbox全选失效的解决方法
2014/12/26 Javascript
小米公司JavaScript面试题
2014/12/29 Javascript
js实现Form栏显示全格式时间时钟效果代码
2015/08/19 Javascript
使用contextMenu插件实现Bootstrap table弹出右键菜单
2017/02/20 Javascript
gulp教程_从入门到项目中快速上手使用方法
2017/09/14 Javascript
bootstrap与pagehelper实现分页效果
2018/12/29 Javascript
element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)
2019/01/15 Javascript
javascript面向对象程序设计实践常用知识点总结
2019/07/29 Javascript
[10:04]国际邀请赛采访专栏:DK.Farseer,mouz.Black^,采访员Josh专访
2013/08/05 DOTA
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
Python实现的简单文件传输服务器和客户端
2015/04/08 Python
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
对Python中range()函数和list的比较
2018/04/19 Python
解决Python获取字典dict中不存在的值时出错问题
2018/10/17 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
python推导式的使用方法实例
2021/02/28 Python
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
关于HTML5+ API plusready的兼容问题
2020/11/20 HTML / CSS
澳大利亚最大的百货公司:Myer
2018/12/21 全球购物
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
《听鱼说话》教学反思
2014/02/15 职场文书
保证书范文大全
2014/04/28 职场文书
卫生标语大全
2014/06/21 职场文书
2015年英语教师工作总结
2015/05/20 职场文书
python程序的组织结构详解
2021/12/06 Python