基于elementUI的el-autocomplete组件的自动补全下拉框实践

<template><div :class="$options.name"><el-autocompletestyle="width: 100%"ref="autocomplete":popper-class="`${$options.name}-el-autocomplete`"v-model="inputSearchValue":placeholder="`输入关键词...`":value-key="`label`":fetch-suggestions="fetchSuggestions":hide-loading="false":debounce="0"@focus="focusAutocomplete"@select="selectSuggestionsItem"@clear="focusAutocomplete"clearable><template slot-scope="{ item }"><div><span class="label" v-html="item.highlightLabel || item.label" /><spanclass="value"style="margin-left: 5px;line-height: 20px;color: #999;border-radius: 88px;background-color: #eee;box-sizing: border-box;padding: 0px 10px;">{{ item.value }}</span></div></template><el-button slot="append" icon="el-icon-search" @click="clickSearchIcon"></el-button></el-autocomplete></div>
</template>
<script>
export default {name: `autocompleteInput`,components: {},data() {return {inputSearchValue: "",searchItems: [{ value: 1, label: "显示文本1" },{ value: 2, label: "显示文本2" },{ value: 3, label: "显示文本3" },{ value: 4, label: "显示文本4" },{ value: 5, label: "显示文本5" },],};},props: ["value", "data"],watch: {data: {handler(newValue, oldValue) {if (Object.keys(newValue || {}).length) {if (newValue.ID) {this.inputSearchValue =(this.searchItems.find((v) => v.ID == newValue.ID) || {}).label ||newValue.label ||"";}}},deep: true, //深度监听immediate: true, //立即执行},},created() {},mounted() {},beforeDestroy() {},methods: {focusAutocomplete() {this.$nextTick(() => {this.$refs.autocomplete.focus();this.$refs.autocomplete.$el.querySelector("input").select();this.$refs.autocomplete.activated = true; //这句话是重点(触发下拉框出现)});},fetchSuggestions(queryString, callback) {if (!queryString) return callback(this.searchItems); //如果没有输入内容就提供最频繁使用的备选项;let qs = queryString.trim().toLocaleLowerCase();let searchItems = JSON.parse(JSON.stringify(this.searchItems));let r = searchItems.filter((v, i, ar) => {// 如果内容文本or速记符包含了输入关键词if (v.label.toLocaleLowerCase().includes(qs) ||(v.SJF || "").toLocaleLowerCase().includes(qs)) {let highlightLabel = `<b style='color:#409EFF;font-weight:bold;'>${queryString}</b>`;v.highlightLabel = v.label.replace(new RegExp(queryString, "gi"),highlightLabel);return v;}}); //从searchItems中搜索结果let perfectMatch = this.searchItems.find((v) => v.label === queryString);if (perfectMatch) {this.$emit(`s`, perfectMatch); //没有点击下拉框触发获取完全匹配项} else if (r.length === 0) {this.$emit(`s`, { ID: null, label: queryString }); //没有找到匹配项}callback(r);},selectSuggestionsItem(d) {this.$emit(`s`, d);},clickSearchIcon(d) {this.focusAutocomplete();this.$emit(`search`, d);},},
};
</script>
<style lang="scss" scoped>
.autocompleteInput {
}
</style>

el-autocomplete那些在饿了么官方文档看不到的API_el-autocomplete activated-CSDN博客文章浏览阅读469次。在Vue的Autocomplete组件中,通过设置`activated`属性为`true`和使用`suggestions`可以直接触发下拉框内容更新。当点击清除按钮后,结合`$nextTick`确保焦点重新回到输入框并显示下拉框建议。 https://blog.csdn.net/qq_37860634/article/details/130884352【sgAutocomplete】自定义组件:基于elementUI的el-autocomplete组件开发的自动补全下拉框组件(带输入建议的自动补全输入框)_elautocomplete自定义-CSDN博客文章浏览阅读1.2k次,点赞10次,收藏9次。1、支持本地保存选中过的记录2、支持动态接口获取匹配下拉框内容3、可以指定对应的显示label和字段组件key。_elautocomplete自定义 https://blog.csdn.net/qq_37860634/article/details/134851806

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/88657.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/88657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gameplay - 独立游戏Celeste的Player源码

TGA2018最佳独立游戏《蔚蓝》的一些公开代码&#xff1b;主要是Player部分的代码&#xff1a;using System; using System.Collections; using System.Collections.Generic; using Monocle; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input;namespace Cel…

基于大模型的鼻咽癌全周期预测及诊疗优化研究报告

目录 一、引言 1.1 研究背景与意义 1.2 国内外研究现状 1.3 研究目标与创新点 二、大模型技术与鼻咽癌相关理论基础 2.1 大模型技术概述 2.2 鼻咽癌疾病知识 2.3 大模型在医学领域的应用 三、数据收集与预处理 3.1 数据来源 3.2 数据清洗 3.3 数据标注 3.4 数据标…

基于odoo17的设计模式详解---访问模式

大家好&#xff0c;我是你的Odoo技术伙伴。想象一下&#xff0c;我们有一个复杂的对象结构&#xff0c;比如一个由不同类型的订单行&#xff08;销售行、折扣行、备注行&#xff09;组成的销售订单。现在&#xff0c;我们需要对这个结构执行一些新的操作&#xff0c;比如&#…

使用langgraph 构建RAG 智能问答代理

RAG 智能问答代理&#xff1a; ✅ 支持用户持续提问 ✅ 根据模型判断是否需要查资料 ✅ 自动调用 PDF 检索工具查找内容 ✅ 自动引用内容回答 ✅ 可以输入 exit / quit 退出 下载需要的library pip install langchain-google-genai pip install langgraph pip install langchai…

零基础搭建监控系统:Grafana+InfluxDB 保姆级教程,5分钟可视化服务器性能!​

​​你是否遇到过这些问题&#xff1f;​​服务器突然卡顿&#xff0c;却找不到性能瓶颈需要手动查看日志&#xff0c;无法实时监控数据运维报表全靠截图拼接&#xff0c;领导直呼“太原始”​今天教你用GrafanaInfluxDB构建企业级监控系统&#xff0c;从此告别“盲人摸象”式运…

Java中的wait和notify、Condition接口的使用

Java中的wait和notify机制基础概念在Java中&#xff0c;wait()和notify()是Object类的原生方法&#xff0c;用于实现线程间的协作&#xff1a;wait()使当前线程释放对象锁并进入等待状态必须在synchronized代码块内调用语法&#xff1a;obj.wait() 或 obj.wait(long timeout)线…

【Modern C++ Part9】Prefer-alias-declarations-to-typedefs

条款9&#xff1a;优先使用声明别名而不是typedef 我有信心说&#xff0c;大家都同意使用STL容器是个好的想法&#xff0c;并且我希望&#xff0c;条款18可以说服你使用std::unique_ptr也是个好想法&#xff0c;但是我想绝对我们中间没有人喜欢写像这样std::unique_ptr<std:…

STM32第二十一天定时器TIM

1 定时器基础知识a:上来说就是用来定时的机器&#xff0c;是存在于STM32单片机中的一个外设。STM32总共有8个定时器&#xff0c;分别是2个高级定时器(TIM1、TIM8)&#xff0c;4个通用定时器 (TIM2、TIM3、TIM4、TIM5) 和2个基本定时器 (TIM6、TIM7)&#xff0c;如下图所示&…

鼎捷T100程序开发:校验程序详解

校验程序概述 T100系统校验程序需要确保系统数据的准确性、完整性和一致性&#xff0c;相当于企业信息系统的"健康体检医生"。它通过预设规则扫描系统数据&#xff0c;识别异常和错误&#xff0c;确保业务运行可靠。通过持续完善的校验机制&#xff0c;企业能够构建数…

BaseDao 通用查询方法设计与实现

BaseDao 通用查询方法设计与实现 一、通用查询方法设计思路 1. 核心查询功能矩阵查询类型方法名功能说明复杂度主键查询findById()根据主键获取单个实体⭐全量查询findAll()获取全部实体⭐条件查询findByCondition()动态条件查询⭐⭐⭐分页查询findPage()分页结果集⭐⭐⭐⭐排序…

llama.cpp gguf主要量化方法

量化是一种通过降低模型参数的表示精度来减少模型的大小和计算存储需求的方法&#xff0c;如把单精度fp32转化为int8来减少存储和计算成本。 常见的是线性量化&#xff0c;公式 r S(q-Z)&#xff0c;将实数值r映射为量化的整数值q&#xff0c;其中缩放因子S和零点Z根据参数分…

汽车级MCU选型新方向:eVTOL垂桨控制监控芯片的替代选型技术分析

摘要&#xff1a;随着eVTOL&#xff08;电动垂直起降航空器&#xff09;领域的蓬勃发展&#xff0c;对于高性能、高可靠性的垂桨控制监控芯片的需求日益迫切。本文旨在深入探讨汽车级MCU&#xff08;微控制单元&#xff09;在这一新兴领域的应用潜力&#xff0c;以国科安芯推出…

Deepoc具身智能大模型:送餐机器人如何学会“读心术”

Deepoc具身智能大模型&#xff1a;送餐机器人如何学会“读心术”深夜十点的商场火锅店&#xff0c;一台银色机器人正穿越喧闹的人群。当它感知到奔跑的儿童突然变向&#xff0c;驱动轮立即反向微调0.3度&#xff1b;托盘上的牛油锅底因顾客推椅产生晃动&#xff0c;平衡系统瞬间…

学习设计模式《十七》——状态模式

一、基础概念 状态模式的本质是【根据状态来分离和选择行为】。 状态模式的定义&#xff1a;允许一个对象在其内部状态改变时改变它的行为&#xff1b;对象看起来似乎修改了它的类。 认识状态模式序号认识状态模式说明1状态和行为通常指的是对象实例的属性的值&#xff1b;而行…

python的婚纱影楼管理系统

前端开发框架:vue.js 数据库 mysql 版本不限 后端语言框架支持&#xff1a; 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 数据库工具&#xff1a;Navicat/SQLyog等都可以 随着婚纱…

滤波电路Multisim电路仿真实验汇总——硬件工程师笔记

目录 1 滤波电路基础知识 1.1 滤波电路的分类 1.1.1 按频率选择性分类 1.1.2 按实现方式分类 1.2 滤波电路的设计 1.2.1 确定滤波器类型 1.2.2 计算截止频率 1.2.3 选择滤波阶数 1.2.4 考虑元件参数 1.2.5 仿真验证 1.3 滤波电路的应用 1.3.1 电源滤波 1.3.2 音频…

C++随机打乱函数:简化源码与原理深度剖析

文章目录一、Fisher-Yates洗牌算法核心原理二、std::random_shuffle简化实现与缺陷分析简化源码&#xff08;核心逻辑&#xff09;原理层面的致命缺陷三、std::shuffle的现代改进与实现简化源码&#xff08;核心逻辑&#xff09;原理层面的关键改进四、随机数生成器工作原理URB…

DBeaver连接MySQL8.0报错Public Key Retrieval is not allowed

DBeaver 链接本地mysql8.0服务报错Public Key Retrieval is not allowed为什么会出现这个错误&#xff1f;MySQL 8.0 默认使用新的认证插件&#xff1a;caching_sha2_password某些客户端&#xff08;比如老版本的 JDBC 驱动或配置不当的 DBeaver&#xff09;在连接时&#xff0…

SpringBoot系列—统一功能处理(拦截器)

上篇文章&#xff1a; SpringBoot系列—MyBatis-plushttps://blog.csdn.net/sniper_fandc/article/details/148979284?fromshareblogdetail&sharetypeblogdetail&sharerId148979284&sharereferPC&sharesourcesniper_fandc&sharefromfrom_link 目录 1 拦…

《汇编语言:基于X86处理器》第7章 整数运算(3)

本章将介绍汇编语言最大的优势之一:基本的二进制移位和循环移位技术。实际上&#xff0c;位操作是计算机图形学、数据加密和硬件控制的固有部分。实现位操作的指令是功能强大的工具&#xff0c;但是高级语言只能实现其中的一部分&#xff0c;并且由于高级语言要求与平台无关&am…