当前位置: 首页 > news >正文

基于elementui的远程搜索下拉选择分页组件

在开发一个练手项目的时候,需要一个远程搜索的下拉选择组件;
elementui自带的el-select支持远程搜索;但如果一次性查询的数据过多;会导致卡顿。故自己实现一个可分页的远程下拉选择组件
效果:
在这里插入图片描述
代码:

<template><el-selectv-model="selectedValue"filterableremotereserve-keywordplaceholder="请输入关键词":remote-method="remoteSearch":loading="loading"@change="handleChange"@focus="handleFocus"@clear="handleClear"clearable><el-optionv-for="item in options":key="item[keyField]":label="item[labelField]":value="item[valueField]"/><div class="select-footer" v-if="total > 0"><div class="total-count">{{ total }}</div><div class="select-pagination" v-if="total > pageSize"><el-paginationsmalllayout="prev, pager, next":total="total":page-size="pageSize":current-page.sync="currentPage"@current-change="handlePageChange"/></div></div></el-select>
</template><script>
import request from '@/utils/request'export default {name: 'RemoteSearchSelect',props: {value: {type: [String, Number],default: ''},apiUrl: {type: String,required: true},// 自定义字段映射labelField: {type: String,default: 'label'},valueField: {type: String,default: 'value'},keyField: {type: String,default: 'id'},// 请求参数自定义searchParamName: {type: String,default: 'keyword'},pageParamName: {type: String,default: 'pageNum'},pageSizeParamName: {type: String,default: 'pageSize'},// 响应数据结构配置responseListField: {type: String,default: 'list'},responseTotalField: {type: String,default: 'total'},// 额外的请求参数extraParams: {type: Object,default: () => ({})}},data() {return {selectedValue: this.value,options: [],loading: false,currentPage: 1,pageSize: 10,total: 0,keyword: '',isFirstFocus: true,selectedOption: null}},created() {this.remoteSearch('');},methods: {async remoteSearch(query) {this.loading = truethis.keyword = querytry {const params = {[this.searchParamName]: query,[this.pageParamName]: this.currentPage,[this.pageSizeParamName]: this.pageSize,...this.extraParams}// 使用配置的响应数据字段const responseData = await request({url: this.apiUrl,method: 'post',data: params})this.options = responseData[this.responseListField] || []this.total = responseData[this.responseTotalField] || 0} catch (error) {console.error('搜索出错:', error)this.$message.error('搜索失败,请重试')} finally {this.loading = false}},handleChange(value) {this.selectedOption = this.options.find(item => item[this.valueField] === value)this.$emit('input', value)this.$emit('change', value)this.$emit('select', this.selectedOption)},handleFocus() {// 如果是首次点击或当前没有选项,则执行搜索this.remoteSearch(this.keyword)this.isFirstFocus = false},handleClear() {this.selectedValue = ''this.keyword = ''this.selectedOption = nullthis.$emit('input', '')this.$emit('change', '')this.$emit('select', null)this.remoteSearch('')},async handlePageChange(page) {this.currentPage = pageif (this.keyword) {await this.remoteSearch(this.keyword)}}},watch: {value: {handler(newVal) {this.selectedValue = newVal},immediate: true}}
}
</script><style scoped>
.select-footer {padding: 8px;border-top: 1px solid #EBEEF5;display: flex;align-items: center;justify-content: space-between;
}.total-count {color: #909399;font-size: 12px;padding-left: 8px;
}:deep(.el-pagination) {padding: 0;margin-left: 8px;
}
</style>

用法

<remote-search-selectv-model="assignForm.ownerId"api-url="remoteUrl"label-field="label"value-field="value"key-field="id"search-param-name="childName"response-list-field="rows"response-total-field="total"@select="handleProxyerSelectChange"/>

参数介绍:

参数说明
v-model绑定的data数据
api-url远程查询的数据接口路径,方法名,请求方式为post
label-field需要展示的名称属性名
value-field下拉值的属性名
key-field主键的属性名
search-param-name模糊搜索的参数的字段名
response-list-field返回list的属性名
response-total-field返回list的总数的属性名
@selectfuntion,接收选中的值

组件可根据自己的具体需求做源码修改。

相关文章:

基于elementui的远程搜索下拉选择分页组件

在开发一个练手项目的时候&#xff0c;需要一个远程搜索的下拉选择组件&#xff1b; elementui自带的el-select支持远程搜索&#xff1b;但如果一次性查询的数据过多&#xff1b;会导致卡顿。故自己实现一个可分页的远程下拉选择组件 效果&#xff1a; 代码&#xff1a; <…...

每日一题 LCR 074. 合并区间

LCR 074. 合并区间 对遍历顺序注意一下就可以 class Solution { public:vector<vector<int>> merge(vector<vector<int>>& intervals) {int n intervals.size();sort(intervals.begin(),intervals.end());int idx 0;vector<vector<int&g…...

Flink SQL

Overview | Apache Flink FlinkSQL开发步骤 Concepts & Common API | Apache Flink 添加依赖&#xff1a; <dependency><groupId>org.apache.flink</groupId><artifactId>flink-table-api-java-bridge_2.11</artifactId><version>…...

[免费]SpringBoot+Vue企业OA自动化办公管理系统【论文+源码+SQL脚本】

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue企业OA自动化办公管理系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue企业OA自动化办公管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 随着信息技术在管理上越来越深入…...

Linux下编译安装METIS

本文记录Linux下编译安装METIS的流程。 零、环境 操作系统Ubuntu 22.04.4 LTSVS Code1.92.1Git2.34.1GCC11.4.0CMake3.22.1 一、安装依赖 1.1 下载GKlib sudo apt-get install build-essential sudo apt-get install cmake 2.2 编译安装GKlib 下载GKlib代码&#xff0c; …...

LLM学习路径 - 渐进式构建知识体系

LLM学习路径 - 渐进式构建知识体系 文章目录 LLM学习路径 - 渐进式构建知识体系一、模型算法基础二、机器学习三、深度学习四、自然语言处理 (NLP)五、大规模语言模型 (LLM) References 一、模型算法基础 编程基础 Web 框架 深入学习 Gradio 与 Streamlit&#xff0c;理解其构…...

使用Unity脚本模拟绳索、布料(碰撞)

效果演示&#xff1a; 脚本如下&#xff1a; using System.Collections; using System.Collections.Generic; using UnityEngine;namespace PhysicsLab {public class RopeSolver : MonoBehaviour {public Transform ParticlePrefab;public int Count 3;public int Space 1;…...

Qt Chart 模块化封装曲线图

一 版本说明 二 完成示例 此文章包含&#xff1a;曲线轴设置&#xff0c;曲线切换&#xff0c;单条曲线显示&#xff0c;坐标轴。。。 三 曲线图UI创建 在UI界面拖放一个QWidget,然后在 Widget里面放一个 graphicsView 四 代码介绍 1 头文件 #include <QString> #in…...

【Linux】深入理解进程管理与fork系统调用的实现原理

【Linux】深入理解进程管理与fork系统调用的实现原理 进程基本概念描述进程-PCBtask_struct-PCB的一种task_ struct内容分类组织进程 查看进程通过系统调用获取进程标示符Fork 之后的代码共享1. **代码共享**2. **数据段不共享**总结 &#x1f30f;个人博客主页&#xff1a;个人…...

C语言程序设计P5-2【应用函数进行程序设计 | 第二节】——知识要点:函数的参数及返回值和函数的调用及声明

知识要点&#xff1a;函数的参数及返回值和函数的调用及声明 视频&#xff1a; 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 1.求x的n次方的值也就是求n个x的乘积&#xff0c;可把x和n作为函数的形参&#xff0c;定义一个函数power来完成这个功能&am…...

【LeetCode】169.多数元素

题目连接&#xff1a; https://leetcode.cn/problems/majority-element/solutions/2362000/169-duo-shu-yuan-su-mo-er-tou-piao-qing-ledrh/?envTypestudy-plan-v2&envIdtop-interview-150 题目描述&#xff1a; 思路一&#xff1a; 使用哈希表unordered_map记录每个元…...

0x0118消息 WM_SYSTIMER

0x0118消息就是WM_SYSTIMER 编辑框出现输入光标时,产生的消息. 0x0118 would be the undocumented WM_SYSTIMER, which appears to be used for caret blinks. 0x0118是一个undocument 消息&#xff0c; 微软没有记录。 但在一些库的源码中可以看到&#xff0c;比如ATL的库文…...

【Linux内核】Hello word程序

创建测试目录 mkdir -p ~/develop/kernel/hello-1 cd ~/develop/kernel/hello-1 创建MakeFile文件和内核.c文件 nano Makefile nano hello-1.c 编写内容 /* * hello-1.c - The simplest kernel module. */ #include <linux/module.h> /* Needed by all modules */…...

黑马redis

Redis的多IO线程只是用来处理网络请求的,对于读写操作命令Redis仍然使用单线程来处理 Redisson分布式锁实现15问 文章目录 主线程和IO线程是如何协作的Unix网络编程中的五种IO模型Linux世界一切皆文件生产上限制keys *、flushdb、flushall等危险命令keys * 遍历查询100W数据花…...

Robust Depth Enhancement via Polarization Prompt Fusion Tuning

paper&#xff1a;论文地址 code&#xff1a;github项目地址 今天给大家分享一篇2024CVPR上的文章&#xff0c;文章是用偏振做提示学习&#xff0c;做深度估计的。模型架构图如下 这篇博客不是讲这篇论文的内容&#xff0c;感兴趣的自己去看paper&#xff0c;主要是分享环境&…...

集合框架(3)Map

Map接口 现实生活与开发中&#xff0c;我们常会看到这样的一类集合&#xff1a;用户ID与账户信息、学生姓名与考试成绩、IP地址与主机名等&#xff0c;这种一一对应的关系&#xff0c;就称作映射。Java提供了专门的集合框架用来存储这种映射关系的对象&#xff0c;即java.util…...

Java反射机制—Class

Java反射机制是指在运行时动态地获取类的信息以及操作类的成员变量、方法和构造方法的能力。反射机制通过使用Class类来实现&#xff0c;Class类是Java中表示类的类。 通过反射机制&#xff0c;我们可以在运行时动态地创建对象、调用方法、访问属性等。反射机制提供了一种强大…...

C# 新语法中的字符串内插$和{}符号用法详解

自C#6.0开始提供一个新的语法糖&#xff0c;即"$" 符号&#xff0c;配合“{}”使用&#xff0c;它的作用除了是对String.format的简化&#xff0c;还可设置其格式模板&#xff0c;实现了对字符串的拼接优化。 语法格式&#xff1a; $"string {变量表达式}” 语…...

WordPress 独立站是否需要 CDN:深度解析及必要性分析

WordPress 是目前全球最流行的开源内容管理系统&#xff08;CMS&#xff09;&#xff0c;其易用性和丰富的插件生态使得它成为搭建独立站的首选。然而&#xff0c;随着流量的增加以及用户体验的需求&#xff0c;网站的速度和可靠性变得至关重要。在这种情况下&#xff0c;CDN&a…...

dell电脑开不了机怎么回事?戴尔电脑无法开机解决方法

dell戴尔电脑开不了机&#xff0c;这是很多使用dell电脑用户常遇到的问题。这种故障情况是由多种原因引起&#xff0c;包括硬件故障、软件问题或电源问题等等。dell电脑开不了机怎么办呢&#xff1f;下面便为大家介绍一下相关解决修复方法&#xff0c;帮助用户解决戴尔电脑无法…...

如何解决 JavaScript 中的数组方法不生效?

在 JavaScript 中&#xff0c;数组方法是常用的工具&#xff0c;可以用来对数组进行操作。常见的数组方法包括 push(), pop(), shift(), unshift(), map(), filter(), reduce() 等。 然而&#xff0c;有时候我们会遇到数组方法“失效”或者不按预期工作的情况。这个问题的原因…...

道可云人工智能元宇宙每日资讯|全国工商联人工智能委员会成立会议在南京举办

道可云元宇宙每日简报&#xff08;2024年12月5日&#xff09;讯&#xff0c;今日元宇宙新鲜事有&#xff1a; 全国工商联人工智能委员会成立会议在南京举办 全国工商联人工智能委员会成立会议日前在江苏省南京市举办。中央统战部副部长、全国工商联党组书记沈莹出席会议并讲话…...

华为HCIP-Datacom H12-821H12-831 (12月最新题库)

备考HCIP-datacom的小伙伴注意啦 !!! 2024年下半年12月份最新(H12-821和H12-831)题库带解析,有需要的小伙伴移动至文章末 H12-821: H12-831: 1.BGP 邻居建立过程的状态存在以下几种&#xff1a;那么建立一个成功的连接所经历的状态机顺序是 A、3-1-2-5-4 B、1-3-5-2-4 C、…...

模型案例:| 手机识别模型!

导读 2023年以ChatGPT为代表的大语言模型横空出世&#xff0c;它的出现标志着自然语言处理领域取得了重大突破。它在文本生成、对话系统和语言理解等方面展现出了强大的能力&#xff0c;为人工智能技术的发展开辟了新的可能性。同时&#xff0c;人工智能技术正在进入各种应用领…...

AWS创建ec2实例并连接成功

aws创建ec2实例并连接 aws创建ec2并连接 1.ec2创建前准备 首先创建一个VPC隔离云资源并且有公有子网 2.创建EC2实例 1.启动新实例或者创建实例 2.创建实例名 3.选择AMI使用linux(HVM) 4.选择实例类型 5.创建密钥对下载到本地并填入密钥对名称 6.选择自己创建的VPC和公有子网…...

短视频矩阵系统开发|技术源代码部署

短视频矩阵系统通过多账号运营管理、多平台视频智能分发等功能&#xff0c;助力企业实现视频引流、粉丝沉淀和转化。 短视频矩阵系统是一种创新的营销工具&#xff0c;它整合了多账号管理、视频智能分发、数据可视化等多种功能&#xff0c;为企业在短视频领域的发展提供了强大…...

C# GDI绘制的小熊进度条

C# GDI小熊进度条 1、添加自定义控件winform using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;…...

java书 核心技术+卷一+4

5.4 对象包装器与自动装箱 package 反射; import java.util.AbstractList; import java.util.ArrayList; public class test {public static void main(String[] args) {int a10;ArrayList<Integer> xxnew ArrayList<>();xx.add(a); //自动装箱int bxx.get(0);//…...

用Python开发一个经典打砖块小游戏

Python 的 pygame 库让我们可以轻松开发经典的小游戏。今天,我们将实现一个“打砖块”小游戏,带你体验游戏开发的乐趣。 一、游戏设计 1.1 游戏规则 玩家通过移动滑板接住弹起的球。球撞击砖块会让砖块消失,玩家得分。如果球落地,游戏失败。1.2 技术点 碰撞检测:检测球与…...

RTCMultiConnection 跨域问题解决

js套件地址 https://github.com/muaz-khan/RTCMultiConnection server套件地址 https://github.com/muaz-khan/RTCMultiConnection-Server 要解决的就是server代码的跨域问题 原装写法&#xff1a; 解决写法&#xff1a; // 喜欢组合语法的自己组 const io new ioServer.S…...

使用GO--Swagger生成文档

概述 在前后端分离的项目中&#xff0c;后端配置swagger可以很好的帮助前端人员了解后端接口参数和数据传输。go-swagger 是一个功能全面且高性能的Go语言实现工具包&#xff0c;用于处理Swagger 2.0&#xff08;即OpenAPI 2.0&#xff09;规范。它提供了丰富的工具集&#x…...

简易图书管理系统

javawebjspservlet 实体类 package com.ghx.entity;/*** author &#xff1a;guo* date &#xff1a;Created in 2024/12/6 10:13* description&#xff1a;* modified By&#xff1a;* version:*/ public class Book {private int id;private String name;private double pri…...

探索自然语言处理奥秘(NLP)

摘要 自然语言处理&#xff08;NLP&#xff09;是人工智能领域的一个重要分支&#xff0c;它致力于使计算机能够理解、解释和生成人类语言。这项技术让机器能够阅读文本、听懂语音&#xff0c;并与人类进行基本的对话交流。 通俗理解 自然语言处理&#xff08;NLP&#xff09…...

刘铁猛C#入门 030 泛型,partial类,枚举,结构

泛型(generic)无处不在 为什么需要泛型&#xff1a;避免成员膨胀或者类型膨胀 正交性&#xff1a;泛型类型(类/接口/委托/......)泛型成员(属性/方法/字段/....类型方法的参数推断 泛型接口/类的 类型参数不只有一个泛型与委托、lambda表达式实现泛型接口类时 &#xff0c;实现…...

迅雷 11.2.2 | 本地会员版,不限速下载,支持云盘

迅雷 v11.2.2 是一款带网盘功能的绿色版下载工具。双击“!)绿化”文件即可在桌面生成快捷图标。该版本干净简洁&#xff0c;仅保留下载和云盘两项核心功能。点击左上角的【新建】按钮&#xff0c;可新建链接下载任务。即使在网络条件一般的情况下&#xff08;如50M宽带&#xf…...

P3131 [USACO16JAN] Subsequences Summing to Sevens S

题目描述 Farmer Johns NN cows are standing in a row, as they have a tendency to do from time to time. Each cow is labeled with a distinct integer ID number so FJ can tell them apart. FJ would like to take a photo of a contiguous group of cows but, due to a…...

股指期货基差为正数,这是啥意思?

在股指期货的世界里&#xff0c;有个挺重要的概念叫“基差”。说白了&#xff0c;基差就是股指期货的价格和它对应的现货价格之间的差价。今天&#xff0c;咱们就来聊聊当这个基差为正数时&#xff0c;到底意味着啥。 基差是啥&#xff1f; 先复习一下&#xff0c;基差 股指…...

docker自动拉取最新镜像并更新

目录 一、自动检查和更新所有正在运行的容器&#xff08;每24h一次&#xff09; 二、仅仅更新特定的容器&#xff08;每24h一次&#xff09; 三、指定更新间隔&#xff08;300秒&#xff09; 四、Watchtower 不会主动删除旧镜像&#xff0c;使用 --cleanup 参数在更新容器后…...

unicloud微信小程序云端一体项目DEMO

最近应客户需求&#xff0c;做了一个产品展示的云开发小程序&#xff0c;从了解云开发到应用到实际项目的产品demo&#xff0c;希望大家能从中获取到对自己有用的东西。 说下心得体会吧&#xff0c;一般小项目用这种云开发确实会减少很多开发成本&#xff0c;人力成本&#xf…...

Spring+Mybatis 整合所需准备

文章目录 SpringMybatis SpringMybatis 准备pom.xml 项目所需jar文件 <spring.version>4.0.2.RELEASE</spring.version> <!-- spring框架包 --><dependency><groupId>org.springframework</groupId><artifactId>spring-test</a…...

后端工程师成长路线图

‌后端开发工程师是软件开发领域中的一个重要角色&#xff0c;主要负责平台设计、接口设计和功能实现。他们的主要职责包括服务器端业务开发、架构设计、系统性能调优等。‌ 后端开发工程师的工作内容通常涉及服务器开发、数据库管理、业务逻辑实现等方面。他们需要与前端工程…...

java -jar ./target/pay.war ./target/pay.war 中没有主清单属 为什么?

当你尝试使用 java -jar ./target/pay.war 来启动你的 WAR 包时&#xff0c;遇到的错误是因为该 WAR 包没有包含主清单属性&#xff08;Main-Class&#xff09;。这是因为你的项目是一个 Spring Boot 项目&#xff0c;并且默认是作为 WAR 文件部署到外部容器&#xff08;如 Tom…...

封闭式论文写作--全面掌握ChatGPT-4o的写作技能,掌握提示词使用技巧、文献检索与分析方法,帮助您选定研究方向,提炼学术论文题目

在当今学术研究中&#xff0c;科研人员在撰写论文时面临诸多挑战。首先是信息量的剧增&#xff0c;科研人员需要快速消化新知识&#xff0c;筛选相关信息并清晰表达。但论文写作不仅是信息的罗列&#xff0c;还需要条理清晰、逻辑严密、语言精准&#xff0c;特别是在竞争激烈的…...

解决Centos6.9的yum的失效问题

相信大家&#xff0c;如果遇到了yum问题的话&#xff0c;经常会很头疼&#xff0c;因此&#xff0c;这里给出了两条命令&#xff0c;这里的前提是你的wget是能用的 1、mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 2、wget -O /etc/yum.re…...

【日常记录-Java】查看Maven本地仓库的位置

1. 简介 Maven本地仓库主要用于存储和管理项目所需的依赖项&#xff0c;如jar包、pom文件等。默认情况下&#xff0c;其位于用户家目录下的.m2/repository文件夹内。开发者也可以在Maven的配置文件settings.xml中修改本地仓库路径。 2. 方法 2.1 查看settings.xml文件 Maven本…...

软件测试丨Web自动化测试用例录制与编写全攻略

Web自动化测试的功能简介 Web自动化测试主要是使用特定的工具或框架自动执行对Web应用程序进行的测试。通过模拟用户的操作&#xff0c;自动化测试能够验证应用程序的功能及性能。这一过程的大致流程是&#xff1a; 用例设计&#xff1a;明确测试目标、场景及所需功能。录制测…...

.Net学习

1 什么是.NET Core .NET是开发平台&#xff0c;.NET Framework、.NET Core、Xamaarin/Mono的统称。 .NET Framework是只能在Windows上开发的技术 .NET Core是可以跨平台开发的技术 Xamaarin/Mono是移动端开发的技术 .NET Core&#xff1a;跨平台、免费、开源&#xff0c;可…...

2024年华中杯数学建模A题太阳能路灯光伏板的朝向设计问题解题全过程文档及程序

2024年华中杯数学建模 A题 太阳能路灯光伏板的朝向设计问题 原题再现 太阳能路灯由太阳能电池板组件部分&#xff08;包括支架&#xff09;、LED灯头、控制箱&#xff08;包含控制器、蓄电池&#xff09;、市电辅助器和灯杆几部分构成。太阳能电池板通过支架固定在灯杆上端。…...

Spring Cloud Zookeeper 快速入门demo

1.什么是Spring Cloud Zookeeper &#xff1f; Spring Cloud Zookeeper 是一个用于构建分布式系统的工具&#xff0c;它利用 Apache Zookeeper 提供的服务来实现服务注册与发现、配置管理、负载均衡等功能。具体来说&#xff0c;Spring Cloud Zookeeper 可以做以下几件事情&am…...

防火墙有什么作用

防火墙的作用&#xff1a;1. 提供网络安全防护&#xff1b;2. 实施访问控制和流量过滤&#xff1b;3. 检测和阻止恶意攻击&#xff1b;4. 保护内部网络免受未经授权的访问&#xff1b;5. 监控网络流量和安全事件&#xff1b;6. 支持虚拟专用网络&#xff08;VPN&#xff09;。防…...