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 相关文章推荐
可输入的下拉框
Jun 19 Javascript
javascript实现的动态添加表单元素input,button等(appendChild)
Nov 24 Javascript
AlertBox 弹出层信息提示框效果实现步骤
Oct 11 Javascript
jQuery.prop() 使用详解
Jul 19 Javascript
实现一个简单的vue无限加载指令方法
Jan 10 Javascript
Boostrap栅格系统与自己额外定义的媒体查询的冲突问题
Feb 19 Javascript
浅谈React前后端同构防止重复渲染
Jan 05 Javascript
no-vnc和node.js实现web远程桌面的完整步骤
Aug 11 Javascript
vue+element-ui+axios实现图片上传
Aug 20 Javascript
如何实现一个简易版的vuex持久化工具
Sep 11 Javascript
小程序实现锚点滑动效果
Sep 23 Javascript
vue.js Router中嵌套路由的实用示例
Jun 27 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设计模式 注册表模式(多个类的注册)
2012/02/05 PHP
php验证码生成代码
2015/11/11 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
服务器安全设置的几个注册表设置
2007/07/28 Javascript
Firefox window.close()的使用注意事项
2009/04/11 Javascript
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
javascript中的delete使用详解
2013/04/11 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
js修改原型的属性使用介绍
2014/01/26 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
四种参数传递的形式——URL,超链接,js,form表单
2015/07/24 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
解决iview打包时UglifyJs报错的问题
2018/03/07 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
微信小程序日历效果
2018/12/29 Javascript
layui表格设计以及数据初始化详解
2019/10/26 Javascript
JavaScript 类的封装操作示例详解
2020/05/16 Javascript
Python如何为图片添加水印
2016/11/25 Python
python 接口返回的json字符串实例
2018/03/27 Python
python中利用h5py模块读取h5文件中的主键方法
2018/06/05 Python
python中实现字符串翻转的方法
2018/07/11 Python
Python之pymysql的使用小结
2019/07/01 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
2020/04/08 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
2020/07/09 Python
历史专业个人求职信分享
2013/12/20 职场文书
大学社团活动策划书
2014/01/26 职场文书
30年同学聚会感言
2014/01/30 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
2014年团队工作总结
2014/11/24 职场文书
个人售房合同协议书
2016/03/21 职场文书
“鬼灭之刃”热度不减,其成功背后的原因是什么?
2022/03/22 日漫
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers