- 背景:项目上需要实现树状选择,点击父级禁用子级的功能,element组件本身没有该配置项
- 说明:需要实现几个功能点:点击父级禁用子级;再次点击取消禁用;仅回填所选级;上下级不关联
- 实现代码:
this.originTreeList = _.cloneDeep(this.treeOptions)
async onChange(val) {this.treeOptions = _.cloneDeep(this.originTreeList) this.handleDisable() ...
}
async handleDisable() {await this.$nextTick()_.forEach(this.$refs.packageTree.getCheckedNodes(), (e) => {this.disableChildren(e)})
},
disableChildren(node) {if (node.children) {_.forEach(node.children, (child) => {this.$set(child.data, 'disabled', true)this.disableChildren(child)})}
},