el-select多选设置默认值且默认值不可删除

ops/2024/12/18 17:35:43/
  • 需求
    • <el-select>多选时,需要设置默认值,且默认值不可删除,但手动勾选的值可以删除。
  • 实现原理
    • 在el-select框中隐藏默认值的el-tag后面的叉
    • 在option中置灰默认值的选项使其不可被操作
  • 代码实现
    • 新建一个自定义指令,并在<el-select>中使用
<el-select v-model="value" v-default-select="disabledIds" multiple><el-option v-for="item in options" :disabled="disabledIds.includes(item.dictType)" :label="item.dictName" :value="item.dictType":key="item.dictType"></el-option>
</el-select><script>javascript">
export default {data() {return {value: ['1','2'],disabledIds: ['1','2'],options: [{ dictType: '1', dictName: '张三' },{ dictType: '2', dictName: '李四' },{ dictType: '3', dictName: '王五' },{ dictType: '4', dictName: '赵六' },],};},directives: {//注册一个局部的自定义指令 v-default-selectdefaultSelect: {// bindings是传过来的参数内容inserted: function (el, bindings) {const defaultValues = bindings.valueconst dealStyle = function (tags) {// 因为不可删除原有值,所以原有值的index是不会变的,也就是将前n个tag的close隐藏掉即可。n即已有值的长度defaultValues.lengthtags.forEach((el, index) => {if (index <= defaultValues.length - 1 &&![...el.classList].includes('select-tag-close-none')) {el.style.display = 'none' // close 图标隐藏掉}})}// 设置样式隐藏close iconconst tags = el.querySelectorAll('.el-tag__close')if (tags.length === 0) {// 初始化tags为空处理setTimeout(() => {const tagTemp = el.querySelectorAll('.el-tag__close')dealStyle(tagTemp)})} else {dealStyle(tags)}}},},
};
</script>
  • 效果
    在这里插入图片描述

http://www.ppmy.cn/ops/142968.html

相关文章

学习笔记071——Java中的【线程】

文章目录 1、基础2、进程和线程3、什么是多线程4、Java 中线程的使用5、Java 中创建线程的方式5.1、继承 Thread 类5.2、实现 Runnable 接口5.3、继承 Thread 和实现 Runnable 接口的区别5.4、实现 Runnable 接口的优化 6、线程的状态7、线程调度7.1、线程休眠7.2、线程合并7.3…

selenium自动化测试基础知识

目录 一、概念知识 (一)三大核心组件 (二)Selenium 自动化测试的工作原理 (三)Selenium 支持的操作 (四)Selenium 自动化测试的优点 (五)Selenium 自动化测试的缺点 (六)Selenium 自动化测试的应用场景 总结 二、实操例子 使用前提--安装步骤 注意事项 (一)浏览器的…

LruCache(本地cache)生产环境中遇到的问题及改进

问题&#xff1a;单机qps增加时请求摘要后端&#xff0c;耗时也会增加&#xff0c;因为超过了后端处理能力&#xff08;最大qps&#xff0c;存在任务堆积&#xff09;。 版本一 引入LruCache。为了避免数据失效&#xff0c;cache数据的时效性要小于摘要后端物料的更新时间&…

高并发-缓存预热

缓存预热的必要性 缓存预热是为了在系统面临高并发请求时&#xff0c;确保热点数据已经被加载到缓存中&#xff0c;从而提高系统响应速度和稳定性。通过缓存预热&#xff0c;可以避免因数据未命中而导致的数据库压力激增。 典型应用场景 电商系统&#xff1a;在秒杀活动期间&…

火山引擎声音复刻API-2.0

火山引擎声音复刻API-2.0使用解释 付费模式解释&#xff1a; 1.字符版本按照字符付费 2.并发版 是按 并发连接数 或 同时使用量 来收费的付费模式&#xff0c;常见于软件、API 服务、云服务等产品中。 上传音频文件demo代码 import base64 import os import requestshost …

基于单片机的智能化教室环境系统设计

本设计的智能化教室环境系统选用STC89C52做为核心控制器&#xff0c;通过红外传感装置检测教室人数&#xff0c;温度感应模块及光强感应模块检测当前教室内的温度和光照强度&#xff0c;以此来为单片机提供数据来控制灯光与风扇。控制模式设有自动和手动&#xff0c;可调节温度…

优化算法之遗传算法思想和应用实例

优化算法有很多&#xff0c;常用的有粒子群&#xff08;蚁群&#xff09;算法&#xff0c;模拟退火、遗传算法、免疫算法&#xff08;IA&#xff09;、差分进化算法&#xff08;Differential Evolution, DE&#xff09;、梯度下降等。这些算法思想有一些共性&#xff0c;大概是…

汽车租赁系统(数据库存储)

一、系统简介 本系统是一个汽车租赁管理系统&#xff0c;旨在为用户提供便捷的车辆租赁服务。系统包括用户注册、登录、查看车辆信息、租赁车辆、更换车辆、付款、还车等功能&#xff0c;并且管理员可以添加、删除、修改车辆信息以及查看营业额。 二、数据库设计 1. 需求分析…