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 相关文章推荐
Span元素的width属性无效果原因及解决方案
Jan 15 Javascript
JS获取计算机mac地址以及IP的实现方法
Jan 08 Javascript
jQuery实现手机版页面翻页效果的简单实例
Oct 05 Javascript
jquery 手势密码插件
Mar 17 Javascript
Bootstrap实现各种进度条样式详解
Apr 13 Javascript
jquery replace方法去空格
May 08 jQuery
jQuery读取本地的json文件(实例讲解)
Oct 31 jQuery
React组件refs的使用详解
Feb 09 Javascript
JS实现调用本地摄像头功能示例
May 18 Javascript
快速对接payjq的个人微信支付接口过程解析
Aug 15 Javascript
Javascript地址引用代码实例解析
Feb 25 Javascript
element-ui中el-upload多文件一次性上传的实现
Dec 02 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多线程异步请求的3种方法
2014/01/17 PHP
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
Laravel框架集成UEditor编辑器的方法图文与实例详解
2019/04/17 PHP
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
JSONP跨域GET请求解决Ajax跨域访问问题
2014/12/31 Javascript
JavaScript实现彩虹文字效果的方法
2015/04/16 Javascript
DOM 高级编程
2015/05/06 Javascript
JavaScript编程中window的location与history对象详解
2015/10/26 Javascript
jquery取消事件冒泡的三种方法(推荐)
2016/05/28 Javascript
jQuery表单验证简单示例
2016/10/17 Javascript
vue-resource 拦截器使用详解
2017/02/21 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
AJAX在JQuery中的应用详解
2019/01/30 jQuery
three.js 如何制作魔方
2020/07/31 Javascript
js+audio实现音乐播放器
2020/09/13 Javascript
react antd表格中渲染一张或多张图片的实例
2020/10/28 Javascript
python如何在列表、字典中筛选数据
2018/03/19 Python
使用Django和Python创建Json response的方法
2018/03/26 Python
Python批量查询关键词微信指数实例方法
2019/06/27 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
介绍一下Cookie和Session及他们之间的区别
2012/11/20 面试题
EJB与JAVA BEAN的区别
2016/08/29 面试题
小学音乐教学反思
2014/02/05 职场文书
优秀团员自我评价范文
2014/04/23 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
手术室护士节演讲稿
2014/08/27 职场文书
先进基层党组织事迹材料
2014/12/25 职场文书
小学教师自我评价
2015/03/04 职场文书
2019垃圾分类宣传口号汇总
2019/08/16 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python
python使用pymysql模块操作MySQL
2021/06/16 Python
Python 如何利用ffmpeg 处理视频素材
2021/11/27 Python
MyBatis XPathParser解析器使用范例详解
2022/07/15 Java/Android