elementui中的el-checkbox-group添加全选按钮

news2025/1/21 12:50:29

在这里插入图片描述

//多选子组件
<template>
  <div class="multiple-choice">
    <el-checkbox class="no1" v-if="isShowAllBtn" :indeterminate="isIndeterminate1" v-model="checkAll1" border :style="{borderColor:isIndeterminate1?'#3886FF':''}" @change="handleCheckAllChange">全选</el-checkbox>
    <el-checkbox-group v-model="checkedCities1" @change="handleCheckedCitiesChange1">
      <el-checkbox v-for="(city,index1) in cities" :label="city" :key="city" border :disabled="isDisabled?checkedCities1.length==8&&!checkedCities1.includes(city):false" style="margin-right: 10px;" :style="{marginLeft:index1==0&&isShowAllBtn?'90px':''}">{{city}}</el-checkbox>
    </el-checkbox-group>
  </div>
</template>
<script>
export default {
  props: {
    isShowAllBtn: {
      type: Boolean,
      default: true,
    },
    cityOptions: {
      type: Array,
      default: [],
    },
    checkAll: {
      type: Boolean,
      default: true,
    },
    isIndeterminate: {
      type: Boolean,
      default: false,
    },
    checkedCities: {
      type: Array,
      default: () => [],
    },
    numberData: {
      type: Array,
      default: () => [],
    },
    isDisabled: {
      //是否有禁用的功能使用,比如最多只能选择8个的限制等
      type: Boolean,
      default: false,
    },
  },
  data() {
    return {
      checkAll1: this.checkAll,
      checkedCities1: this.checkedCities,
      cities: this.cityOptions,
      isIndeterminate1: this.isIndeterminate,
    };
  },
  created() {
    // this.$emit('getChecked',this.checkedCities1)
  },
  methods: {
    // 多选
    handleCheckAllChange(val) {
      this.checkedCities1 = val ? this.cityOptions : [];
      this.isIndeterminate1 = false;
      this.$emit("getChecked", this.checkedCities1);
    },
    // 点击按钮
    handleCheckedCitiesChange1(value) {
      let checkedCount = value.length;
      this.checkAll1 = checkedCount === this.cities.length;
      this.isIndeterminate1 =
        checkedCount > 0 && checkedCount < this.cities.length;
      if (this.isDisabled) {
        if (value.length == 8) {
          this.$message({
            showClose: true,
            message: "最多只能同时选中8个指标",
            iconClass: "warning-icon-class",
            customClass: "el-message--warning",
          });
        }
      }
      this.$emit("getChecked", value);
    },
  },
};
</script>
  
<style lang="scss" scoped>
.multiple-choice {
  display: flex;
  align-items: start;
  // position: relative;
  margin-top: -6px;
  .no1 {
    position: absolute;
    z-index: 999;
  }
  .el-checkbox {
    height: 32px;
    line-height: 32px;
    margin-right: 0;
    margin-bottom: 10px;
  }
  .el-checkbox-group {
    line-height: 32px;
    margin-left: 10px;
    // position: absolute;
    margin-left: 0;
    display: flex;
    flex-wrap: wrap;
  }
  .el-checkbox.is-bordered.el-checkbox--medium {
    padding: 0px 13px 0px 13px;
    display: flex;
    align-items: center;
  }
  .el-checkbox.is-bordered.is-checked {
    border-color: #3886ff;
  }
}
::v-deep .el-checkbox__input.is-indeterminate .el-checkbox__inner,
::v-deep .el-checkbox__input.is-checked .el-checkbox__inner {
  background-color: #3886ff;
  border-color: #3886ff;
}
.el-checkbox.is-bordered + .el-checkbox.is-bordered {
  margin-left: 0px;
  margin-right: 10px;
}
::v-deep .el-checkbox:hover {
  border-color: #3886ff;
  .el-checkbox__input {
    .el-checkbox__inner {
      border-color: #3886ff;
    }
  }
  .el-checkbox__label {
    color: #3886ff;
  }
}
</style>
  
//引用多选的父组件
<multipleChoice :cityOptions="cityOptions" :checkAll='checkAll' :isIndeterminate="isIndeterminate" :checkedCities="checkedCities" :isShowAllBtn="isShowAllBtn" @getChecked='getChecked'></multipleChoice>
import multipleChoice from "@/components/multipleChoice.vue";
components: {
    multipleChoice,
},
data(){
	return{
		cityOptions: [
         	"PH值",
         	"水温",
         	"溶解氧",
         	"电导率",
         	"浊度",
         	"COD",
         	"氨氮",
         	"高锰酸盐",
         	"总磷",
         	"总氮",
         	"氟化物",
      	],
      	checkedCities: [
        	"PH值",
         	"水温",
         	"溶解氧",
         	"电导率",
         	"浊度",
         	"COD",
         	"氨氮",
         	"高锰酸盐",
         	"总磷",
         	"总氮",
         	"氟化物",
      	],
      	checkAll: true,
        isIndeterminate: false,
        isShowAllBtn: true,
	}
},
methods: {
	getChecked(valArr) {
		consoloe.log("多选返回",valArr)   
	},
}

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

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

相关文章

鸿蒙ArkTS声明式开发:跨平台支持列表【显隐控制】 通用属性

显隐控制 控制组件是否可见。 说明&#xff1a; 开发前请熟悉鸿蒙开发指导文档&#xff1a; gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 从API Version 7开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容的起始版本…

微型导轨在自动化制造中有哪些优势?

微型导轨在自动化制造中发挥重要作用&#xff0c;能够满足自动化设备制造中对精度要求较高的工艺环节。适用于自动装配线、自动检测设备和机器人操作等环节&#xff0c;推动了行业的进步与发展。那么&#xff0c;微型导轨在使用中有哪些优势呢&#xff1f; 1、精度高和稳定性强…

基于鲲鹏服务器搭建简单的开源论坛系统(LAMP)实践分享

LAMPLinux apache mysql( mariadb) PHP 结合利用华为云弹性负载均衡ELB弹性伸缩AS服务 优点&#xff1a; 将访问流量自动分发到多台云服务器&#xff0c;扩展应用系统对外的服务能力&#xff0c;实现更高水平的应用容错&#xff1b; 根据不同的业务、访问需求和预设策略&…

函数的创建和调用

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 提到函数&#xff0c;大家会想到数学函数吧&#xff0c;函数是数学最重要的一个模块&#xff0c;贯穿整个数学学习过程。在Python中&#xff0c;函数…

编程学习 (C规划) 6 {24_4_18} 七 ( 简单扫雷游戏)

首先我们要清楚扫雷大概是如何实现的&#xff1a; 1.布置雷 2.扫雷&#xff08;排查雷&#xff09; &#xff08;1&#xff09;如果这个位置是雷就炸了&#xff0c;游戏结束 &#xff08;2&#xff09;如果不是雷&#xff0c;就告诉周围有几个雷 3.把所有不是雷的位置都找…

Leetcode:Z 字形变换

题目链接&#xff1a;6. Z 字形变换 - 力扣&#xff08;LeetCode&#xff09; 普通版本&#xff08;二维矩阵的直接读写&#xff09; 解决办法&#xff1a;直接依据题目要求新建并填写一个二维数组&#xff0c;最后再将该二维数组中的有效字符按从左到右、从上到下的顺序读取并…

开源硬件初识——Orange Pi AIpro(8T)

开源硬件初识——Orange Pi AIpro&#xff08;8T&#xff09; 大抵是因为缘&#xff0c;妙不可言地就有了这么一块儿新一代AI开发板&#xff0c;乐于接触新鲜玩意儿的小火苗噌一下就燃了起来。 还没等拿到硬件&#xff0c;就已经开始在Orange Pi AIpro 官网上查阅起资料&…

PAT-1004 成绩排名(java实现)

这一关感觉还没第三关难&#xff0c;思路很清晰 题目 1004 成绩排名 读入 n&#xff08;>0&#xff09;名学生的姓名、学号、成绩&#xff0c;分别输出成绩最高和成绩最低学生的姓名和学号。 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;格式为 第 1 行…

KT6368A双模蓝牙芯片上电到正常发送AT指令或指令复位需要多久

一、简介 KT6368A芯片上电到正常发送AT指令&#xff0c;或者开启蓝牙广播被搜索到&#xff0c;或者指令复位需要多久等等系列问题总结 详细描述 其实这些问题归结到一起&#xff0c;就还是一个问题&#xff0c;芯片上电需要多久的时间 在另外一份文档里面&#xff0c;是有描…

副业赚钱的路子有哪些?推荐15个靠谱副业和赚钱软件给你做

在这个工资永远追不上物价的时代&#xff0c;你是否也感到焦虑&#xff1f;是否想过在工作之余&#xff0c;开辟一条赚钱的副业之路&#xff1f;别急&#xff0c;今天就为你揭开副业赚钱的神秘面纱&#xff0c;带你一探究竟&#xff01; 一、宅富社任务&#xff1a;每日小任务&…

电缆线生产中 JG01Z-DG 系列单轴测径仪的重要作用

电缆线在工业配电领域有着广泛的应用&#xff0c;尤其适合要求较为严格的柔性安装场所&#xff0c;如电控柜&#xff0c;配电箱及各种低压电气设备&#xff0c;可用于电力&#xff0c;电气控制信号及开关信号的传输。 JG01Z-DG系列单轴测径仪是为线缆外径检测而制作的检测设备。…

2.4 Docker部署JDK

2.4 Docker部署JDK jdk17部署&#xff08;自定义镜像&#xff09; 1.在官网上下载jdk-17_linux-x64_bin.tar.gz&#xff0c;并安装到/usr/local目录下 cd /usr/local2.创建Dockerfile vim Dockerfile# 基于官方的Ubuntu 20.04镜像作为基础镜像 FROM ubuntu:20.04# 设置环境…

整数乘除法练习题

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<time.h> #include<Windows.h>void show1(); .//开始界面 int getchoice(); //选择界面 int dowork(int n); //随机做乘除法 int num(); //用户确定做题的数量 v…

【深度密码】神经网络算法在机器学习中的前沿探索

目录 &#x1f69d;前言 &#x1f68d;什么是机器学习 1. 基本概念 2. 类型 3. 关键算法 4. 应用领域 5. 工作流程 &#x1f68b;什么是神经网络 基本结构 &#x1f682;神经网络的工作原理 前向传播&#xff08;Forward Propagation&#xff09;&#xff1a; 损失函…

数据分析案例-在线食品订单数据可视化分析与建模分类

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…

一键安装 HaloDB 之 Ansible for Halo

↑ 关注“少安事务所”公众号&#xff0c;欢迎⭐收藏&#xff0c;不错过精彩内容~ 前倾回顾 前面介绍了“光环”数据库的基本情况和安装办法。 哈喽&#xff0c;国产数据库&#xff01;Halo DB! 三步走&#xff0c;Halo DB 安装指引 以及 HaloDB 的 Oracle 和 MySQL 兼容模式: …

构建企业级AI私有知识库

一、引言 在当今竞争激烈的市场环境中&#xff0c;企业为了保持竞争优势&#xff0c;需要高效地管理和利用内部知识资源。构建一个企业级AI私有知识库&#xff0c;不仅可以集中存储和管理企业知识&#xff0c;还能通过人工智能技术实现知识的智能化处理和利用。本文将详细介绍…

pytorch学习day3

一、模型创建&#xff08;Module&#xff09; 网络创建流程 ​ 上面的图表展示了使用PyTorch创建神经网络模型的主要步骤。每个步骤按顺序连接&#xff0c;展示了从导入必要的库到最终测试模型的整个流程&#xff1a; 导入必要的库&#xff1a;首先导入PyTorch及其相关模块。定…

六一见!|Post Microsoft Build and AI Day 上海开发者日

编辑/排版&#xff1a;Alan Wang 大小朋友明天见&#xff01; 6月1日&#xff0c;Microsoft Azure & Microsoft Reactor 面向大小朋友特别推出六一特辑&#xff0c;「Post Microsoft Build and AI Day 上海开发者日」 探讨 Microsoft Build 2024 带来的最新发布&#xff0…

民国漫画杂志《时代漫画》第36期.PDF

时代漫画36.PDF: https://url03.ctfile.com/f/1779803-1248636233-8a4a9d?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了&#xff0c;截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!