news 2026/6/23 19:30:50

elementUI的select下拉框如何下拉加载数据?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
elementUI的select下拉框如何下拉加载数据?

前言

相信大家都遇到过一个问题,select下拉选项数据特别多,要设置为分页,那么前端如何弄成下拉加载数据呢?来看看我是怎么弄的吧。

先来看看效果

template代码

<el-select v-model="formDataModel[item.key]":placeholder="'请选择' + item.label"filterable remote clearable:remote-method="remoteMethod"@clear="handleClear"@blur="handleBlur"><divclass="options"v-infinite-scroll="load":infinite-scroll-disabled="disabled"v-loading="isLoading"><el-option v-for="(item, index) in options":key="index":label="item.name":value="`${item.name}-${item.id}`"></el-option><pclass="load-text"v-if="loading">加载中...</p><pclass="load-text"v-if="noMore">没有更多了</p></div></el-select>

js代码

// 弹框组件是否显示@Prop({type:Boolean,default:false})isShow!:boolean;@Watch('isShow',{immediate:true})handleShowChange(val:boolean){if(val){this.keyword='';this.pageIndex=1;this.getOptions();}}// 清空选项publichandleClear(){this.remoteMethod('');}// 处理失去焦点publichandleBlur(){setTimeout(()=>{if(!this.formDataRef.formDataModel.VBIFieldName){this.remoteMethod('');}},500);}//#region 下拉加载开始publicpageIndex=1;publicoptions:any[]=[];publicloading=false;// 总数publictotal=0;getnoMore(){returnthis.options.length>=this.total;}getdisabled(){returnthis.loading||this.noMore;}publicasyncload(){this.pageIndex+=1;this.getVBIFieldNameOptions();}//#endregion 下拉加载结束publickeyword='';publicisLoading=false;//获取选项publicasyncgetOptions(){if(this.pageIndex===1){// 搜索loadingthis.isLoading=true;}else{// 下拉加载loadingthis.loading=true;}try{letfetchApi:any;letparamsData={pageIndex:this.pageIndex,pageSize:10,name:this.keyword};const{data:{data:{records,total}}}=awaitfetchApi(paramsData);letlist=records??[];if(this.pageIndex===1){this.options=list;}else{this.options=[...this.options,...list];}this.total=total;}finally{if(this.pageIndex===1){// 搜索loadingthis.isLoading=false;}else{// 下拉加载loadingthis.loading=false;}}}// 根据输入框的值远程查询publicasyncremoteMethod(query:string){this.pageIndex=1;this.keyword=query;this.getVBIFieldNameOptions();}

css代码

.options{.load-text{margin:0;text-align:center;color:#999;font-size:12px;}}

结语

大家可以参考一下实现逻辑,代码可能不能直接使用。

关注我,不迷路。
不定时分享前端相关问题以及解决方案。
希望能帮助每个在开发类似功能的小伙伴。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 21:02:50

5步彻底解决TranslucentTB安装失败:从诊断到完美运行全攻略

5步彻底解决TranslucentTB安装失败&#xff1a;从诊断到完美运行全攻略 【免费下载链接】TranslucentTB 项目地址: https://gitcode.com/gh_mirrors/tra/TranslucentTB 你是否曾经满怀期待地想要为Windows任务栏换上透明新装&#xff0c;却在安装TranslucentTB时遭遇各…

作者头像 李华
网站建设 2026/6/23 19:15:54

教你使用服务器搭建一款基于 Rust 开发的跨平台文件管理器 Spacedrive

如果你手里设备多&#xff1a;Windows 办公机、macOS 笔记本、Linux 服务器、还有 NAS/移动硬盘……文件一多就很容易变成灾难现场&#xff1a;文件散落各处&#xff0c;找东西全靠“记忆力”同名文件一堆&#xff0c;不知道哪个是最终版想统一检索、统一管理&#xff0c;但又不…

作者头像 李华
网站建设 2026/6/23 19:06:09

深度拆解人机协同三大架构设计,教你打造高可用交互系统

第一章&#xff1a;人机协同操作的新模式探索在数字化转型加速的背景下&#xff0c;人机协同已从辅助工具演变为核心生产力引擎。现代系统不再追求完全自动化或纯人工操作&#xff0c;而是强调人类智能与机器能力的互补融合。这种新模式不仅提升了任务执行效率&#xff0c;还增…

作者头像 李华
网站建设 2026/6/23 17:01:59

解放Dell G15散热潜能:轻量级开源控制中心完全指南

解放Dell G15散热潜能&#xff1a;轻量级开源控制中心完全指南 【免费下载链接】tcc-g15 Thermal Control Center for Dell G15 - open source alternative to AWCC 项目地址: https://gitcode.com/gh_mirrors/tc/tcc-g15 还在为Dell G15笔记本散热问题烦恼吗&#xff1…

作者头像 李华
网站建设 2026/6/23 17:01:59

为什么99%的团队在Open-AutoGLM部署上失败?真相令人震惊

第一章&#xff1a;为什么99%的团队在Open-AutoGLM部署上失败&#xff1f;真相令人震惊许多团队在尝试部署 Open-AutoGLM 时遭遇重大挫折&#xff0c;问题根源往往并非技术本身&#xff0c;而是对系统依赖和配置流程的严重低估。真正的失败点集中在环境隔离、模型加载机制与推理…

作者头像 李华
网站建设 2026/6/23 9:37:38

智慧树学习助手:自动化网课管理解决方案

智慧树学习助手&#xff1a;自动化网课管理解决方案 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台上的网课学习效率低下而困扰吗&#xff1f;这款智…

作者头像 李华