多个el-checkbox-group复选框组 选项互斥

news2025/1/11 6:51:39

需求

多个el-checkbox-group复选框组 , 组与组之间的选项是互斥的效果

效果在这里插入图片描述

代码实现

  • template
<template>
  <div class="page">
    <el-checkbox-group
      v-for="(item, index) in list"
      v-model="item.checked"
      :key="index"
      @change="checkboxChange"
    >
      <el-checkbox
        v-for="(jitem, jindex) in item.checkData"
        :label="jitem.label"
        :key="jindex"
        :disabled="jitem.disabled"
        >{{ jitem.name }}</el-checkbox
      >
    </el-checkbox-group>
  </div>
</template>
  • script
<script>
export default {
  name: 'xxx',
  data() {
    return {
      list: [
        {
          checked: [], // 选中值
          checkData: [
            // 复选框
            { label: 'name1', name: '名称1', disabled: false },
            { label: 'name2', name: '名称2', disabled: false },
            { label: 'name3', name: '名称3', disabled: false }
          ]
        },
        {
          checked: [],
          checkData: [
            { label: 'name1', name: '名称1', disabled: false },
            { label: 'name4', name: '名称4', disabled: false },
            { label: 'name3', name: '名称3', disabled: false }
          ]
        },
        {
          checked: [],
          checkData: [
            { label: 'name1', name: '名称1', disabled: false },
            { label: 'name4', name: '名称4', disabled: false },
            { label: 'name3', name: '名称3', disabled: false }
          ]
        },
        {
          checked: [],
          checkData: [
            { label: 'name5', name: '名称5', disabled: false },
            { label: 'name1', name: '名称1', disabled: false },
            { label: 'name3', name: '名称3', disabled: false }
          ]
        }
      ]
    }
  },
  methods: {
    /**
     * @description 复选框change事件
     * @param {array} val 复选框值
     * @param {number} i 索引
     * @return {void} Do not return anything
     */
    checkboxChange() {
      let checkedAll = []// 存储所有的选中值
      this.list.forEach(item => {
        // 初始化数据,复选框都可选
        item.checkData.forEach(jitem => {
          jitem.disabled = false
        })
        // 将选中的数据存储arr中
        item.checked.forEach(kitem => {
          checkedAll.push(kitem)
        })
      })
      // 去重
      checkedAll = Array.from(new Set(checkedAll))
      // 互斥操作
      this.list.forEach(item => {
        item.checkData.forEach(jitem => {
          if (checkedAll.includes(jitem.label) && !item.checked.includes(jitem.label)) {
            // 当复选框对应数据存在arr中,不存在对应的checked中时,设为禁用状态
            jitem.disabled = true
          }
        })
      })
    }
  }
}
</script>

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

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

相关文章

网络投票链接的制作方法投票制作方法微网络投票

用户在使用微信投票的时候&#xff0c;需要功能齐全&#xff0c;又快捷方便的投票小程序。 而“活动星投票”这款软件使用非常的方便&#xff0c;用户可以随时使用手机微信小程序获得线上投票服务&#xff0c;很多用户都很喜欢“活动星投票”这款软件。 “活动星投票”小程序在…

docker-compose部署Minio

一、镜像选择 Minio有很多镜像会有一些bug&#xff0c;而且不好解决&#xff0c;这里使用的是镜像 RELEASE.2021-04-18T19-26-29Z 直接: docker pull minio/minio:RELEASE.2021-04-18T19-26-29Z 即可&#xff1a; 拉取之后可以打个tag&#xff0c;这里是new2 RELEASE.2021…

在chrome-console中进行xpath/css/js定位(六)

目录 1.xpath 1.1 绝对定位与相对定位 1.2 通配符与不包含筛选 1.3 Xpath函数运算的简单实用 1.4 各种亲戚标签的定位 1.5xpath实例 1.5.1xpath:属性定位 1.5.2xpath:其它属性 1.5.3xpath:标签 1.5.4xpath:层级 1.5.5xpath:索引 1.5.6xpath:逻辑运算 1.5.7xpath:模…

界面组件DevExpress WPF v23.1新版亮点 - 启动和内存优化

DevExpress WPF拥有120个控件和库&#xff0c;将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序&#xff0c;这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件…

智能机井灌溉控制器批量应用于新疆农业灌溉计量监测项目

近日&#xff0c;新疆某县级水利部门为进一步提升水资源取用水的监管能力&#xff0c;完善水资源实时监控、计划用水和节约用水管理目标&#xff0c;对该地农业灌溉用水计量设施进行升级改造&#xff0c;将700口井安装智能机井灌溉控制器&#xff0c;有效实现水量监测&#xff…

node.js通过node-java库调用java接口(jar包)

node.js通过node-java库调用java接口 1、业务需要2、开发环境3、调用java包简单实例4、调用自定的jar包接口 1、业务需要 最近因项目需求&#xff0c;需要调用第三方java的打的jar包&#xff0c;但项目后端是用node.js写的&#xff0c;因此需要用node.js调用第三方jar,网上搜集…

如何让其他电脑连接自己电脑上的虚拟机

想使用电脑A连接电脑B中的虚拟机有两种方式(这里说的都是windows环境,并且都在A和B在同一网络环境下) 方式一 通过配置windows防火墙中的入站规则,以开放端口的形式访问,但是这种方式电脑A中没法配置电脑B中虚拟机的域名映射.方式二 通过更改虚拟机的网络连接模式,并且要修改虚…

爬虫入门指南(2):如何使用正则表达式进行数据提取和处理

文章目录 正则表达式正则表达式中常用的元字符和特殊序列案例 使用正则表达式提取数据案例存储数据到文件或数据库使用SQLite数据库存储数据的示例代码SQLite基本语法创建表格&#xff1a;插入数据&#xff1a;查询数据&#xff1a;更新数据&#xff1a;删除数据&#xff1a;条…

尚硅谷Docker实战教程-笔记05【本地镜像发布到阿里云与私有库】

尚硅谷大数据技术-教程-学习路线-笔记汇总表【课程资料下载】视频地址&#xff1a;尚硅谷Docker实战教程&#xff08;docker教程天花板&#xff09;_哔哩哔哩_bilibili 尚硅谷Docker实战教程-笔记01【理念简介、官网介绍、平台入门图解、平台架构图解】尚硅谷Docker实战教程-笔…

LinkedHashMap 学习了解

一、概念 定义&#xff1a; public class LinkedHashMap<K,V> extends HashMap<K,V> implements Map<K,V> LinkedHashMap 继承 HashMap 的功能&#xff0c;增加保证了元素的有效 /*** The head (eldest) of the doubly linked list.* 双向列表&#xff0c;表…

本地axure做好的展示网站如何发布到互联网上访问?快解析端口映射

Axure 是产品经理常用的原型设计工具&#xff0c;设计的原型导出的html就是一个静态网站的文件&#xff0c;可以部署在服务器、对象存储上做成一个静态网站&#xff0c;然后通过 快解析免费域名&#xff08;或自己的独立域名&#xff09;外网访问&#xff0c;用它就可以完成从设…

WebView头部添加android原生视频播放

需求&#xff1a;我们需要做一个h5页面&#xff0c;并且可以现实加载更多&#xff0c;并且头部我们想要加一个视频播放器&#xff0c;因为h5不够丝滑。 话不多说咱们直接上代码 Xml布局&#xff1a; <?xml version"1.0" encoding"utf-8"?> <…

finalshell提示java.net.ConnectException: Connection timed out: connect

为什么超时&#xff1f; 事情是这样的&#xff0c;为了不向学校低头&#xff0c;我没有开通校园网&#xff0c;买了流量卡&#xff0c;于是每次都给电脑开热点&#xff0c;朋友叫我吃饭&#xff0c;我直接就走了&#xff0c;干完饭回来&#xff0c;在finalshell里面它提示java.…

ASEMI代理光宝光耦LTV-6341的应用与性能分析

编辑-Z 本文将全面深入地探讨光耦LTV-6341的应用与性能。首先&#xff0c;我们将介绍光耦LTV-6341的基本概念和工作原理&#xff0c;然后&#xff0c;我们将详细分析其在电子设备中的应用&#xff0c;接着&#xff0c;我们将对其性能进行深入的分析&#xff0c;最后&#xff0…

US-P1-R-S单路控制比例阀放大器

US-P1-R-S、US-P1-R-C、US-P2-R-S、US-P2-R-C、US-P1-M-C、US-P2-M-S M12插头端子号 &#xff08;US-P1-…-C&#xff09; 线缆颜色 &#xff08;US-P1-…-S&#xff09; 端子定义 &#xff08;US-P1-R&#xff09; 端子定义 &#xff08;US-P1-M&#xff09; 1 红 2 …

【零基础学习C++】如何写一个C++类?

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️系列专栏:零基础学习C】 文章目录 前言什么是类&#xff1f;&#x1f914;类的三大特性&#x1f463;定义一个类&#x1f4bb;类的实例化&#x1f52c; 前言 类是对现实生活中一类具有共同特征的事物…

第五章.­ ­ Training Versus Testing

第五章. Training Versus Testing 上一章主要介绍机器学习的可行性。由NFL定理可知&#xff0c;机器学习貌似是不可行的&#xff0c;但是随后引入了统计学知识&#xff0c;如果样本数量足够大&#xff0c;且hypothesis数量有限&#xff0c;那么机器学习一般是可行的&#xff0…

哪款是你值得拥有地图可视化开发平台

地图可视化在当今的数据分析和决策制定等领域中发挥着越来越重要的作用&#xff0c;越来越多的企业和个人开始关注和使用这一技术。而地图可视化开发平台作为地图可视化的重要工具和平台&#xff0c;其选择合适的产品对于产品效果和开发效率都具有非常重要的意义。在选择地图可…

Spring Boot中的SimpMessagingTemplate是什么,原理,以及如何使用

Spring Boot中的SimpMessagingTemplate是什么&#xff0c;原理&#xff0c;以及如何使用 SimpMessagingTemplate是Spring Framework中的一个类&#xff0c;用于向WebSocket客户端发送消息。在Spring Boot应用程序中&#xff0c;可以使用SimpMessagingTemplate来实现WebSocket通…

【GPT】中文大语言模型梳理与测评(C-Eval 、AGIEval、MMLU、SuperCLUE)

文章目录 概述申请后直接使用大模型开源可本地部署 通识数据集测评&#xff08;C-Eval 、AGIEval、MMLU、SuperCLUE&#xff09;自媒体报道SuperCLUE&#xff1a;中文通用大模型综合性基准C-Eval&#xff1a;中英测评&#xff08;清华上交提出&#xff09;当前排名&#xff08;…