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 相关文章推荐
javascript globalStorage类代码
Jun 04 Javascript
js数字输入框(包括最大值最小值限制和四舍五入)
Nov 24 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
Apr 12 Javascript
JS正则验证邮箱的格式详细介绍
Nov 19 Javascript
For循环中分号隔开的3部分的执行顺序探讨
May 27 Javascript
jQuery实现选项卡切换效果简单演示
Dec 09 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
Feb 28 Javascript
AngularJS 防止页面闪烁的方法
Mar 09 Javascript
Vue form 表单提交+ajax异步请求+分页效果
Apr 22 Javascript
vue进入页面时滚动条始终在底部代码实例
Mar 26 Javascript
原生JavaScript写出Tabs标签页的实例代码
Jul 20 Javascript
js Proxy的原理详解
May 25 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
如何在PHP中进行身份认证
2006/10/09 PHP
PHP URL参数获取方式的四种例子
2014/02/28 PHP
查找php配置文件php.ini所在路径的二种方法
2014/05/26 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
2019/09/30 PHP
js获取div高度的代码
2008/08/09 Javascript
浅谈jQuery中对象遍历.eq().first().last().slice()方法
2014/11/26 Javascript
Angularjs自定义指令实现三级联动 选择地理位置
2017/02/13 Javascript
vue watch深度监听对象实现数据联动效果
2018/08/16 Javascript
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
JS面向对象编程——ES6 中class的继承用法详解
2020/03/03 Javascript
python中类的一些方法分析
2014/09/25 Python
python使用Tkinter显示网络图片的方法
2015/04/24 Python
用Python实现一个简单的能够上传下载的HTTP服务器
2015/05/05 Python
Python多进程分块读取超大文件的方法
2016/04/13 Python
教你学会使用Python正则表达式
2017/09/07 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
Python实现拷贝/删除文件夹的方法详解
2018/08/29 Python
pyqt5对用qt designer设计的窗体实现弹出子窗口的示例
2019/06/19 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
python与js主要区别点总结
2020/09/13 Python
Jupyter Notebook安装及使用方法解析
2020/11/12 Python
百联网上商城:i百联
2017/01/28 全球购物
英国首屈一指的票务公司:See Tickets
2019/05/11 全球购物
俄罗斯香水和化妆品网上商店:NOTINO.ru
2019/12/17 全球购物
通信工程求职信
2014/07/16 职场文书
2014年保育员个人工作总结
2014/12/02 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
公司致全体员工的感谢信
2019/06/24 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
蓝天保卫战收官在即 :15行业将开展环保分级评价
2019/07/19 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js