前端实现搜索框筛选

效果图

在这里插入图片描述

页面解析

是一个input输入框和一个button按钮组成输入框查询
内容是一个折叠面板

html代码

<div class="left-content-box"><div class="colum-search"><el-input v-model="columKey" clearable placeholder="请输入关键字" style="width:200px"><el-button slot="append" icon="el-icon-search" type="primary" @click="filteredItems"></el-button></el-input></div><div class="search-list-box" style="height: 75vh;overflow-x: hidden;overflow-y: auto;"><el-collapse v-model="activeNames" v-if="productBigVerions && productBigVerions.length"><div v-for="(item, searchIndex) in productBigVerions" :key="searchIndex"><el-collapse-item v-if="item.children.length > 0" :title="item.name" :name="item.infoType"><div v-for="(itemSecond, indexSecond) in item.children" :key="indexSecond"><el-tooltipref="tlp":content="getShowName(itemSecond)"effect="dark":disabled="!tooltipFlag"placement="top-start"popper-class="tooltip-width"><p @mouseenter.stop="visibilityChange($event)" :class="ListActive === searchIndex && ListActiveTwo === indexSecond ? 'search-list-box-active' : ''" class="search-list-title"  @click="getListActive(searchIndex, indexSecond, itemSecond)">{{ getShowName(itemSecond) }}</p></el-tooltip></div></el-collapse-item></div></el-collapse><div class="empty-box" style="height: 100%;display: flex;align-items: center;justify-content: center;" v-else><img th:src="@{/web/assets/images/adapter/no-data-by-text.png}" style="width: 100%;"></div></div></div>

里面还做文本操作隐藏,鼠标移上显示全部,方法在我之前的文章有介绍

前端查询

数据
treeDatas是页面返回来的数据

var productBigVerionsList = [{ value: 'application', index: 1, infoType: 4, name: '应用系统', children: treeDatas[4] || [] },{ value: 'basic', index: 2, infoType: 1, name: '基础软件', children: treeDatas[1] || [] },{ value: 'softWareProduct', index: 3, infoType: 2, name: '应用软件', children: treeDatas[2] || [] },]
// 查询
filteredItems() {let productBigVerions = []this.productBigVerions = []// 是组装好的数据productBigVerionsList.forEach((res, index) => {// 一级标题不过滤,应用软件,基础软件等productBigVerions[index] = JSON.parse(JSON.stringify(res))// 二级标题存在相同的就存在相应的一级标题数据的children里productBigVerions[index].children = res.children.filter(item =>item.productName && item.productName.includes(this.columKey));})// 只有children有才会显示一级标题productBigVerions.forEach(res => {if (res.children.length > 0) {this.productBigVerions.push(res)}})},// 鼠标移上显示所有内容
visibilityChange(event) {const ev = event.targetconst ev_weight = ev.scrollWidth // 文本的实际宽度let content_weight = 0// console.log('78925', ev,ev.clientHeight, ev.scrollHeight,ev_weight, this.$refs.tlp[index].$el.parentNode.clientWidth)// 说明是有滚动条的if (this.$refs.tlp[0].$el.parentNode.clientWidth < 200) {content_weight = this.$refs.tlp[0].$el.parentNode.clientWidth + 20 // 文本容器宽度(父节点)} else {content_weight = this.$refs.tlp[0].$el.parentNode.clientWidth // 文本容器宽度(父节点)}if (ev_weight > content_weight) {// 文本宽度 > 实际内容宽度  =》内容溢出this.tooltipFlag = true} else {// 否则为不溢出this.tooltipFlag = false}},

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【达梦数据库】使用DBeaver管理达梦数据库

使用DBeaver管理达梦数据库 Step1 安装相关程序 达梦8数据库DBeaver社区版 Step2 新建驱动 类型参数驱动名称DM8驱动类型Generic类名dm.jdbc.driver.DmDriverURL模板jdbc:dm://{host}:{port}默认端口5236默认数据库默认用户SYSDBA Step3 连接服务

标准库 STM32+EC11编码器+I2C ssd1306多级菜单例程

标准库 STM32EC11编码器I2C ssd1306多级菜单例程 &#x1f4cc;原创项目来源于&#xff1a;https://github.com/AdamLoong/Embedded_Menu_Simple&#x1f4cd;相关功能演示观看&#xff1a;https://space.bilibili.com/74495335 单片机多级菜单v1.2 &#x1f449;本次采用的是原…

docker-学习-5

docker-学习第五天 docker-学习第五天1. 昨天的练习回顾1.1. 练习11.2. 练习2 2. 命令2.1. 看镜像的详细信息 3. Dockerfile指令3.1. 常见的指令3.2. ENTRYPOINT和CMD的区别3.3. RUN中的set指令 4. 镜像的原理4.1. 为什么 Docker 镜像要采用这种分层结构呢&#xff1f;4.2. doc…

leetcode(双指针)283.移动零(C++)DAY3

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 示例 示例 1: 输入…

嵌入式软件设计方式与方法

1、嵌入式软件与设计模式 思从深而行从简 软件开发&#xff0c;难的不是编写软件&#xff0c;而是编写功能正常的软件。软件工程化才能保证软件质量和项目进度&#xff0c;而设计模式使代码开发真正工程化&#xff0c;设计模式是软件工程的基石。 所谓设计模式就是对常见问题的…

laravel distinct查询问题,laravel子查询写法

直接调用后&#xff0c;count查询会和实际查询的数据对不上&#xff0c;count还是查询全部数据&#xff0c;而实际的列表是去重的。 给distinct加上参数&#xff0c;比如去重的值的id&#xff0c;就加id。 另一种写法是使用group by id 子查询。 sql语句&#xff1a; selec…

SpringBoot+Druid并开启监控页面

介绍 Druid 是一个开源的数据库连接池项目&#xff0c;由阿里巴巴集团开发并贡献给开源社区。它在Java领域中以其高性能、强大功能和易用性著称&#xff0c;是Java应用中广泛使用的数据库连接池组件之一。 Druid 的主要特点包括&#xff1a;   高性能与低延迟&#xff1a; Dr…

tlias智能学习辅助系统-增删改查+参数传递

本篇实现黑马tlias智能学习辅助系统中的部门以及员工管理&#xff0c;主要完成增删改查操作以及一些细节问题&#xff0c;后面会进一步总结登录校验、异常处理以及AOP的内容。 目录 一、环境搭建&#xff1a; 二、部门管理&#xff1a; 1、查询所有部门&#xff1a; contr…

Windows11安装运行Linux(Ubuntu)

一、安装windows支持 输入windows打开界面 选择虚拟机监控程序平台、适用于linux的子系统、虚拟机平台 在 Windows 系统中&#xff0c;"虚拟机平台"和"虚拟机监控程序平台"是两个与虚拟化相关的功能&#xff0c;但它们各自有着不同的作用和用途。 虚拟机…

thinkphp6入门(17)-- 网站开发中session、cache、cookie的区别

Session&#xff08;会话&#xff09;: 定义&#xff1a; Session是一种用于在服务器端存储用户信息的机制&#xff0c;以跟踪用户的状态。 数据存储位置&#xff1a; 存储在服务器端&#xff0c;可以存在于内存、数据库或文件系统中。 生命周期&#xff1a; 存在于用户访问应…

html5 audio video

DOMException: play() failed because the user didn‘t interact with the document first.-CSDN博客 不可用&#xff1a; 可用&#xff1a; Google Chrome Close AutoUpdate-CSDN博客

R语言阈值效应函数cut.tab2.0版发布(支持线性回归、逻辑回归、cox回归,自定义拐点)

阈值效应和饱和效应是剂量-反应关系中常见的两种现象。阈值效应是指当某种物质的剂量达到一定高度时&#xff0c;才会对生物体产生影响&#xff0c;而低于这个剂量则不会产生影响。饱和效应是指当某种物质的剂量达到一定高度后&#xff0c;其影响不再随剂量的增加而增加&#x…