vue tree全选

trre代码

     <div class="checkedBox">
            <el-checkbox v-model="checkAll" @change="handleCheckAllChange"
              >全选</el-checkbox
            >
          </div>

          <el-tree
            :data="permissionsList"
            show-checkbox
            node-key="id"
            ref="tree"
            highlight-current
            :props="defaultProps"
            :default-checked-keys="checkedRoleList"
            @check-change="handleCheckChange"
          >
          </el-tree>

方法

    // 全选
    handleCheckAllChange() {
      if (this.checkAll == true) {
        this.$refs.tree.setCheckedNodes(this.permissionsList);
        this.checkedList = this.$refs.tree.getCheckedNodes();
      } else {
        this.$refs.tree.setCheckedKeys([]);
      }
    },

  handleCheckChange() {
      // tree 结构转化成一维数组
      const result = [],
        getRoleId = arr => {
          arr.forEach(v => {
            result.push(v.id);
            if (v.children instanceof Array) {
              getRoleId(v.children)
            }
          });
        }
      getRoleId(this.permissionsList);
      let getCheckedList = this.$refs.tree.getCheckedNodes();
      // 比较
      if (result.length == getCheckedList.length && getCheckedList.length != 0) {
        this.checkAll = true
      } else {
        this.checkAll = false
      }
    },

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值