遇到业务需要下拉选择框动态请求接口数据,element又没有提供动态加载api,就只能自己写了
代码
<template>
<div>
<el-select v-model="organization_id"
placeholder="请选择">
<el-option v-for="(item) in oranizeList"
:key="item.value"
:label="item.label"
:value='item.title'>
</el-option>
</el-select>
</div>
</template>
<script>
export default {
data() {
return {
organization_id:[],
oranizeList:[
{
label:'阿塔尼斯',
},{
label:'阿塔尼斯',
},{
label:'阿塔尼斯',
},{
label:'阿塔尼斯',
},
{
label:'阿塔尼斯',
},
{
label:'阿塔尼斯',
},{
label:'阿塔尼斯',
},{
label:'阿塔尼斯',
},{
label:'阿塔尼斯',
},{
label:'阿塔尼斯',
},{
label:'阿塔尼斯',
},{
label:'阿塔尼斯',
},{
label:'阿塔尼斯',
},{
label:'阿塔尼斯',
},
]
}
},
mounted() {
this.elSelectSync(this.getOrganization)
},
methods: {
elSelectSync(getData){
const selectScrollDom = document.querySelector('.el-select-dropdown .el-select-dropdown__wrap')
let func=getData;
selectScrollDom.addEventListener('scroll', function () {
if (this.scrollHeight-this.scrollTop<=this.offsetHeight) {
//这里给你自己的业务逻辑
func();
}
});
},
getOrganization(){
const _this=this
setTimeout(function () {
for(let i=0;i<10;i++){
_this.oranizeList.push({
label:'阿塔尼斯',
})
}
},0)
}
},
}
</script>
<style lang="scss" scoped>
</style>