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闭包 实例分析
Dec 25 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
Aug 19 Javascript
JavaScript实现的一个日期格式化函数分享
Dec 06 Javascript
jQuery实现带延迟的二级tab切换下拉列表效果
Sep 01 Javascript
jQuery 生成svg矢量二维码
Aug 09 Javascript
vue中渐进过渡效果实现
Oct 27 Javascript
JS声明式函数与赋值式函数实例分析
Dec 13 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
Feb 18 Javascript
javascript自定义事件功能与用法实例分析
Nov 08 Javascript
过滤器vue.filters的使用方法实现
Sep 18 Javascript
javascript设计模式 ? 单例模式原理与应用实例分析
Apr 09 Javascript
在vue中实现给每个页面顶部设置title
Jul 29 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&amp;&amp;mysql)三
2006/10/09 PHP
php使用正则表达式获取图片url的方法
2015/01/16 PHP
JavaScript Accessor实现说明
2010/12/06 Javascript
jQuery $.get 的妙用 访问本地文本文件
2012/07/12 Javascript
jQuery控制输入框只能输入数值的小例子
2013/03/20 Javascript
jquery实现checkbox全选全不选的简单实例
2013/12/31 Javascript
jQuery绑定事件监听bind和移除事件监听unbind用法实例详解
2016/01/19 Javascript
AngularJs 弹出模态框(model)
2016/04/07 Javascript
AngularJs 国际化(I18n/L10n)详解
2016/09/01 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
2017/07/19 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
vue-cli开发时,关于ajax跨域的解决方法(推荐)
2018/02/03 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
koa2 从入门到精通(小结)
2019/07/23 Javascript
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
python 读写txt文件 json文件的实现方法
2016/10/22 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
2018/07/30 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
django model object序列化实例
2020/03/13 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
python爬虫可以爬什么
2020/06/16 Python
利用HTML5 Canvas制作键盘及鼠标动画的实例分享
2016/03/15 HTML / CSS
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
what is the difference between ext2 and ext3
2015/08/25 面试题
机关门卫岗位职责
2013/12/30 职场文书
公司办公室岗位职责
2014/03/19 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
离职感谢信
2015/01/21 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
编写python程序的90条建议
2021/04/14 Python
Python中的变量与常量
2021/11/11 Python
golang语言指针操作
2022/04/14 Golang