el-tree 多选限制选中个数

文章讲述了在Vue.js中使用el-tree组件时,如何实现限制用户最多选择10个节点且勾选父节点时不自动勾选子节点的功能。同时介绍了提供一个清除功能来取消所有已选中的节点。

需求:
1、el-tree至多选10个,超过后无法再勾选
2、当勾选父节点时不自动勾选子节点;
3、点击清除,清除所有勾选项

 <el-tree :data="treeData" ref="treeRef" @check="handleTreeCheck"
         default-expand-all :check-strictly="true"
      show-checkbox node-key="id" :props="defaultProps">
  </el-tree>
 handleTreeCheck (currNode, checkedInfo) {
      let checkedKeys = checkedInfo.checkedKeys || [];
       let treeNodesMap = this.$refs.treeRef.store?.nodesMap || {};
       let status = checkedKeys.length >= 10
       if (status) {
           this.$message.warning('最多只能选择10个!')
       }
       Object.keys(treeNodesMap).forEach(key => {
           let item = treeNodesMap[key] || {};
           if (!checkedKeys.includes(key)) {
               let data = item.data || {};
               data.disabled = status;
               this.$refs.treeRef.setCurrentNode(data);
           }
       })
   }
  //清除
  clearTreeSelect() {
     this.$refs.treeRef.setCheckedKeys([]);
  }
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值