element-UI中監聽el-select下拉框可搜索時候,filter-method自定義搜索方法

el-select中加入filterable屬性,就開啓了搜索功能,然後我們用:filter-method="dataFilter"可以自定義一個搜索篩選條件,在這裏來寫我們自己的邏輯代碼。監聽輸入框裏面輸入文字後,自動調用後臺接口獲取下拉框的數據
在這裏插入圖片描述

<template>
  <section class="p-10">
    <el-select clearable v-model="value" placeholder="請選擇" filterable :filter-method="dataFilter">
      <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
    </el-select>
  </section>
</template>
<script>
  export default {
    data() {
      return {
        optionsCopy: [{
          value: '1',
          label: 'meat'
        }, {
          value: '2',
          label: 'drink'
        }, {
          value: '3',
          label: 'food'
        }, {
          value: '4',
          label: '龍鬚麪'
        }, {
          value: '5',
          label: '北京烤鴨'
        }],
        options: [{
          value: '1',
          label: 'meat'
        }, {
          value: '2',
          label: 'drink'
        }, {
          value: '3',
          label: 'food'
        }, {
          value: '4',
          label: '龍鬚麪'
        }, {
          value: '5',
          label: '北京烤鴨'
        }],
        value: ''
      };
    },
    methods: {
      dataFilter(val) {
        this.value = val;
        if (val) { //val存在
          this.options = this.optionsCopy.filter((item) => {
            if (!!~item.label.indexOf(val) || !!~item.label.toUpperCase().indexOf(val.toUpperCase())) {
              return true
            }
          })
        } else { //val爲空時,還原數組
          this.options = this.optionsCopy;
        }
      }
    }
  };
</script>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章