elementui的el-select+el-tree+el-input实现可搜索的下拉树组件

devtools/2024/11/13 9:17:19/

部分实现代码如下

<template>
<div><el-selectv-model="item.TableName"placeholder="请选择":disabled="!item.disabled"@visible-change="handleVisible"ref="TableName"><el-input placeholder="请输入关键词" v-model="inputValue" maxlength="40"><i slot="suffix" class="el-input__icon el-icon-search" @click="getTreeData"></i></el-input><el-option :value="item.TableName" style="height: 200px; overflow-y: auto"><el-treev-loading="loading":data="treeData":index="index":props="defaultProps":default-expand-all="expandAll"node-key="puid"highlight-currentv-if="refreshTree"@node-click="(data, node, item) =>handleNodeClick(data, node, item, index, 'TableName')"/></el-option></el-select>
</div>
</template>
在这里插入代码片
<script>
export default {name: '',components: {},props: {defaultProps: { type: Object, default: () => ({}) },treeData: { type: Array, required: true, default: () => [] },},data() {return {inputValue: '', //树搜索值expandAll: false, //搜索后全部展开refreshTree: true,loading: false,};},computed: {},methods: {// 树模型选中后触发,选中数据赋值到下拉框,判断是否有重复数据,重复的话提示handleNodeClick(data, node, item, index, position) {操作:自定义// 选择后收起下拉菜单setTimeout(() => {this.$refs[position][index].blur();}, 50);},// 筛选树模型数据;触发父组件搜索接口,修改this.treeData数值即可getTreeData() {this.loading = true;},// 下拉框出现或隐藏清空输入框值,重新获取所有treeDatahandleVisible() {this.inputValue = '';},},watch: {// 更新属性inputValue: {handler(newVal, oldVal) {if (newVal !== oldVal) {// 再次重新请求数据接口即可}},immediate: true,deep: true,},},};
</script>
<style lang="scss">
.el-input-group__append,
.el-input-group__prepend {padding: 0;background: #ffffff;font-size: 14px;
}
.el-input-group {width: 88%;padding: 10px 18px;
}
.el-icon-caret-right:before {content: '\e6e0';
}
.el-select-dropdown__item.hover,
.el-select-dropdown__item:hover {background: #ffffff;
}
.el-select-dropdown__item {padding: 10px 0 0 0;}
.el-select-dropdown__list {padding: 6px 20px;
}
.el-scrollbar__bar.is-vertical {display: none;
}
.el-input__icon {transform: scale(1.5);
}

http://www.ppmy.cn/devtools/24450.html

相关文章

StatusBar,状态栏设置中文

在Qt的ui中&#xff0c; 菜单栏–View–Property Editor–statusBarVisible–勾选– 在C代码中&#xff0c; sloem1.h private://任意写一个函数void onStatusBarShow();sloem1.cpp void sloem1::onStatusBarShow() {QString strLabel;//显示文字来源this->setTextResour…

Linux:升级OpenSSL和OpenSSH

原因是现有版本存在安全漏洞&#xff0c;需要升级到新版本 原有版本和升级后的版本 OpenSSL 1.0.2k-fips 26 Jan 2017 -> OpenSSL 1.1.1w 11 Sep 2023OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017 -> OpenSSH_9.5p1, OpenSSL 1.1.1w 11 Sep 2023目录 查看现有版…

Web3与智能合约:科技革新下的新金融时代

在当今数字化时代&#xff0c;Web3和智能合约正在共同塑造着金融领域的未来。Web3作为下一代互联网的重要组成部分&#xff0c;以其去中心化、安全性和透明性为核心特点&#xff0c;正推动着金融行业向着数字化和去中心化的方向发展。而智能合约作为Web3技术的关键应用之一&…

初探 JUC 并发编程:Java 并发包中并发 List 源码剖析

最近在阅读 《Java 并发编程之美》这本书&#xff0c;感觉学到了很多东西&#xff1b;所以我决定将从事书中学到的思想和一些经典的案例整理成博客的形式与大家分享和交流&#xff0c;如果对大家有帮助别忘了留下点赞和关注捏。 第五部分&#xff1a;Java 并发包中并发 List 源…

Tcp自连接

Tcp自连接 如果客户端和服务端都在同一个环境&#xff0c;并且客户端先于服务端启动&#xff0c;那么很有可能产生自连接的现象。 所谓自连接&#xff0c;就是tcp两端使用了同一个端口进行连接&#xff0c;即localhost:port->localhost:port。 实现自连接 下面提供一个例…

校园安全升级:AR实景监测场景方案

在教育领域&#xff0c;随着校园的逐步对外开放&#xff0c;学校正面临着前所未有的管理挑战。社会人员的大量涌入不仅带来了文化的交流和知识的分享&#xff0c;也给校园安全带来了诸多隐患。新闻报道中不断出现的校园安全事件&#xff0c;如入室伤人、盗窃和非法传销等&#…

北斗、网络时钟服务器(NTP授时服务器)几种设置方法

北斗、网络时钟服务器&#xff08;NTP授时服务器&#xff09;几种设置方法 计算机网络必须设立属于主机的NTP服务器&#xff0c;向网内用户提供网络校时服务&#xff0c;使得各种网络设备、服务器、个人计算机等可以通过NTP服务器校正它们自己的时间&#xff0c;用户可使用任何…

webpack 区分环境

区分环境 {ignore} 文章目录 区分环境 {ignore} 有些时候&#xff0c;我们需要针对生产环境和开发环境分别书写webpack配置 为了更好的适应这种要求&#xff0c;webpack允许配置不仅可以是一个对象&#xff0c;还可以是一个函数 module.exports env > {return {//配置内容…