el-tree父子节点的选中取消

vue+element ui
vue组件中的el-tree:

<el-tree
        ref="tree"
        :data="permissionList"
        show-checkbox
        check-strictly
        node-key="id"
        :default-checked-keys="hasPermission"
        :props="defaultProps"
        class="mb-30"
        @check-change="clickTreeDeal"
 />
data() {
    return {
      defaultProps: {
        children: 'children',
        label: 'title'
      },
      hasPermission: [],
      permissionList: []
    }
  },

clickTreeDeal(curObj, objStatus) {
      // curObj: 当前节点数据
      // objStatus: 当前节点的状态,选中为 true ,取消选择为false
      // this.$refs.tree.getNode(curObj):获取当前节点的node
      if (objStatus) {
        // 当前节点选中,勾选父节点
        const parentNode = this.$refs.tree.getNode(curObj).parent
        if (parentNode.key !== undefined) {
          this.$refs.tree.setChecked(parentNode, true)
        }
      } else {
        // 当前节点取消选中,所有子节点取消选中
        if (curObj.children !== undefined) {
          curObj.children.forEach((item, i) => {
            this.$refs.tree.setChecked(item, false, true)
          })
        }
      }
},
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容