element tree check事件使用

2021-07-28 / 201

要实现的功能:

  1. 父节点取消选中子节点也都取消选中。
  2. 父节点选中子节点不用选中。
  3. 子节点有一个选中父节点也要选中。
  4. 子节点取消选中父节点不用取消选中。

  tree组件添加@check="currentChange"事件。

currentChange(nodedata, checkedNodes) {
      if (nodedata.parentId != 0) {
        if (checkedNodes.checkedKeys.includes(nodedata.id)) { // 判断节点是否选中
          let node = this.$refs['phoneTree'].getNode(nodedata.parentId)
          if (node) {
            this.$refs['phoneTree'].setChecked(node, true) // 选中要选中的节点
          }
        }
      } else {
        if (nodedata.children.length > 0 && !checkedNodes.checkedKeys.includes(nodedata.id)) {
          for (let item of nodedata.children) {
            let node = this.$refs['phoneTree'].getNode(item.id)
            if (node) {
              this.$refs['phoneTree'].setChecked(node, false)
            }
          }
        }
      }
    },