vue 列表模糊搜索

<template>
  <div>
    <h3>搜索列表</h3>
    <input type="text" placeholder="请输入搜索信息,姓名,年龄,性别,手机号" v-model="searchName">
    <ul>
      <li v-for="(p,index) in filterPersons" :key="personsKeys[index]">
        {{index+1}}) ---- ID:{{personsKeys[index]}}----姓名:{{p.name }} ----年龄:{{p.age}} ----性别:{{p.sex}}----电话:{{p.phone}}
      </li>
    </ul>
  </div>
</template>

<script>
  import shortId from 'shortid'
  export default {
    name: "ListRender",
    data(){
      return{
        persons: [
          {name:'张一',age:18,sex:'男',phone:'18919295531'},
          {name:'张二',age:28,sex:'男',phone:'18519295531'},
          {name:'刘三',age:38,sex:'女',phone:'18919295531'},
          {name:'刘四',age:48,sex:'男',phone:'18719295531'},
          {name:'刘五',age:58,sex:'男',phone:'18941995531'},
          {name:'刘一',age:18,sex:'男',phone:'18919295531'},
          {name:'李二',age:28,sex:'男',phone:'18919295531'},
          {name:'李三',age:38,sex:'女',phone:'18919295531'},
          {name:'李四',age:48,sex:'男',phone:'18919295531'},
          {name:'张五',age:58,sex:'男',phone:'18919295531'},
          {name:'王一',age:18,sex:'男',phone:'18919295531'},
          {name:'王二',age:28,sex:'男',phone:'18519295531'},
          {name:'王三',age:38,sex:'女',phone:'18919295531'},
          {name:'王四',age:48,sex:'男',phone:'18719295531'},
          {name:'王五',age:58,sex:'男',phone:'18941995531'},
          {name:'郑一',age:18,sex:'男',phone:'18919295531'},
          {name:'郑二',age:28,sex:'男',phone:'18919295531'},
          {name:'郑三',age:38,sex:'女',phone:'18919295531'},
          {name:'郑四',age:48,sex:'男',phone:'18919295531'},
          {name:'郑五',age:58,sex:'男',phone:'18919295531'}
        ],
        searchName:'',
        personsKeys:[]
      }
    },
    mounted(){
      this.personsKeys= this.persons.map(()=>shortId.generate());
    },
    computed:{
      filterPersons(){
        //1.获取数据
        let {searchName,persons}=this;
        // 2.取出数组中的数据
        let arr=[...persons];
        //3.过滤数组
        if(searchName.trim()){
         // searchName=searchName.trim()
          arr=persons.filter((p)=>p.name.indexOf(searchName)!==-1);
          if(arr.length<1){
            arr=persons.filter((p)=>p.sex==searchName);
            if(arr.length<1){
              arr=persons.filter((p)=>p.age-searchName==0);
              if(arr.length<1){
                arr=persons.filter((p)=>p.phone==searchName);
              }
            }
          }
        }
        return arr;
      }
    }
  }
</script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值