news 2025/12/26 18:09:51

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进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/23 20:07:23

基于LangChain 1.1 实现 Claude Skills 动态工具加载

1. Claude Code Skills 背景介绍 Vibe Coding(氛围编程) 大家应该都听过&#xff0c;那它是怎么发展而来的呢&#xff1f; 第一代 AI 编码工具主要依赖于基于统计的补全技术&#xff0c;随后发展为以 GitHub Copilot 为代表的“中间填充”&#xff08;Fill-in-the-Middle&#…

作者头像 李华
网站建设 2025/12/24 2:57:45

QuickLook OfficeViewer:无需安装Office秒开文档的办公革命

QuickLook OfficeViewer&#xff1a;无需安装Office秒开文档的办公革命 【免费下载链接】QuickLook.Plugin.OfficeViewer Word, Excel, and PowerPoint plugin for QuickLook. 项目地址: https://gitcode.com/gh_mirrors/qu/QuickLook.Plugin.OfficeViewer 场景痛点剖析…

作者头像 李华
网站建设 2025/12/22 16:17:57

保姆级教程!小白也能秒会的RAG数据准备全流程:从文档加载到智能分块,让AI知识库构建so easy![特殊字符]

文章详解RAG数据准备流程&#xff0c;包括文档加载和文本分块两大步骤。文档加载比较了Unstructured、PyMuPDF4LLM等工具特点与适用场景&#xff1b;文本分块分析了固定大小、递归分块、语义分块等策略&#xff0c;以及基于文档结构的分块方法&#xff0c;并介绍了ChunkViz可视…

作者头像 李华
网站建设 2025/12/23 17:18:08

零基础掌握Altium Designer手动布线流程

零基础也能搞定&#xff01;Altium Designer手动布线实战全解析你是不是也遇到过这种情况&#xff1a;原理图画完了&#xff0c;元器件都连上了&#xff0c;可一打开PCB界面&#xff0c;满屏飞线像蜘蛛网一样&#xff0c;完全不知道从哪下手&#xff1f;别急——这正是每个硬件…

作者头像 李华
网站建设 2025/12/24 3:20:59

智慧树自动学习插件:告别手动刷课的新选择

智慧树自动学习插件&#xff1a;告别手动刷课的新选择 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树网课的繁琐操作而烦恼吗&#xff1f;每次视频结束都…

作者头像 李华