多选按钮关联多个el-checkbox-group



需求: 如图设计稿,全部企业成员下面的数据来源与两个接口,点击全部企业成员需要勾选全部,下面选中全部企业成员要是选中状态,所以需要两个数组变量,两个el-checkbox-group来控制;有人可能会疑问为什么不把两个数据接口的数据放一个数组里,用一个el-checkbox-group来展示。正常情况下确实可以,但是还有个表单提交的请求,需要分别传两个数组中勾选的id,所以不能放一个数组里,不然没发区分勾选id的来源。

解决方法:

html 复制代码
<div class="user-list">
  <el-checkbox v-model="isCheckAll" :indeterminate="isIndeterminate"
     @change="handleCheckAllChange">全部企业成员</el-checkbox>
 	<el-checkbox-group v-model="checkedUserGroup" @change="handleCheckedUserChange">
       <el-checkbox v-for="item in userGroupList" :key="item.id" :label="item.id">{{
          item.name
       }}</el-checkbox>
   </el-checkbox-group>
   <el-checkbox-group v-model="checkedUser" @change="handleCheckedUserChange">
      <el-checkbox v-for="item in userList" :key="item.id" :label="item.id">{{
         item.name
      }}</el-checkbox>
   </el-checkbox-group>
</div>
javascript 复制代码
data(){
	return {
		userGroupList: [],
		userList: [],
		isCheckAll: false,
		isIndeterminate: false,
		checkedUserGroup: [],
		checkedUser: [],
	}
}

handleCheckAllChange(val) {
      this.checkedUserGroup = val ? this.userGroupList.map(item => item.id) : []
      this.checkedUser = val ? this.userList.map(item => item.id) : []
      this.isIndeterminate = false
    },
handleCheckedUserChange(value) {
      let checkedCount = value.length
      this.isIndeterminate = checkedCount > 0 && this.checkedUserGroup.length + this.checkedUser.length < this.userGroupList.length + this.userList.length
      this.isCheckAll = this.userGroupList.length + this.userList.length === this.checkedUserGroup.length + this.checkedUser.length
    },
相关推荐
志尊宝8 分钟前
Vue3 零基础每日笔记(071):暗黑模式与主题切换——CSS 变量 + Element Plus 暗黑方案
前端·css·笔记·vue·html·前端开发·软件开发
WeiXin_DZbishe31 分钟前
基于springboot城市公交实时运营与调度系统-计算机毕设 附源码【课程设计】66173
java·vue.js·spring boot·后端·python·php·课程设计
刘发财37 分钟前
前端如何生成10000页PDF文件?
前端·javascript·开源
WeiXin_DZbishe1 小时前
基于Springboot+AI的kuall音乐广场的设计与实现-计算机毕设 附源码【课程设计】12715
vue.js·人工智能·spring boot·后端·python·php·课程设计
A接拉起0071 小时前
2026 年 JavaScript 开发者需要了解的知识
前端·javascript·后端
_馒头1 小时前
pixiJs游戏开发实践 - 跳棋小游戏
javascript·vue.js
用户11481867894841 小时前
面试官:大屏项目里十几个模块同时渲染上万条数据,怎么做到不卡?
前端·性能优化
前端市界1 小时前
Pro React Admin: 统一工程底座,承载多种应用...
前端·github
葡萄城技术团队1 小时前
dsh-spreadjs-editor 当前支持什么:安装前需要了解的几件事
前端
三*一2 小时前
优化修整算法
前端·javascript·算法