关于a-tree中属性 checkStrictly 在使用中 切换true或者false时候出现的问题(父子关联切换不关联或不关联切换父子关联)

最近遇到一个很奇怪的需求 需求如下
权限列表 默认支持单独选择树的任何一项 不关联父子 a-tree设置checkStrictly为true即可 后来 用户操作的时候需要改为父子级联 并且之前的选中是不可以乱的 就是checkStrictly变为false
个人解决方法如下
tree属性重点如下
  :checkStrictly="checkStrictly"
  @check="onCheck"

onCheck方法如下 写法为vue3写法 大同小异 halfCheckedKeys为半关联(就是子集没打钩满 通过这个第二个参数可以得到)的存储

  function onCheck(o, e) {
    if (e) {
      halfCheckedKeys.value = e.halfCheckedKeys || [];
    }
    checkedKeys.value = o.checked ? o.checked : o;
  }

关键来了 当我们切换后数据是不对的 例如独自选项 我们选了1-1 转成父子关联 1-1-1 1-1-2都打勾了 可是你获取getCheckedKeys()方法是只会拿到1-1这个数据 解决方法如下

//开启关联 模拟点击一次
      try {
        nextTick(() => {
          let dom = document.getElementsByClassName('ant-tree-checkbox');
          dom[0].click();
          setTimeout(() => {
            dom[0].click();
          }, 0);
        });
      } catch (e) {}

模拟点击 触发oncheck事件 当你触发了oncheck事件 所打勾的都会传到o,e两个参数里面 自然就解决了~~~~我是小伟如果解决你的问题麻烦点个赞呀

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值