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 的addEventListener()及attachEvent()区别分析
May 21 Javascript
javascript delete 使用示例代码
Mar 29 Javascript
Array.prototype.slice 使用扩展
Jun 09 Javascript
『JavaScript』限制Input只能输入数字实现思路及代码
Apr 22 Javascript
关于jQuery判断元素是否存在的问题示例探讨
Jul 21 Javascript
jQuery简单实现tab选项卡切换效果
Jun 20 Javascript
用原生JS对AJAX做简单封装的实例代码
Jul 13 Javascript
js css+html实现简单的日历
Jul 14 Javascript
vue-cli3.0 环境变量与模式配置方法
Nov 08 Javascript
JQuery表单元素取值赋值方法总结
May 12 jQuery
Openlayers学习之加载鹰眼控件
Sep 28 Javascript
JavaScript+HTML实现学生信息管理系统
Apr 20 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制作静态网站的模板框架(三)
2006/10/09 PHP
yii操作cookie实例简介
2014/07/09 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
javascript里的条件判断
2007/02/27 Javascript
将光标定位于输入框最右侧实现代码
2012/12/04 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
jQuery中Ajax的load方法详解
2015/01/14 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
jquery实现的动态回到顶部特效代码
2015/10/28 Javascript
JS hashMap实例详解
2016/05/26 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
原生Javascript插件开发实践
2017/01/09 Javascript
微信小程序 页面跳转传递值几种方法详解
2017/01/12 Javascript
自制简易打赏功能的实例
2017/09/02 Javascript
js实现随机点名系统(实例讲解)
2017/10/18 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
vue中v-for加载本地静态图片方法
2018/03/03 Javascript
详解vue-router导航守卫
2019/01/19 Javascript
nodejs读取图片返回给浏览器显示
2019/07/25 NodeJs
Python爬虫beautifulsoup4常用的解析方法总结
2019/02/25 Python
简单了解python中对象的取反运算符
2019/07/01 Python
python交互模式下输入换行/输入多行命令的方法
2019/07/02 Python
opencv python在视屏上截图功能的实现
2020/03/05 Python
Python unittest基本使用方法代码实例
2020/06/29 Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
2020/08/11 Python
意大利奢侈品网站:Italist
2016/08/23 全球购物
Ariat官网:美国马靴和服装品牌
2019/12/16 全球购物
eDreams德国:南欧领先的在线旅游公司
2020/12/07 全球购物
物业管理计划书
2014/01/10 职场文书
生日寄语大全
2014/04/08 职场文书
个人委托书如何写
2014/09/25 职场文书
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript