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

下拉树级带搜索功能

 可以直接复制粘贴到自己的项目里,方法处把接口替换一下

<template><div><el-popoverplacement="bottom"width="200"trigger="click"><el-inputslot="reference"class="mrInput":placeholder="placeholder"v-model="nowSelVal"clearable:disabled="disabled"@input="changeValTime"@change="changeVal"@clear="clearVal"/><div class="customTreeSelectCont"><el-treev-if="searchTit":props="treeProps":load="loadNode"empty-text="暂无数据"lazy:expand-on-click-node="false"@node-click="handleNodeClick"/><ul class="searchUl" v-else><liv-for="(item,index) in searchOptions":key="'searchUl__'+index"@click="selSearchLi(item)">{{item.label}}</li></ul></div></el-popover></div>
</template><script>
export default {name: "customTreeSelect",data() {return {nowSelVal:'',nowSelValBF:'',placeholder:'',disabled:false,treeProps: {label: 'label',value: 'value',children: 'children',isLeaf: 'leaf'},searchTit:true,searchSel:'',searchOptions:[]}},methods: {// 搜索框,实时changeValTime(val) {if(!val){this.searchTit = true}else{this.searchTit = falsethis.getSearchSelFun()}},// 搜索框,失去焦点或用户按下回车changeVal(val) {console.log('changeVal');},// 搜索框-清空clearVal() {this.searchTit = true},getSearchSelFun(){this.searchOptions = [{value: '选项1',label: '黄金糕'},{value: '选项2',label: '黄金糕22'},{value: '选项3',label: '黄金糕33'},]},// tree的懒加载loadNode(node, resolve) {// 第一次获取数据if (node.level === 0) {const arr = [{label: '测试1',value: '111'},{label: '测试2',value: '222'},]return resolve(arr)} else {// 之后点击获取数据if(node.level === 5) return resolve([])const datas = [{label: 'mmm',value: '555'}]return resolve(datas)//   // return resolve([])}},handleNodeClick(data) {this.nowSelVal = data[this.treeProps.label]},selSearchLi(data) {console.log(data);this.nowSelVal = data[this.treeProps.label]},}
}
</script><style lang="scss" scoped>.mrInput{width: 433px;}.searchUl{padding:0;margin:0;list-style: none;li{padding:5px 10px;cursor: pointer;&:hover{background: #f5f7fa;}}}.customTreeSelectCont{max-height: 500px;overflow-y: auto;&::-webkit-scrollbar {width: 6px;}//默认不展示&::-webkit-scrollbar-thumb {border-radius: 10px;background: rgba(0,0,0,0);}//划过展示,具体写法自己改改&:hover::-webkit-scrollbar-thumb {background: rgba(0,0,0,0.1);}&::-webkit-scrollbar-track {border-radius: 0;background: rgba(0,0,0,0);}}
</style>

 成果是这样的,可以手动试一下

相关文章:

  • Rocky Linux - Primavera P6 EPPM 安装及分享
  • Leetcode刷题笔记——数组与字符串篇
  • CTF 题型 SSRF攻击例题总结
  • 镭速,企业传输大文件都在用的udp文件传输工具
  • 3.19总结
  • SpringTask实现的任务调度与XXL-job实现的分布式任务调度【XXL-Job工作原理】
  • [QJS xmake] 非常简单地在Windows下编译QuickJS!
  • Qt教程 — 3.3 深入了解Qt 控件:Input Widgets部件(2)
  • 腾讯云服务器多少钱一个月?5元1个月,这价格没谁了
  • Redis常见面试题
  • 架构扩展性
  • Redis 八种常用数据类型详解
  • Elastic Agent 的安装及使用
  • Hero Talk|无缝扩展:Kubernetes 上的 Amazon Aurora 分片和流量管理
  • 【Swing】Java Swing实现省市区选择编辑器
  • #Java异常处理
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【翻译】babel对TC39装饰器草案的实现
  • Fabric架构演变之路
  • Joomla 2.x, 3.x useful code cheatsheet
  • mongo索引构建
  • Python socket服务器端、客户端传送信息
  • Python学习之路16-使用API
  • Redis中的lru算法实现
  • session共享问题解决方案
  • Vue全家桶实现一个Web App
  • webgl (原生)基础入门指南【一】
  • 大数据与云计算学习:数据分析(二)
  • 分布式事物理论与实践
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 基于Volley网络库实现加载多种网络图片(包括GIF动态图片、圆形图片、普通图片)...
  • 目录与文件属性:编写ls
  • 微信公众号开发小记——5.python微信红包
  • 再谈express与koa的对比
  • 进程与线程(三)——进程/线程间通信
  • ​​​​​​​GitLab 之 GitLab-Runner 安装,配置与问题汇总
  • ​iOS实时查看App运行日志
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • $(function(){})与(function($){....})(jQuery)的区别
  • $.ajax()参数及用法
  • %@ page import=%的用法
  • (2)Java 简介
  • (33)STM32——485实验笔记
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (Java岗)秋招打卡!一本学历拿下美团、阿里、快手、米哈游offer
  • (备忘)Java Map 遍历
  • (第二周)效能测试
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理