news 2026/4/16 15:05:03

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/4/16 10:16:18

Open-AutoGLM如何在手机上运行?揭秘轻量化部署的3种高效方案

第一章&#xff1a;Open-AutoGLM怎么部署到手机将 Open-AutoGLM 部署到手机设备上&#xff0c;能够实现本地化、低延迟的自然语言处理能力。该过程主要依赖于模型量化、移动端推理框架支持以及轻量级运行时环境的构建。准备模型文件 Open-AutoGLM 原始模型通常基于 PyTorch 或 …

作者头像 李华
网站建设 2026/4/16 10:21:40

5分钟掌握碧蓝航线智能自动化:终极配置指南

5分钟掌握碧蓝航线智能自动化&#xff1a;终极配置指南 【免费下载链接】AzurLaneAutoScript Azur Lane bot (CN/EN/JP/TW) 碧蓝航线脚本 | 无缝委托科研&#xff0c;全自动大世界 项目地址: https://gitcode.com/gh_mirrors/az/AzurLaneAutoScript 还在为重复的日常任务…

作者头像 李华
网站建设 2026/4/15 14:58:16

突发!刚刚新增1本期刊被标记为On Hold!

&#x1f525; &#x1f525; &#x1f525; &#x1f525;2025年12月&#xff0c;又新增1本4区期刊被WOS数据库标记为“On Hold”状态——《Rita-Revista Indexada de Textos Academicos》。期刊简介【ISSN & E-ISSN】2340-9711 & 2386-7027【期刊简介】IF&…

作者头像 李华
网站建设 2026/4/16 10:19:12

【Open-AutoGLM插件深度解析】:揭秘下一代自动化代码生成核心技术

第一章&#xff1a;Open-AutoGLM插件的基本概念与核心价值Open-AutoGLM 是一款面向大语言模型&#xff08;LLM&#xff09;生态的开源自动化推理增强插件&#xff0c;旨在通过结构化任务分解与动态工具调用机制&#xff0c;提升模型在复杂场景下的决策能力与执行精度。其核心设…

作者头像 李华
网站建设 2026/4/16 7:26:35

【Open-AutoGLM开源深度解析】:揭秘国产自动化大模型背后的黑科技

第一章&#xff1a;Open-AutoGLM开源深度解析Open-AutoGLM 是一个面向自动化自然语言处理任务的开源框架&#xff0c;旨在通过轻量化架构实现高效的文本理解与生成。该框架基于 GLM 架构进行扩展&#xff0c;支持多任务学习、零样本迁移以及模块化插件机制&#xff0c;适用于智…

作者头像 李华
网站建设 2026/4/15 16:41:43

施密特触发器在长线传输中的抗干扰实践:完整示例

施密特触发器如何“驯服”长线干扰&#xff1f;一个工业通信实战案例讲透你有没有遇到过这样的问题&#xff1a;系统明明设计得很稳&#xff0c;但只要旁边的大电机一启动&#xff0c;MCU就莫名其妙重启、串口乱码、传感器数据跳变&#xff1f;更诡异的是&#xff0c;示波器抓到…

作者头像 李华