【el-select】下拉框实现名称和ID同时搜索

场景描述

ElementUI 下拉框( el-select ) 要求实现id和name同时匹配(有一项模糊匹配到即可)

效果图

在这里插入图片描述

代码实现

自定义搜索事件,过滤选项值

<el-select v-model="listQuery.custId" placeholder="请输入客户名称/ID" clearable filterable size="mini" :filter-method="dataFilter" @change="handleQuery">
  <el-option v-for="option in optionList" :key="option.custId" :label="option.custName" :value="option.custId">
    <span style="float: left">{{ option.custId }}</span>
    <span style="color: #8492a6; font-size: 13px; margin-left: 10px;">{{ option.custName }}</span>
  </el-option>
</el-select>
computed: {
    ...mapState('project/caches', ['bdCustomers']), // 从store中获取存储的选择数据(数据源)
    optionList() { // 根据输入内容动态处理选项
      if (!this.listQuery.custId) { return this.bdCustomers }
      const arr = this.bdCustomers.filter(v => {
        return v.custId.indexOf(this.listQuery.custId) !== -1 || v.custName.indexOf(this.listQuery.custId) !== -1 // 字符串是否包含该字符
      })
      return arr
    }
}

methods: {
    dataFilter(val) { // 自定义搜索方法
      this.$set(this.listQuery, 'custId', val)
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Joseph365

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值