zoukankan      html  css  js  c++  java
  • element-ui default-checked-keys 会把节点下所有子节点全部勾选解决方法

    <el-tree
                class="filter-tree"
                :data="permissionData"
                :props="props"
                node-key="id"
                ref="treeForm"
                show-checkbox
                :default-checked-keys="this.savedPermissionIds"
                :default-expanded-keys="this.savedPermissionIds"
                @check="getCheckedNodes"
              ></el-tree>
       showDialog(id) {
          this.isShowPermissionTree = true;
          this.roleId = id;
          this.savedPermissionIds = [];
          this.getPermissionTree();
        },
        //获取用户勾选的权限id用于传参后台
        getCheckedNodes() {
          // let selectedPermission = this.$refs.treeForm.getCheckedNodes(false, true); //(leafOnly, includeHalfChecked) 接收两个 boolean 类型的参数,1. 是否只是叶子节点,默认值为 false 2. 是否包含半选节点,默认值为 false
          // this.permissionIds = selectedPermission.map(item => {
          //   return item.id;
          // });
          let parentArr = this.$refs.treeForm.getHalfCheckedKeys();
          let childeArr = this.$refs.treeForm.getCheckedKeys();
          let arr = childeArr.concat(parentArr);
          this.permissionIds = arr;
        },
        //取消
        cancel() {
          this.isShowPermissionTree = false;
          this.savedPermissionIds = [];
          this.getPermissionTree();
        },
        //获取树形权限列表
        getPermissionTree() {
          menulistByPid({ flag: 1 }).then(res => {
            this.permissionData = res.body;
            //获取权限管理配置id并显示
            getPermissionIds({ roleId: this.roleId }).then(res => {
              this.savedPermissionIds = res.body;
              let newArr = [];
              let item = "";
              if (this.savedPermissionIds && this.savedPermissionIds.length !== 0) {
                this.savedPermissionIds.forEach(item => {
                  this.checked(item, this.permissionData, newArr);
                });
                this.savedPermissionIds = newArr;
                // console.log("this.savedPermissionIds111", this.savedPermissionIds);
              }
            });
          });
        },
        checked(id, data, newArr) {
          data.forEach(item => {
            if (item.id == id) {
              if (item.items && item.items.length == 0) {
                newArr.push(item.id);
              }
            } else {
              if (item.items != null && item.items.length != 0) {
                this.checked(id, item.items, newArr);
              }
            }
          });
          // console.log("newArr", newArr);
        },
  • 相关阅读:
    listView控件演示程序
    猪悟能淘宝商品下载专家v3版开发手记
    c# WebClient类
    分隔控件splitter演示程序
    C#中SESSIONID的获取
    工具栏toolBar演示程序
    Cookie总结
    C#获取网页源码并且自动判断网页字符集编码
    如何在Google Code上建立私有代码版本库
    iOS应用程序生命周期(前后台切换,应用的各种状态)详解
  • 原文地址:https://www.cnblogs.com/Byme/p/11551504.html
Copyright © 2011-2022 走看看