element -select选择器实现远程模糊搜索

1、element select选择器文档

Element - The world's most popular Vue UI framework

2、效果如何:

 3、将该功能封装成组件,代码如下:

<template>
  <div class="courts-select">
    <!-- 模糊搜索 -->
    <el-select
      v-model="filterValue"
      clearable
      filterable
      remote
      :placeholder="placeholder"
      :remote-method="remoteMethod"
      :no-data-text="noMatchText"
      @change="filterChange"
      :loading="loading"
    >
      <el-option
        v-for="item in options"
        :key="item.value"
        :label="item.name"
        :value="item.code"
      >
      </el-option>
    </el-select>
  </div>
</template>
<script>
import { listApi } from "@/api/systemManage.js";
var lodash = require("lodash");
export default {
  name: "",
  data() {
    return {
      options: [],
      filterValue: "",
      loading: false,
      noMatchText: "暂无数据"
    };
  },
  props: {
    list: Array,
    placeholder: {
      type: String,
      default: "请输入xxx"
    }
  },
  methods: {
    // 模糊搜索
    remoteMethod: lodash.debounce(function (query) {
      let resultAll = [];
      if (query) {
        this.loading = true;
        this.list.forEach((item) => {
          if (item.name.indexOf(query) >= 0) {
            resultAll.push(item);
          }
        });
        if (resultAll.length > 40) {
          this.courtOptions = [];
          this.noMatchText = "请输入详细的xxx";
          this.loading = false;
        } else if (resultAll.length === 0) {
          this.noMatchText = "暂无数据";
          this.loading = false;
        } else {
          this.options = resultAll;
          this.loading = false;
        }
      }
    }, 300),

    // 树的模糊查询选择
    filterChange(e) {
       this.$emit("getSelectedCourt", e);
       this.filterValue = e;
       this.options = [];
    }
  }
};
</script>

4、组件的引入和使用

<courtsSelect :list="list" @getSelectedCourt="getSelectedCourt"></courtsSelect>
    getSelectedCourt(e) {
      this.xxx = e
    },

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值