el-select下拉多选框 el-select 设置默认值不可删除功能

news2024/11/19 10:18:49

Element3.0+vue3.0 el-select下拉多选框 el-select 设置默认值不可删除功能

Element-UI是一款广泛使用的Vue.js组件库,其中El-Select下拉多选框组件在实际项目开发中经常被使用。然而,在Element 3.0版本中,El-Select下拉多选框默认值可被删除,这可能会导致一些意外情况。本文将介绍如何解决这个问题,实现El-Select下拉多选框设置默认值不可删除的功能。

在这里插入图片描述

场景

假设我们正在开发一个商品筛选页面,在商品状态的多选筛选条件中,有一个"默认"选项,用于选择默认状态的商品。我们希望用户无法取消选择“默认”选项,以确保至少有一个状态被选中。

功能分析

  • 首先 el-select是不支持这个功能的 最多可以禁止el-option 的 disabled属性
    源码:
    在这里插入图片描述
  • 所以需要我们更改一下代码 当el-option的disabled为true的时候 把select-tag-close-none属性为none
    这样就实现了

实战在mian.js中放入以下代码就可以了

亿点小知识:vue3.0中是 app.directive 在 vue2.0中是 Vue
vue3.0中
在这里插入图片描述

app.directive("defaultSelect", {
  componentUpdated(el, bindings) {
    const [values, options, prop, defaultProp, defaultValue] = bindings.value;
    
    const indexs = [];
    const tempData = values.map(item => options.find(op => op[prop] === item));
    
    tempData.forEach((item, index) => {
      if (item[defaultProp] === defaultValue) {
        indexs.push(index);
      }
    });
    
    const dealStyle = function(tags) {
      tags.forEach((el, index) => {
        if (indexs.includes(index) && ![...el.classList].includes("select-tag-close-none")) {
          el.classList.add("none");
        }
      });
    };
    
    const tags = el.querySelectorAll(".el-tag__close");
    
    if (tags.length === 0) {
      setTimeout(() => {
        const tagTemp = el.querySelectorAll(".el-tag__close");
        dealStyle(tagTemp);
      });
    } else {
      dealStyle(tags);
    }
  }
});

在这里插入图片描述
以上就是el-select下拉多选框 el-select 设置默认值不可删除功能感谢大家的阅读
如碰到其他的问题 可以私下我 一起探讨学习
如果对你有所帮助还请 点赞 收藏谢谢~!
关注收藏博客 作者会持续更新…

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

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

相关文章

降本56%!纵腾集团搭载OceanBase Cloud开启降本增效新篇章

近日,跨境电商物流领跑企业福建纵腾网络有限公司(以下简称“纵腾集团”)正式商用原生分布式数据库 OceanBase,为其下专业物流服务“云途物流”提供云数据库支撑服务。目前,已有两大关键业务系统全部接入 OceanBase Clo…

基于JAVAEE技术的ssm校园车辆管理系统源码和论文

基于JAVAEE技术的ssm校园车辆管理系统源码和论文105 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 1.选题背景和意义 背景: 随着第二次工业革命后,内燃机的发明与完善,解…

Charles信任证书后依然无法抓包的解决方案

前提 1、Charles安装证书 2、Charles设置SSL代理 3、查看Android安装Charles证书的方法 4、查看Android安装的Charles证书 问题 Charles拦截时,报“SSL handshake with client failed: An unknown issue occurred processing the certificate (certificate_unknow…

Ubuntu20.04安装ROS

Ubuntu20.04安装ROS Excerpt ubuntu安装方式有两种,一种是安装ubuntu系统,另一种是在windows下安装虚拟机,在虚拟机里安装ubuntu。下面为双系统安装ubuntu(用虚拟机装ubuntu会很卡,bug很多,除非电脑配置极好…

UI按钮设计原则,让你的产品一次打动用户!

UI按钮是常见的界面组件,广泛应用于表单、对话框以及工具栏等场景。与链接不同,按钮用于让用户执行特定操作,如提交、删除等;而链接则将用户引导到新的页面。优秀的按钮设计能极大地提高用户的操作效率和转化率。本文将全面介绍按钮设计的相关指南,并通过实例解析如何设计出能最…

Android之布局转圆角

Android之布局转圆角 文章目录 Android之布局转圆角说明一、效果图二、实现步骤1.自定义RoundRelativeLayout2.使用 总结 说明 很多需求比较无语,需要某个布局转圆角,像个显眼包一样,所以为了满足显眼包,必须整呐提示&#xff1a…

01_lwip_raw_udp_test

1.打开UDP的调试功能 (1)设置宏定义 (2)打开UDP的调试功能 (3)修改内容,串口助手打印的日志信息自动换行 2.电脑端连接 UDP发送一帧数据 3.电路板上发送一帧数据

k8s etcd 简介

Etcd是CoreOS基于Raft协议开发的分布式key-value存储,可用于服务发现、共享配置以及一致性保障(如数据库选主、分布式锁等)。 如,Etcd也可以作为微服务的注册中心,比如SpringCloud也基于ETCD实现了注册中心功能&#…

如何利用Python代码优雅的进行文件下载

如何利用Python代码优雅的进行文件下载 一、什么是wget?二、使用wget.exe客户端进行文件下载三、使用Python脚本进行文件下载 欢迎学习交流! 邮箱: z…1…6.com 网站: https://zephyrhours.github.io/ 一、什么是wget?…

【LeetCode算法系列题解】第6~10题

CONTENTS LeetCode 6. N 字形变换(中等)LeetCode 7. 整数反转(中等)LeetCode 8. 字符串转换整数-atoi(中等)LeetCode 9. 回文数(简单)LeetCode 10. 正则表达式匹配(困难&…

hadoop的hadoop.tmp.dir安装时一定要更改

hadoop的hadoop.tmp.dir安装时一定要更改 hadoop.tmp.dir 属性确保了 HDFS 元数据的存储位置,其中包含了一些关键的文件,如: fsimage 文件:这是 HDFS 的文件系统镜像,记录了整个文件系统命名空间的状态。它包含所有文…

飞腾PSPA可信启动--4 可信固件环境搭建和打包

今天继续第四章,飞腾可信固件环境搭建和打包介绍。 此章节录制了讲解视频,可以在B站进行观看: Gmssl-master文件,可以关注公众号“乌拉大喵喵”后回复“Gmssl”获取。(区分大小写)

方案小知识

云平台 云平台也称云计算平台. 云计算, 顾名思义, 就是将计算在云上运行. 那么在这里面的3个概念 云: 通俗的理解就是远程计算机, 并且是一组 一堆, 这些远程计算机协同工作构建出一个平台,对用户提供服务计算:这是一个概念很大的名词,小了…

Nacos服务发起注册找不到nacos

错误概述 service启动报错&#xff0c;显示服务发起注册的时候找不到nacos failed to req API:/nacos/v1/ns/instance after all servers([localhost:8845]) tried: ErrCode:400, ErrMsg:<html><body><h1>Whitelabel Error Page</h1><p>This …

SOD-123FL贴片整流二极管,有哪些型号?

近日发现&#xff0c;客户对整流二极管的需求特别大。常有客户前来东沃电子咨询整流二极管型号参数、选型、替代、价格、交期、样品等方面的问题。那么&#xff0c;关于DS1A、DS1B、DS1D、DS1G、DS1J、DS1K、DS1M贴片整流二极管&#xff0c;您知道多少呢&#xff1f;东沃电子推…

免费试用,畅享海量内容!快来体验Netflix首月福利

Netflix是一家全球知名的流媒体服务平台,通过提供海量的电影、电视剧、纪录片和动画等各种类型的内容,迅速赢得了全球观众的喜爱。作为一项以订阅制为基础的在线视频服务,Netflix为用户提供了无限制的观影体验,让用户可以根据自己的兴趣和喜好随时随地畅享精彩的影视内容。 Ne…

新一代AI换脸和人脸增强软件及使用教程!facefusion

又有新东西咯&#xff01; roop停更了&#xff0c;核心开发者独立发布了一个项目&#xff0c;就是这个叫facefusion的项目。官方介绍为下一代的人脸交换和增强软件。 这是官方预览图&#xff0c;又红又紫&#xff0c;确实有点fusion的感觉。 这次的软件使用gradio构建了WebUI&…

SIEM(安全信息和事件管理)解决方案

什么是SIEM 安全信息和事件管理&#xff08;SIEM&#xff09;是一种可帮助组织在安全威胁危害到业务运营之前检测、分析和响应安全威胁的解决方案&#xff0c;将安全信息管理 (SIM) 和安全事件管理 (SEM) 结合到一个安全管理系统中。SIEM 技术从广泛来源收集事件日志数据&…

“北科Java面试宝典(211最详细讲解)“

Version : V1.0 北科Java面试宝典一、Java基础面试题【24道】二、JVM虚拟机面试题【14道】三、集合相关面试题【17道】四、多线程 【25道】五、IO【5道】六、网络编程 【9道】七、MySQL以及SQL面试题【20道】八、常用框架【19道】九、中间件和分布式 【54道】十、设计模式面试 …