el-select分页加载和搜索

<el-form-item label="标签名" prop="value">
  <el-select v-model="queryParams.value" v-loadMore="loadMore" clearable @change="handleChange" :filter-method="filterMethod" filterable style="width:100%">
    <el-option v-for="(item,index) in valueArr" :key="index" :label="item.label" :value="item.label"></el-option>
  </el-select>         
</el-form-item>


directives: {
       loadMore: {
         inserted(el, binding) {
           const dom = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap');  // 获取下拉框元素
           dom.addEventListener('scroll', function () {       // 监听元素触底
             const condition = this.scrollHeight-2 - this.scrollTop <= this.clientHeight;
             if (condition) {
               binding.value();
             }
           })
         }
       }
     },
data(){
  queryParams:{
    pageno:1,
    pagesize:20,
    value:'',
  },
  total:0,
  valueArr:[],
  timer:null,
},
created(){
  this.getValuePage()
},
methods:{
loadMore() {
  if(this.queryParams.pageno*this.queryParams.pagesize<this.total){
    this.queryParams.pageno++
    this.getValuePage()
  }     
},
 filterMethod(val) {
         if(val){
          this.queryParams.value= val
            this.pageno = 1
            this.valueArr= []
            clearTimeout(this.timer)
            this.timer = setTimeout(() => {
                this.getValuePage(value)
            }, 1000)
         }        	
        },
},
getValuePage() {
          getValueByPage({ pageno: this.queryParams.pageno, pagesize: this.queryParams.pagesize,value:this.queryParams.value}).then(res => {
           this.total= res.data.total
            for (var i in res.data.list) {
              this.valueArr.push({
                value: res.data.list[i].id,
                label: res.data.list[i].value
              });
            }
          });
        },


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值