vue中模糊查询中显示搜索过的历史

效果如图:
在这里插入图片描述
1.在搜索框下添加显示列表ul

  <el-form-item label="采集人" prop="measurer">
        <el-input
          v-model="queryParams.measurersName"
          placeholder="请选择采集人"
          clearable
          size="small"
          @clear = "queryParams.measurers=null"
          @input="changeMeasurer"
        />
        <ul v-if="measurerOptionsBySearch.length>0" class="showUl">
          <li v-for="value in measurerOptionsBySearch" @click="changeMeasurerBySelect(value)" style="line-height: 30px;display: block">{{value.userName}}</li>
        </ul>
      </el-form-item>

2.在data中定义存储搜索历史的数据对象 measurerOptionsBySearch

 measurerOptionsBySearch:[],

3.定义点击历史数据的方法

  changeMeasurerBySelect(value){
        this.queryParams.measurersName = value.userName;
        this.queryParams.measurers = [value.userId];
        this.measurerOptionsBySearch = [];
      },

4.定义输入框输入的方法 changeMeasurer 把搜索的关键字存到 上面定义的搜索数据对象measurerOptionsBySearch 中

 changeMeasurer(){
        if(this.searchTimeout){
          clearTimeout(this.searchTimeout);
        }
        if(this.queryParams.measurersName!=''){
          const self  =this;
          this.searchTimeout = setTimeout(function(){
            self.measurerOptionsBySearch = [];
            for(let i=0,len=self.measurerOptions.length;i<len;i++){
              if(self.measurerOptions[i].userName.indexOf(self.queryParams.measurersName)>=0){
                self.measurerOptionsBySearch.push(self.measurerOptions[i]);
              }
            }
          },500);
        }
      },

5.下拉数据

 /** 查询采集人员 */
      getMeasurer(projectIds, callback) {
        showMeasurer(projectIds).then(response => {
          this.measurerOptions = response.rows;
          if (callback)
            callback();
        });
      },

6.定义显示历史列表的样式

 .showUl{
    padding-left: 15px;
    position: absolute;
    z-index: 1;
    background: #fff;
    margin-top: 0;
    width: 100%;
    border: 1px solid #e4e7ed;
    border-radius: 4px;
    box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
    box-sizing: border-box;
    li{
      display: block;
      line-height: 30px;
      cursor: pointer;
    }
    li:hover{
      background: #F5F7Fa;
    }
  }
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值