1、声明自定义指令:
directives: {'loadmore': {inserted(el, binding) {const SELECTWRAP_DOM = el.querySelector('.el-select-dropdown .el-select-dropdown__wrap');SELECTWRAP_DOM.addEventListener('scroll', function() {const condition = this.scrollHeight - this.scrollTop <= this.clientHeight;if (condition) {binding.value();}});}}
},
2、使用自定义指令v-loadmore:
<el-select filterable v-model="form.standardDevice" placeholder="请选择" clearable v-loadmore="loadMore" @change="handleChange"><el-option v-for="item in deviceList" :key="item.deviceId" :label="item.deviceName" :value="item.serialNumber"></el-option><el-option v-if="selectLoading" v-loading="selectLoading" value=""></el-option>
</el-select>
3、发送请求加载数据
//滚动条滚动到底部
loadMore(){//页数加一this.pageNum ++ //发送网络请求this.getDeviceList()
},
参考:el-select滚动到底部加载更多(分页加载数据)_el-select 触底加载分页_天道酬勤_鹿的博客-CSDN博客