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

element的el-autocomplete组件的使用(模糊匹配、自定义模板、远程搜索)

一、代码实现

<template><div><!-- trigger-on-focus 是否在输入框 focus 时显示建议列表 --><!-- autocomplete 是一个可带输入建议的输入框组件,fetch-suggestions 是一个返回输入建议的方法属性,如 querySearch(queryString, cb),在该方法中你可以在你的输入建议数据准备好时通过 cb(data) 返回到 autocomplete 组件中。 --><!-- fetch-suggestions 返回输入建议的方法,仅当你的输入建议数据 resolve 时,通过调用 callback(data:[]) 来返回它 --><el-row class="demo-autocomplete"><el-col :span="24"><div class="sub-title">激活即列出输入建议</div><el-autocomplete class="inline-input" v-model="state1" :fetch-suggestions="querySearch" placeholder="请输入内容"@select="handleSelect"></el-autocomplete></el-col><el-col :span="24"><div class="sub-title">输入后匹配输入建议</div><el-autocomplete class="inline-input" v-model="state2" :fetch-suggestions="querySearch" placeholder="请输入内容":trigger-on-focus="false" @select="handleSelect"></el-autocomplete></el-col><el-col :span="24"><div class="sub-title">自定义模板</div><el-autocomplete class="inline-input" v-model="state3" :fetch-suggestions="querySearch" placeholder="请输入内容":trigger-on-focus="true" @select="handleSelect"><i class="el-icon-edit el-input__icon" slot="suffix" @click="handleIconClick"></i><template slot-scope="{ item }"><div class="name">{{ item.value }}</div><span class="addr" style="color:#b4b4b4;">{{ item.address }}</span></template></el-autocomplete></el-col><el-col :span="24"><div class="sub-title">远程搜索</div><el-autocomplete v-model="state4" :fetch-suggestions="querySearchAsync" placeholder="请输入内容"@select="handleSelect"></el-autocomplete></el-col></el-row></div>
</template>
<script>
export default {name: 'AutoComplete',data() {return {restaurants: [],state1: '',state2: '',state3: '',state4: '',};},mounted() {this.restaurants = this.loadAll();},methods: {// 获取数据loadAll() {return [{ "value": "三全鲜食(北新泾店)", "address": "长宁区新渔路144号" },{ "value": "Hot honey 首尔炸鸡(仙霞路)", "address": "上海市长宁区淞虹路661号" },{ "value": "新旺角茶餐厅", "address": "上海市普陀区真北路988号创邑金沙谷6号楼113" },{ "value": "泷千家(天山西路店)", "address": "天山西路438号" },{ "value": "胖仙女纸杯蛋糕(上海凌空店)", "address": "上海市长宁区金钟路968号1幢18号楼一层商铺18-101" },{ "value": "贡茶", "address": "上海市长宁区金钟路633号" },];},querySearch(queryString, callback) {console.log(queryString, 'queryString')var restaurants = this.restaurants;var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;// 调用 callback 返回建议列表的数据callback(results);},// 根据queryString进行筛选createFilter(queryString) {return (restaurant) => {return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);};},// 选中handleSelect(item) {console.log(item);},// 点击图标handleIconClick(ev) {console.log(ev, 'ev');},// ---------------------------------------------远程搜索相关------------------------------------querySearchAsync(queryString, cb) {var restaurants = this.restaurants;var results = queryString ? restaurants.filter(this.createStateFilter(queryString)) : restaurants;// 实际项目,从接口获取数据clearTimeout(this.timeout);this.timeout = setTimeout(() => {cb(results);}, 3000 * Math.random());},createStateFilter(queryString) {return (state) => {return (state.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);};},},
}
</script><style scoped>
.sub-title{margin-top: 10px;margin-bottom: 10px;
}
</style>

二、效果图

在这里插入图片描述

相关文章:

  • axios原理
  • JVM的组成部分(类加载器、运行时数据区、执行引擎、本地库接口)
  • docker ps -a 要求只显示自己想要的信息
  • docker使用http_proxy配置代理
  • 【Java网络编程02】套接字编程
  • 基于CLIP4Clip的DRL的WTI模块实现
  • Three.js Tri-panner (三面贴图) 材质 两种实现方式
  • 舞动微服务的安全舞伴:服务熔断与服务降级的精妙演绎
  • C#,入门教程(24)——类索引器(this)的基础知识
  • OPENGL光线追踪
  • Kafka-服务端-DelayedOperationPurgatory
  • docker:Java通过nginx获取客户端的真实ip地址
  • 【云原生之kubernetes实战】在k8s环境下部署Mikochi文件管理工具
  • 【STM32调试】寄存器调试不良问题记录持续版
  • etcd安装
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【159天】尚学堂高琪Java300集视频精华笔记(128)
  • 11111111
  • codis proxy处理流程
  • ComponentOne 2017 V2版本正式发布
  • DOM的那些事
  • Hibernate【inverse和cascade属性】知识要点
  • java8 Stream Pipelines 浅析
  • JavaScript设计模式与开发实践系列之策略模式
  • jquery cookie
  • mysql 数据库四种事务隔离级别
  • node 版本过低
  • OSS Web直传 (文件图片)
  • Redis中的lru算法实现
  • RxJS: 简单入门
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • spring boot 整合mybatis 无法输出sql的问题
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 解析带emoji和链接的聊天系统消息
  • 开源中国专访:Chameleon原理首发,其它跨多端统一框架都是假的?
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 以太坊客户端Geth命令参数详解
  • 原生js练习题---第五课
  • 主流的CSS水平和垂直居中技术大全
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • 阿里云重庆大学大数据训练营落地分享
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #ubuntu# #git# repository git config --global --add safe.directory
  • #免费 苹果M系芯片Macbook电脑MacOS使用Bash脚本写入(读写)NTFS硬盘教程
  • (1)STL算法之遍历容器
  • (C#)一个最简单的链表类
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (转)h264中avc和flv数据的解析
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)winform之ListView
  • .equals()到底是什么意思?
  • .gitignore文件—git忽略文件
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET C#版本和.NET版本以及VS版本的对应关系