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

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

部分实现代码如下

<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.lryc.cn/news/341481.html

相关文章:

  • 微信公众号排名 SEO的5个策略
  • python烟花代码
  • Python高级编程
  • leetCode75. 颜色分类
  • 选择器、pxcook软件、盒子模型
  • 商城系统秒杀功能设计思想
  • #初始化列表
  • Vue-组件中的data
  • 抖音小店达人佣金应该怎么结算呢?给达人设置多少佣金合适?
  • 水稻病害检测(YOLO数据集,多分类,稻瘟病、纹枯病、褐斑病、枯心病、霜霉病、水稻细菌性条纹斑病、稻苞虫)
  • MYSQL数据库专业术语及创建数据表详细讲解{sql语句创建数据库语句及条件子句解析,编码格式解析,创建数据表解析,表定义字段解析,主键约束解析}
  • Kubernetes的13个常用命令,你都熟悉吗
  • python从0开始学习(三)
  • golang判断通道chan是否关闭的2种方式
  • npm install 会报错npm audit错误,会提示你有多少个漏洞需要结局等
  • 揭秘磁盘参数错误:数据恢复的黄金法则与预防策略
  • oracle常见操作
  • SkyWalking 自定义Span并接入告警
  • 代理IP,助力海外社媒运营!
  • 手撕spring框架(3)
  • Swift手撸轮播效果
  • 数据分析——业务数据描述
  • 【哈希表】Leetcode 14. 最长公共前缀
  • (三)JVM实战——对象的内存布局与执行引擎详解
  • 微信视频号如何变现呢,视频号涨粉最快方法
  • 数智先锋 | 多场景数据治理案例,释放数据要素生产力
  • UE5 audio capture 回声问题 ||在安卓上有爆鸣声
  • 第 10 场蓝桥杯小白入门赛题解
  • 抖音视频评论区用户采集 根据视频链接批量获取用户信息
  • C++ 多态(一)