element UI input带输入建议el-autocomplete总结

实现的是输入后提示

下面的是官方文档两个点要注意:特别是 cb(data) 返回到 autocomplete 组件中 这个很重要 必须是cb(data) cb换做任何一个都不行

先看全部代码

          <el-autocomplete
          v-model="form.accident_company"
          :fetch-suggestions="querySearch"
          placeholder="请输入详细单位名称"
          clearable
          @select="handleSelect"
          :trigger-on-focus="false"
          :value-key="'value'"  
          style="width: 230px;" 
        ></el-autocomplete>
 data() {
    return {
      accident_company:""
      companies: [] // 用于存储请求回来的公司信息数组
    };
    //
  },
    // 下拉搜索的方法
    querySearch(queryString,cb) {
      console.log(queryString)
    return new Promise(() => {
      // 清空之前的搜索结果
      this.companies = [];
      if (queryString) {
        searchUrl({ keyword: queryString }).then(response => {
          if (response.status === 1 && Array.isArray(response.info)) {
            this.companies = response.info.map(item => ({
              value: item.name || item // 假设存在 name 字段
            }));
            console.log(this.companies);
            cb(this.companies); 
          } else {
            console.error('API响应不正确或数据不是数组');
            cb([]); 
          }
        }).catch(() => {
          console.error('请求出错');
          cb([]); 
        });
      } else {
        cb(this.companies); 
      }
    });
  },
    // 下拉选项被选中时的事件
    handleSelect(item) {
      console.log("handleSelect",item);
      this.form.accident_company = item.value;
    },

起初没仔细看文档一直用的resolve(data)......搜索框的值一直显示不出来...

一定要先看文档!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值