el-select下拉框 添加 el-checkbox 多选框,支持全选、取消全选

news2024/11/15 13:54:24

el-select下拉框 添加 el-checkbox 多选框,支持全选、取消全选

  • 前言
  • 一、实现思路
  • 二、实现代码
    • 1.模板代码
    • 2. css 样式
    • 3.js 代码
  • DEMO 演示
  • 总结


前言

实现效果预览
在这里插入图片描述


提示:本内容基于element-ui 组件实现,如果使用其他组件库、可参考下面实现方式的思路

一、实现思路

准备直接使用 el-select 组件的 multiple 属性实现 多选,添加el-checkbox 组件实现全选,以及数据项的选框展示

二、实现代码

1.模板代码

el-select 中加入了全选 el-checkbox,以及在 el-option 中加入了 el-checkbox 控制样式。

<el-select v-model="data" multiple popper-class="select-popover-class">
   	<el-checkbox 
   		:value="selectAll" 
   		:indeterminate="indeterminate" 
   		@change="selectAllHandle">全选</el-checkbox>
	<el-option 
       v-for="item in options" 
       :key="item.value" 
       :value="item.value"
       :label="item.label">
       <el-checkbox :value="data.includes(item.value)" :label="item.label">
   </el-option>
</el-select>

2. css 样式

重点在第二个样式,我们这里只取 el-checkbox 的样式,所以取消事件的触发。

/* 控制全选按钮样式 */
.select-popover-class .el-scrollbar__view > .el-checkbox{
    padding: 5px 20px;
}

/* 取消多选框触发事件 */
.select-popover-class .el-scrollbar__view > li .el-checkbox {
    pointer-events: none;
}

/* 隐藏多选框选中勾选样式 √ */
.select-popover-class .el-scrollbar__view > li::after {
    display: none;
}

3.js 代码

从头到尾只有 data 属性是双向绑定的,其他 包括selectAllindeterminate、以及选项上的el-checkbox是否选中 都是根据data 属性判断计算的。

使用的是vue2.xJavaScript 实现,使用vue3.xTypeScript,参考实现就好。

{
  data: {
    data: [],
    options: [
        {
            label: '选项1',
            value: 1
        },
        {
            label: '选项2',
            value: 2
        },
        {
            label: '选项3',
            value: 3
        }
    ]
  },
  computed: {
      selectAll() {
          if(this.data.length){
              return this.data.length === this.options.length;
          }
          return false;
      },
      indeterminate() {
          if(this.data.length){
              return this.data.length !== this.options.length;
          }
          return false;
      }
  },
  methods: {
      selectAllHandle(bool) {
          this.data = bool ? this.options.map(v => v.value) : [];
      }
  },
}

DEMO 演示

demo中引用了 vueelement-ui 的cdn 资源,可能加载较慢,如果加载不成功自行更换其他可用资源尝试。

多选演示demo


总结

因为整个交互都是使用的el-select 多选模式自带的功能,所以结构还是比较清晰的。

注意: 多选框都是使用 :value="" 绑定数据、无须双向绑定。

以上信息如有问题或疏漏,欢迎指正,谢谢。

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

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

相关文章

SEO之为什么研究关键词(一)

初创企业需要建站的朋友看这篇文章&#xff0c;谢谢支持&#xff1a; 我给不会敲代码又想搭建网站的人建议 新手上云 初做网站的人很容易犯的最大错误之一是&#xff0c;脑袋一拍就贸然进入某个领域&#xff0c;跳过竞争研究&#xff0c;没规划好目标关键词就开始做网站。这样做…

Linux的基础IO:软硬连接 动态库 静态库

目录 软硬连接 硬链接的作用 静态库 制作静态库 安装自定义静态库 动态库 制作动态库 协助OS查找动态库的五种方法 总结 动态库加载 软硬连接 创建硬链接指令&#xff1a;ln 目标文件 链接者 创建软链接指令&#xff1a;ln -s 目标文件 链接者 删除链接指令&…

韩顺平0基础学Java——第9天

p169-201 数组&#xff08;第六章&#xff09; 数组扩容 此时原来的数组arr被销毁。 牛蛙&#xff1a; 最后再加一句 SYstem。out。println&#xff08;“是否添加&#xff1f;”&#xff09;&#xff1b; char key myscanner。netx&#xff08;&#xff09;。charAT&…

未授权访问:JBoss未授权访问漏洞

目录 1、漏洞原理  2、环境搭建 3、未授权访问 4、利用jboss.deployment getshell 防御手段 今天继续学习各种未授权访问的知识和相关的实操实验&#xff0c;一共有好多篇&#xff0c;内容主要是参考先知社区的一位大佬的关于未授权访问的好文章&#xff0c;还有其他大佬…

CentOS 8.5 安装配置 Tinyproxy 轻量代理服务器 Windows10 系统设置http代理 详细教程

1 下载 下载地址 2 上传服务器并解压 tar zxvf tinyproxy-1.11.2.tar.gz 3 安装配置 #安装依赖软件 yum install automake cd tinyproxy-1.11.2/ #生成configure ./autogen.sh # ./configure --prefix/usr/local/tinyproxy make make install 4 配置环境 vim /etc/prof…

【Linux】基础命令:进程、网络

systemctl命令 控制内置服务 systemctl start | stop | status | enable | disable 服务名 start | stop开启关闭&#xff0c;status状态&#xff0c;enable | disable开启关闭开机自启 date命令 查看系统时间 date [-d] [格式化字符串] date -d “1 day” %Y-%m-%d 修改时区…

手把手微调大模型【附:一镜到底视频教程】

前言 近期有很多小伙伴来问是否有大模型微调教程&#xff0c;其实目前网上有很多教程&#xff0c;但是据了解&#xff0c;由于网上教程质量参差不齐&#xff0c;导致很多小伙伴尤其是初学者&#xff0c;一坑未出又入一坑&#xff0c;有种从入门到放弃的感觉。于是乎&#xff0…

cesium实现绘制图标,并实现图标的聚合功能

点聚合说明 在Cesium中&#xff0c;点聚合功能是指将大量的点数据聚合成一个更大的点或者其他形状&#xff0c;以减少在地图上显示大量点数据时的视觉混乱和性能问题。点聚合功能通常用于在地图上显示大量的点标记&#xff0c;例如地图上的POI&#xff08;兴趣点&#xff09;、…

YOLOv5 V7.0 - rknn模型的验证 输出精度(P)、召回率(R)、mAP50、mAP50-95

1.简介 RKNN官方没有提供YOLOv5模型的验证工具&#xff0c;而YOLOv5自带的验证工具只能验证pytorch、ONNX等常见格式的模型性能&#xff0c;无法运行rknn格式。考虑到YOLOv5模型转换为rknn会有一定的精度损失&#xff0c;但是需要具体数值才能进行评估&#xff0c;所以需要一个…

鸿蒙内核源码分析(Shell解析篇) | 应用窥视内核的窗口

系列篇从内核视角用一句话概括shell的底层实现为&#xff1a;两个任务&#xff0c;三个阶段。其本质是独立进程&#xff0c;因而划到进程管理模块。每次创建shell进程都会再创建两个任务。 客户端任务(ShellEntry)&#xff1a; 负责接受来自终端(控制台)敲入的一个个字符&…

13.跳跃游戏

文章目录 题目简介题目解答解法一&#xff1a;贪心算法&#xff0b;动态规划代码&#xff1a;复杂度分析&#xff1a; 题目链接 大家好&#xff0c;我是晓星航。今天为大家带来的是 跳跃游戏面试题 相关的讲解&#xff01;&#x1f600; 题目简介 题目解答 思路&#xff1a;这…

如何利用ChatGPT辅助下处理:ENVI、GEE、Python等遥感数据

遥感技术主要通过卫星和飞机从远处观察和测量我们的环境&#xff0c;是理解和监测地球物理、化学和生物系统的基石。ChatGPT是由OpenAI开发的最先进的语言模型&#xff0c;在理解和生成人类语言方面表现出了非凡的能力。本课程重点介绍ChatGPT在遥感中的应用&#xff0c;人工智…

续篇——源码部署LAMP环境上线项目——禅道项目

上篇:LNMP环境部署WordPress——使用源码包安装方式部署环境-CSDN博客 目录 一.前提准备 1. 名词区别 2. 下载项目软件包 3. 上传项目源码到虚拟机并解压 二.安装Apache 1. 环境清理 2.关闭Nginx 3. 下载Apache 4. 下载APR组件 4.1 安装apr 4.2 安装apr-util组件 5…

【投稿资讯】区块链会议CCF C -- CoopIS 2024 截止7.10 附录用率

会议名称&#xff1a;CoopIS CCF等级&#xff1a;CCF C类学术会议 类别&#xff1a;人机交互与普适计算 录用率&#xff1a;2023年接收率21% (21 regular 10 work-in-progress papers/100) AREA 5: HUMAN-CENTRIC SECURITY AND PRIVACY IN INFORMATION SYSTEMS Access Con…

重写muduo之TcpServer

目录 1、Callbacks.h 2、TcpServer.h 3、TcpServer.cc 1、Callbacks.h 回调操作 #pragma once#include <memory> #include <functional>class Buffer; class TcpConnection;using TcpConnectionPtrstd::shared_ptr<TcpConnection>; using ConnectionCall…

20.接口自动化-Git

1、Git和SVN–版本控制系统 远程服务出问题后&#xff0c;可以先提交commit到本地仓库&#xff0c;之后再提交push远程仓库 git有clone Git环境组成部分 常用Git代码仓库服务-远程仓库 GitHub-服务器在国外&#xff0c;慢 GitLab-开源&#xff0c;可以在自己服务器搭建&…

示例六、湿敏传感器

通过以下几个示例来具体展开学习,了解湿敏传感器原理及特性&#xff0c;学习湿敏传感器的应用&#xff1a; 示例六、湿敏传感器 一、基本原理&#xff1a;随着人们生活水平的不断提高&#xff0c;湿度监控逐步提到议事日程上。由于北方地区秋冬季干燥&#xff0c;需要控制室内…

如何选择合适加密软件来保护信息资产|精选加密软件分析

五款加密软件对比分析&#xff0c;是一项复杂而必要的任务&#xff0c;旨在帮助用户选择最适合其需求的加密工具。在数字化时代&#xff0c;信息安全显得尤为重要&#xff0c;因此&#xff0c;对加密软件的评估与比较显得尤为关键。 首先&#xff0c;我们要考虑的是这些加密软件…

基于单片机的温度控制系统设计(51基础版)-设计说明书

本论文设计了一种基于51单片机的温度控制系统&#xff0c;该系统具备以下主要功能&#xff1a;首先&#xff0c;通过温度传感器实时检测环境温湿度&#xff0c;以获取准确的温度数值。其次&#xff0c;通过按键设置温度阈值&#xff0c;用户可以根据需求自行调整控制温度的上限…

Container exited with a non-zero exit code 1

最近遇到运行yarn pi的时候遇到如下问题。 很明显是container出错了&#xff0c;但是错误没有提示的很清楚。然后去看nodemanager日志也是如此。这时候笔者第一个想到要去看container的执行日志。container具体的日志目录位置是通过YARN的配置文件&#xff08;如yarn-site.xml&…