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

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

解决方法:

<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>
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
    },
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: el-checkbox-group 是饿了么前端团队开发的一个多选框组件,用于实现多选功能。 使用 el-checkbox-group 组件,需要先引入 Element UI 库,并在页面中注册组件。然后,可以在模板中使用 el-checkbox-group 标签来渲染多选框组件,通过设置 v-model 属性来绑定选中的值。 例如: ``` <template> <el-checkbox-group v-model="checkedCities"> <el-checkbox label="北京"></el-checkbox> <el-checkbox label="上海"></el-checkbox> <el-checkbox label="广州"></el-checkbox> <el-checkbox label="深圳"></el-checkbox> </el-checkbox-group> </template> <script> export default { data() { return { checkedCities: [] }; } }; </script> ``` 在上面的例子中,el-checkbox-group 绑定了一个名为 checkedCities 的数组,用于存储选中的城市。当用户在页面中选中或取消选中一个多选框时,该数组会自动更新。 注意,如果需要设置多个 el-checkbox 组件的默认选中状态,可以在 el-checkbox 标签上设置 checked 属性。例如: ``` <el-checkbox label="北京" checked></el-checkbox> ``` 以上就是使用 el-checkbox-group 实现多选的基本方法。需要注意的是,el-checkbox-group 还有很多其他属性和方法,具体可以参考 Element UI 官方文档。 ### 回答2: El-checkbox-group是一种vue组件,用于实现多选操作。该组件通常与结构相似的el-checkbox结合使用,并且可以自由添加或删除选项。下面将介绍如何使用el-checkbox-group来实现多选。 首先,我们需要在vue组件中引入el-checkbox-group组件。在使用该组件之前,需要确保已经安装了element-ui组件库。 import { ElCheckbox, ElCheckboxGroup } from 'element-ui' 在html代码中,我们可以使用el-checkbox-groupel-checkbox来创建多选框组。el-checkbox-group通常需要绑定一个v-model属性来控制选中的选项。同时,el-checkbox也需要绑定一个v-model属性来表示是否选中该项。 <el-checkbox-group v-model="selectedOptions"> <el-checkbox v-for="option in options" :label="option" :key="option" v-model="isChecked">{{ option }}</el-checkbox> </el-checkbox-group> 在js代码中,我们需要定义两个变量:options表示可选项,selectedOptions表示已选项。 data() { return { options: ['选项1', '选项2', '选项3', '选项4'], selectedOptions: [], isChecked: false, } } 那么当我们在多选框中选中某一项时,isChecked变量会被设置为true,并且该选项会被自动添加到selectedOptions数组中。当我们再次点击该多选框时,isChecked变量会被设置为false,并且该选项也会从selectedOptions数组中移除。 至此,我们就成功地实现了多选功能。借助el-checkbox-group组件,我们可以轻松地实现多选操作,并且可以自由地添加或删除选项。同时,该组件还支持自定义样式和事件处理。 ### 回答3: el-checkbox-groupElement UI框架中的一个组件,用于实现多选功能。该组件是一组checkbox的集合,可以实现多选的场景。 要使用el-checkbox-group组件,首先需要在项目中导入Element UI框架的相关库和组件。然后,在代码中使用el-checkbox-group标签来创建一个多选组件,并设置相应的属性和方法,如下所示: ``` <template> <div> <p>请选择您喜欢的水果:</p> <el-checkbox-group v-model="fruits"> <el-checkbox label="apple">苹果</el-checkbox> <el-checkbox label="banana">香蕉</el-checkbox> <el-checkbox label="orange">橙子</el-checkbox> <el-checkbox label="watermelon">西瓜</el-checkbox> </el-checkbox-group> </div> </template> <script> export default { data() { return { fruits: [] // 初始化多选框的选项 } }, methods: { handleFruitsChange(val) { //选项变化时触发的函数 console.log(val); } } } </script> ``` 上述代码中,el-checkbox-group的v-model绑定了组件的选项,即fruits。Vue框架会自动监听数据的变化,从而实现多选框的选中操作。同时,handleFruitsChange方法可以监听多选框选项的变化,并且在控制台输出选中的选项。 在实际开发中,可以根据需要自定义多选框的选项和样式,并且可以通过事件监听实现复杂业务需求,例如实现多级选择、动态加载等跨越多个组件的逻辑。 总的来说,el-checkbox-groupElement UI框架中实现多选的核心组件之一,可以用于开发各种多选功能,并且易于使用和定制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值