云迈博客

您现在的位置是:首页 > 前端技术 > 正文

前端技术

elementui树组件 半选子节点后台传参和回显(需要传父组件id)

袁叶2020-09-27前端技术349
elementui树组件:node-key绑定id为例:当子节点半选状态的时候,树组件的勾选状态数组只显示子节点id,如果数组里含有父节点id,则会把这个父节点的所有子节点都勾选上

elementui树组件:

        <el-tree
          ref="tree"
          :data="data"
          show-checkbox
          node-key="id"
          :default-expanded-keys="[2, 3]"
          :default-checked-keys="checkedKeysUpdate"
          :props="defaultProps"
          @check="handleTreeKeysUpdate"
        />
  • node-key绑定id为例:

当子节点半选状态的时候,树组件的勾选状态数组只显示子节点id,如果数组里含有父节点id,则会把这个父节点的所有子节点都勾选上

  • 项目要求:

当子节点半选时,需要传父节点id

  • 解决办法:
    后台传参
     handleTreeKeysUpdate(val, keys) {
       this.checkedKeysUpdate = keys.checkedKeys;
       // this.dataKeys为需要给后台穿的id数组(包含父节点的id)
       this.dataKeys = keys.checkedKeys.concat(keys.halfCheckedKeys)
     }
    回显(将从后台获取到的数组去掉父节点id)
    //获取已经选中的
    getRoleSelectedPage(id) {
      roleSelectedPage({ roleId: id })
        .then(res => {
          if (res.code === 20000) {
            this.getPagesInfo = res.data;
            this.data.forEach(item=>{
              this.getPagesInfo.forEach((temm,i)=>{
                if(item.id===temm) {
                  if(item.adminMenuRules.length!==0) {
                    this.getPagesInfo.splice(i,1)
                  }
                }
              })
            })
            this.$refs.tree.setCheckedKeys(this.getPagesInfo);
          }
        })
        .catch(e => {
          console.log(e);
        });
    },

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~