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右下角弹出提示框示例代码
Oct 08 Javascript
使用JavaScript和C#中获得referer
Nov 14 Javascript
JS实现网页滚动条感应鼠标变色的方法
Feb 26 Javascript
jQuery替换textarea中换行的方法
Jun 10 Javascript
js绑定事件和解绑事件
Apr 27 Javascript
JS+HTML+CSS实现轮播效果
Nov 28 Javascript
Vue监听事件实现计数点击依次增加的方法
Sep 26 Javascript
微信小程序登录session的使用
Mar 17 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
Apr 30 Javascript
深入了解JavaScript 私有化
May 30 Javascript
vue.js循环radio的实例
Nov 07 Javascript
Vue3实现简易音乐播放器组件
Aug 14 Vue.js
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使用ICQ网关发送手机短信
2013/10/30 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
PHP读取PPT文件的方法
2015/12/10 PHP
Array.prototype.slice.apply的使用方法
2010/03/17 Javascript
JS画5角星方法介绍
2013/09/17 Javascript
JQuery文字列表向上滚动的代码
2013/11/13 Javascript
Html5的placeholder属性(IE兼容)实现代码
2014/08/30 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
jQuery 判断图片是否加载完成方法汇总
2015/08/10 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
javascript实现根据汉字获取简拼
2016/09/25 Javascript
jQuery插件HighCharts绘制2D金字塔图效果示例【附demo源码下载】
2017/03/09 Javascript
微信小程序之发送短信倒计时功能
2017/08/30 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
vue实现动态按钮功能
2019/05/13 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
Python标准库之Sys模块使用详解
2015/05/23 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
Python使用configparser读取ini配置文件
2020/05/25 Python
使用css创建三角形 使用CSS3创建3d四面体原理及代码(html5实践)
2013/01/06 HTML / CSS
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
英国排名第一的宠物店:PetPlanet
2020/02/02 全球购物
美国沃尔玛网上超市:Walmart
2020/08/14 全球购物
临床医学专业毕业生的自我评价
2013/10/17 职场文书
军训心得体会
2013/12/31 职场文书
管理部副部长岗位职责范文
2014/03/09 职场文书
房屋转让协议书范本
2014/04/11 职场文书
初中新生军训方案
2014/05/13 职场文书
医药销售自我评价200字
2014/09/11 职场文书
我的大学四年规划书范文2014
2014/09/26 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
社区三八妇女节活动总结
2015/02/06 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang