首页 > 其他分享 >Element Plus组件库el-select组件多选回显踩坑

Element Plus组件库el-select组件多选回显踩坑

时间:2024-12-18 21:10:52浏览次数:8  
标签:el 多选 回显 Element Plus 组件 select

前情


公司有经常需要做一些后台管理页面,我们选择了Element Plus,它是基于 Vue 3,面向设计师和开发者的组件库,是Vue框架生态中比较火的UI组件库,组件库丰富易用,组件链接:一个 Vue 3 UI 框架 | Element Plus,项目中经常会用到el-select多选功能,组件自带的多选交互也是非常棒的,标签回显示结果,同时支持通过标签取消选择,对于Element Plus 2.5以上版本还支持通过slot自定义回显tag

坑位


最近在开发一个产品提的优化功能,部分表单需要由单选切换到多选,对于强大的Element Plus来说el-select增加一个属性multiple即可实现多选,确实好用,一个属性就实现了从单选到多选的功能于是开心的提测了,跟测试说很简单的功能,你点点就能测完了,提测半小时不到测试直接找到我,说我坑它,这么大的错位问题,跟我说点点就行了,我当时一脸尴尬,测试反映的问题如下图:

Why?


于是特意看了一下el-select在页面上结构,发现它是回显在的样式名为el-select__tags的元素中的,而它又是通过定位实现盖在输入框上的,它的定位又是相对于样式名为el-select的根元素的,但整个表单又用了grid布局,同一行有一项撑高,别的项都会跟着撑高了,所以导致定位出现了偏差

解决方案1

可以给el-select组件包一层,这样撑高的只会是包的这一层,不会影响组件自身,问题解决

解决方案2


既然它定位是相对于样式名为el-select组件根元素,那我们何不修改它的相对定位元素了,把它改到样式名为el-tooltip__trigger的元素上即可,其实这里又发现组件库的另一个小问题,一个元素出现了二个同样的样式名

解决方案3

既然多选导致表单撑高,那我们有什么方法不让它撑高么,查询了组件文挡,发现了二个可用配置,给组件添加collapse-tags属性,无法显示的时候它会在后面显示一个+N的标签,告诉用户后面还有多少个,如果只是增加一个+N的标签,对于用户来说不是很明显当前到底选了哪些项,这时你再添加collapse-tags-tooltip属性,你会发现这交互就非常棒了,详见下图:

总结

个人推荐使用第三种,侵入性小,修改工作量也是最小的,也是我用的方式,同时也保证了表单布局格式的统一,不会因为多选而导致表单有高有低影响美观,当然解决些问题的方法千千万,其中我也尝试让它超出显示省略号,超出滚动条等,但是尝试体验都不太理想。如果你有更好的解决方案,欢迎留言分享,一起讨论进步。

标签:el,多选,回显,Element,Plus,组件,select
From: https://www.cnblogs.com/xwwin/p/18615839

相关文章

  • Bugku-CTF getshell
    题目:<?phpdefine('pfkzYUelxEGmVcdDNLTjXCSIgMBKOuHAFyRtaboqwJiQWvsZrPhn',__FILE__);$cPIHjUYxDZVBvOTsuiEClpMXAfSqrdegyFtbnGzRhWNJKwLmaokQ=urldecode("%6E1%7A%62%2F%6D%615%5C%76%740%6928%2D%70%78%75%71%79%2A6%6C%72%6B%64%679%5F%65%68%63......
  • Transformers 框架 Pipeline 任务详解(四):问答(question-answering)
    在自然语言处理领域,问答系统是一项关键的技术,它旨在根据给定的问题从文本中找到最准确的答案。借助HuggingFace的Transformers框架的PipelineAPI,我们可以快速地搭建一个强大的问答系统,而无需深入理解背后的复杂模型结构和算法细节。本文将详细探讨Transformers框架中的qu......
  • linux kernel负载均衡分析(一)
    linux的负载均衡是一个很负载的过程,本篇讲一下触发负载均衡的流程,下一篇具体讲loadbalance流程。负载均衡是kernel调度一个重要的方面,下面是三篇博客,讲得很好。CFS任务的负载均衡(概述)(wowotech.net)CFS任务的负载均衡(任务放置)(wowotech.net)CFS任务的负载均衡(loadbalance)......
  • Shadcn UI 实战:打造可维护的企业级组件库
    "我们真的需要自己写一套组件库吗?"上周的技术评审会上,我正在和团队讨论组件库的选型。作为一个快速发展的创业公司,我们既需要高质量的组件,又想保持灵活的定制能力。在对比了多个方案后,我们选择了shadcn/ui这个相对较新的解决方案。说实话,最开始我对这个决定也有些担忧。毕......
  • Eiffel -- another CX paradigm
    Eiffelhttps://eiffel-community.github.io/ ProtocolCommunityMissionandVisionSecurityEiffelSummitEiffelTheEiffelprotocolenablestechnologyagnosticcommunicationforCI/CDecosystems.Eiffelisbasedontheconcept......
  • 如果我说“稍稍改变录入习惯,Excel所有块公式将通通自适”,您信么?
    Excel数据,一般以append增长数据,但insert操作也不会更繁琐。(笔记模板由python脚本于2024年12月17日17:54:47创建,本篇笔记适合欢用Excel的coder翻阅)【学习的细节是欢悦的历程】Python官网:https://www.python.org/Free:大咖免费“圣经”教程《python完全自学......
  • 状态机模型(State Machine Model)
    一、状态机模型的基本概念状态机模型是一种计算模型,它根据一组规则从一个状态转换到另一个状态。这种模型在计算机科学、软件工程、通信协议设计等领域中非常常见。它描述了一个系统在不同状态下的行为,以及状态之间的转换条件。二、状态机模型的要素状态机模型可归纳为四个......
  • 一份IntelliJ IDEA常用插件的清单
    代码质量与分析SonarLint:实时检测代码中的bug、安全漏洞和代码质量问题。CheckStyle-IDEA:检查代码风格是否符合预设规范。FindBugs-IDEA:静态代码分析工具,查找Java代码中的潜在bug。AlibabaJavaCodingGuidelines:提供阿里巴巴的Java编码规范,规范代码编写。Statistic:统计项......
  • 深入探索ArkWeb:构建高效且安全的Web组件
    深入探索ArkWeb:构建高效且安全的Web组件本文旨在深入探讨华为鸿蒙HarmonyOSNext系统(截止目前API12)的技术细节,基于实际开发实践进行总结。主要作为技术分享与交流载体,难免错漏,欢迎各位同仁提出宝贵意见和问题,以便共同进步。本文为原创内容,任何形式的转载必须注明出处及原作者......
  • 设计一个可复用的 ArkWeb 基础组件架构
    引言在华为鸿蒙开发环境中,ArkWeb组件是构建跨平台Web应用的重要工具。为了提高开发效率和组件复用性,我们需要设计一个健壮、可扩展的ArkWeb基础组件架构一、架构设计原则模块化模块化是组件设计的基础,它允许我们将复杂的系统分解为可管理的模块。在ArkWeb组件中,我们可......