下拉树级带搜索功能

news2025/2/26 3:31:29

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

<template>
  <div>
    <el-popover
      placement="bottom"
      width="200"
      trigger="click">
      <el-input
        slot="reference"
        class="mrInput"
        :placeholder="placeholder"
        v-model="nowSelVal"
        clearable
        :disabled="disabled"
        @input="changeValTime"
        @change="changeVal"
        @clear="clearVal"
      />
    <div class="customTreeSelectCont">
      <el-tree
        v-if="searchTit"
        :props="treeProps"
        :load="loadNode"
        empty-text="暂无数据"
        lazy
        :expand-on-click-node="false"
        @node-click="handleNodeClick"
      />
      <ul class="searchUl" v-else>
        <li
          v-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 = false
        this.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>

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

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

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

相关文章

巨细!Python爬虫详解

爬虫&#xff08;又称为网页蜘蛛&#xff0c;网络机器人&#xff0c;在 FOAF 社区中间&#xff0c;更经常的称为网页追逐者&#xff09;&#xff1b;它是一种按照一定的规则&#xff0c;自动地抓取网络信息的程序或者脚本。 如果我们把互联网比作一张大的蜘蛛网&#xff0c;那…

二、yocto 集成ros2(基于raspberrypi 4B)

yocto 集成ros2 yocto 集成ros21. 下载ros layer2. 编译集成ros3. 功能验证 yocto 集成ros2 本篇文章为基于raspberrypi 4B单板的yocto实战系列的第二篇文章。 一、yocto 编译raspberrypi 4B并启动 本节我们将ros2机器人操作系统移植到我们的yocto系统里面。 1. 下载ros laye…

Ansible基本介绍与模块使用

目录 引言 一、Ansible简介 &#xff08;一&#xff09;基本概述 &#xff08;二&#xff09;主要特点 二、Ansible安装及基本组件 &#xff08;一&#xff09;yum安装 &#xff08;二&#xff09;编译安装 &#xff08;三&#xff09;基本配置信息 1.主配置文件 2.主…

v-bind 绑定 class 与 style 基础用法

使用 v-bind 指令绑定 class 和 style 时语法相对复杂一些&#xff0c;这两者是可以互相替代的&#xff0c;均用于响应更新HTML元素的属性&#xff0c; v-bind 绑定 class 属性可以改写成绑定 style 属性&#xff0c;只是 css 属性位置变了而已。 1. 绑定 class 属性 1.1 数组…

GPT-4与Claude3、Gemini、Sora:AI领域的技术创新与突破

【最新增加Claude3、Gemini、Sora、GPTs讲解及AI领域中的集中大模型的最新技术】 2023年随着OpenAI开发者大会的召开&#xff0c;最重磅更新当属GPTs&#xff0c;多模态API&#xff0c;未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义&#xff0c;不亚…

考研失败, 学点Java打小工_Day3_卫语句_循环

1 编码规范——卫语句 表达异常分支时&#xff0c;少用if-else方式。   比如成绩判断中对于非法输入的处理&#xff1a; /*>90 <100 优秀>80 <90 良好>70 <80 一般>60 <70 及格<60 不及格*/Testpu…

行业领袖齐聚香港,共襄区块链盛宴——Symbiosis 联合创始人Nick Avramov确认出席Hack.Summit() 2024区块链开发者大会

随着区块链技术的飞速进步和广泛应用&#xff0c;一场区块链行业的重量级盛会即将在香港数码港隆重举行。由Hack VC主办、AltLayer和Berachain协办&#xff0c;并得到Solana、The Graph、Blockchain Academy、ScalingX、0G、SNZ和数码港等机构的合作支持&#xff0c;由Techub N…

【全开源】JAVA姓氏头像情侣头像家庭头像赚钱签名头像谐音顽埂头像设计小程序头像大全系统源码支持微信小程序+微信公众号+H5|博纳软云

一、功能介绍 用户端&#xff1a;查看近期生成的头像&#xff0c;我的团队&#xff0c;分享好友&#xff0c; 姓氏头像&#xff0c;情侣头像&#xff0c;亲子头像&#xff0c;家庭头像 选择模板&#xff0c;个人资料&#xff0c;修改资料&#xff0c;注销账号。 我们技术使用…

你真的会做抖音小店吗?你做抖店的方法是正确的吗?教学分享

大家好&#xff0c;我是电商花花。 新的一年&#xff0c;不少做抖店的商家都会产生一个疑问&#xff0c;2024年抖音小店无货源还能继续做吗&#xff1f; 做无货源模式还会被处罚吗&#xff1f; 先说答案&#xff0c;2024年抖音小店无货源能做&#xff0c;不仅能做且仍然是抖音…

简明 FastAPI 并发请求指南

在当今的数字化世界中&#xff0c;网络用户对于高速响应和持续连接的诉求日益显著。这促使了基于 Python 构建的 FastAPI 框架受到广泛关注&#xff0c;它不仅现代化且效率极高&#xff0c;而且简化了并行请求的处理。本篇文章旨在探讨 FastAPI 如何处理这类请求&#xff0c;并…

Java项目:64 ssm营业厅宽带系统+jsp

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 角色&#xff1a;管理员、用户 管理员的功能有&#xff1a;查看已发布的用户信息&#xff0c;修改用户信息或更换用户内容&#xff0c;用户信息作废&…

计算机二级Python题目12

目录 1. 基础题 1.1 基础题1 1.2 基础题2 1.3 基础题3 2. turtle画图题 3. 大题 3.1 大题1 3.2 大题2 1. 基础题 1.1 基础题1 sinput("请输入一个小数&#xff1a;") ss[::-1] cs0 for c in s:if c.:breakcseval(c) print({:*>10}.format(cs)) 1.2 基础…

SpringCloud Alibaba 入门简介

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第十一篇&#xff0c;即介绍 SpringCloud Alibaba 的入门信息。 二、出现的原因 Spring Cloud Netflix…

外包干了28天,技术退步明显......

说一下自己的情况&#xff0c;本科生&#xff0c;19年通过校招进入深圳某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&a…

哈希技术解析:从哈希函数到哈希桶迭代器的全面指南

文章目录 引言一、哈希表与哈希函数1、哈希表的基本原理2、哈希函数的作用与特点3、哈希冲突的处理方法 二、哈希桶及其迭代器1、 哈希桶a.定义哈希桶结构b.哈希函数c.哈希桶的插入、查找、删除 2、 哈希桶的迭代器a.类型定义与成员变量b.构造函数c.解引用与比较操作d.递增操作…

LeetCode 每日一题 Day 102-108

2864. 最大二进制奇数 给你一个 二进制 字符串 s &#xff0c;其中至少包含一个 ‘1’ 。 你必须按某种方式 重新排列 字符串中的位&#xff0c;使得到的二进制数字是可以由该组合生成的 最大二进制奇数 。 以字符串形式&#xff0c;表示并返回可以由给定组合生成的最大二进…

【DL经典回顾】激活函数大汇总(二十五)(GEGLU附代码和详细公式)

激活函数大汇总&#xff08;二十五&#xff09;&#xff08;GEGLU附代码和详细公式&#xff09; 更多激活函数见激活函数大汇总列表 一、引言 欢迎来到我们深入探索神经网络核心组成部分——激活函数的系列博客。在人工智能的世界里&#xff0c;激活函数扮演着不可或缺的角色…

OxyPlot 导出图片

在 OxyPlot 官方文档 https://oxyplot.readthedocs.io/en/latest/export/index.html 中查看 这里用到的是导出到 PNG 文件的方法&#xff0c;不过用的 NuGet 包最新版&#xff08;2.1.0&#xff09;中&#xff0c;PngExporter 中并没有 Background 属性&#xff1a; 所以如果图…

【No.13】蓝桥杯二分查找|整数二分|实数二分|跳石头|M次方根|分巧克力(C++)

二分查找算法 知识点 二分查找原理讲解在单调递增序列 a 中查找 x 或 x 的后继在单调递增序列 a 中查找 x 或 x 的前驱 二分查找算法讲解 枚举查找即顺序查找&#xff0c; 实现原理是逐个比较数组 a[0:n-1] 中的元素&#xff0c;直到找到元素 x 或搜索整个数组后确定 x 不在…

node核心模块之Process

核心模块, 是node中自带的模块&#xff0c;可以在node中直接使用 目录 1. process(对象)1.1process.exit()1.2process.nextTick(callback: Function, ...args: any[]) 2.宿主对象2.1浏览器宿主对象window2.2node宿主对象global2.3ES标准下&#xff0c;全局对象的标准名globalT…