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 相关文章推荐
不错的一个日期输入 动态
Nov 06 Javascript
判断控件是否已加载完成的代码
Feb 24 Javascript
JQUERY dialog的用法详细解析
Dec 19 Javascript
JSF中confirm弹出框的用法示例介绍
Jan 07 Javascript
js数组操作常用方法
May 08 Javascript
将页面table内容与样式另存成excel文件的方法
Aug 05 Javascript
拥有一个属于自己的javascript表单验证插件
Mar 24 Javascript
JavaScript模块模式实例详解
Oct 25 Javascript
元素全屏的设置与监听实例
Nov 28 Javascript
layui 设置table 行的高度方法
Aug 17 Javascript
vue19 组建 Vue.extend component、组件模版、动态组件 的实例代码
Apr 04 Javascript
基于Element的组件改造的树形选择器(树形下拉框)
Feb 27 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中养成7个面向对象的好习惯
2010/07/17 PHP
php方法调用模式与函数调用模式简例
2011/09/20 PHP
PHP设计模式之调解者模式的深入解析
2013/06/13 PHP
php找出指定范围内回文数且平方根也是回文数的方法
2015/03/23 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
php opendir()列出目录下所有文件的实例代码
2016/10/02 PHP
PHP中CheckBox多选框上传失败的代码写法
2017/02/13 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
extjs_02_grid显示本地数据、显示跨域数据
2014/06/23 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
jQuery+CSS3+Html5实现弹出层效果实例代码(附源码下载)
2016/05/16 Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
2016/12/22 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
vue的mixins属性详解
2018/03/14 Javascript
深入理解JS的事件绑定、事件流模型
2018/05/13 Javascript
js中forEach,for in,for of循环的用法示例小结
2020/03/14 Javascript
javascript开发实现贪吃蛇游戏
2020/07/31 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python递归函数 二分查找算法实现解析
2019/08/12 Python
python+gdal+遥感图像拼接(mosaic)的实例
2020/03/10 Python
基于django 的orm中非主键自增的实现方式
2020/05/18 Python
Pycharm修改python路径过程图解
2020/05/22 Python
python uuid生成唯一id或str的最简单案例
2021/01/13 Python
捷克建筑材料网上商店:DEK.cz
2021/03/06 全球购物
如何写出高质量、高性能的MySQL查询
2014/11/17 面试题
建龙钢铁面试总结
2014/04/15 面试题
假日旅行社实习自我鉴定
2013/09/24 职场文书
毕业生求职信范文
2014/06/29 职场文书
小班教师个人总结
2015/02/05 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
工会文体活动总结
2015/05/07 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
使用python创建股票的时间序列可视化分析
2022/03/03 Python