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 相关文章推荐
html下载本地
Jun 19 Javascript
asp.net+js 实现无刷新上传解析csv文件的代码
May 17 Javascript
基于jquery实现控制经纬度显示地图与卫星
May 20 Javascript
javascript判断机器是否联网的2种方法
Aug 09 Javascript
关于JavaScript中name的意义冲突示例介绍
May 29 Javascript
JavaScript数据结构和算法之二叉树详解
Feb 11 Javascript
js改变Iframe中Src的方法
May 05 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
Oct 16 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
Nov 22 Javascript
微信小程序中悬浮窗功能的实现代码
Aug 02 Javascript
vue实现路由不变的情况下,刷新页面操作示例
Feb 02 Javascript
Vue监视数据的原理详解
Feb 24 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
symfony表单与页面实现技巧
2015/01/26 PHP
PHP入门教程之数组用法汇总(创建,删除,遍历,排序等)
2016/09/11 PHP
在Laravel中使用DataTables插件的方法
2018/05/29 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
学习YUI.Ext第五日--做拖放Darg&amp;Drop
2007/03/10 Javascript
JavaScript 定义function的三种方式小结
2009/10/16 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
Javascript 判断是否存在函数的方法
2013/01/03 Javascript
基于javascript 闭包基础分享
2013/07/10 Javascript
jQuery动画效果-fadeIn fadeOut淡入浅出示例代码
2013/08/28 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
JavaScript事件详细讲解
2016/06/27 Javascript
微信小程序 wx:key详细介绍
2016/10/28 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
vue.js单页面应用实例的简单实现
2017/04/10 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
2019/04/30 Javascript
vue实现滑动切换效果(仅在手机模式下可用)
2020/06/29 Javascript
layui实现tab的添加拒绝重复的方法
2019/09/04 Javascript
Python的Django框架使用入门指引
2015/04/15 Python
Python聚类算法之DBSACN实例分析
2015/11/20 Python
python爬虫之百度API调用方法
2017/06/11 Python
对python文件读写的缓冲行为详解
2019/02/13 Python
python 进程 进程池 进程间通信实现解析
2019/08/23 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
Tostadora意大利:定制T恤
2019/04/08 全球购物
5.1手机促销活动
2014/01/17 职场文书
教导处工作制度
2014/01/18 职场文书
老总助理工作岗位职责
2014/02/06 职场文书
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
四年级学生评语大全
2014/04/21 职场文书
欢迎词怎么写
2015/01/23 职场文书
导游词欢迎词
2015/02/02 职场文书
现役军人家属慰问信
2015/03/24 职场文书
初中语文教学随笔
2015/08/15 职场文书