js 处理Tree结构,如果所有子节点disabled,则设置父节点也disabled
const treeData = {
"key": "000",
"title": "000",
"children": [
{
"key": "100",
"title": "100",
"children": [
{
"key": "110",
"title": "110",
"children": [
{
"key": "111",
"title": "111",
"disabled": true,
"children": []
}
],
"disabled": false
},
{
"key": "120",
"title": "120)",
"children": [
{
"key": "121",
"title": "121",
"disabled": true,
"children": []
}
],
"disabled": false
}
]
}
]
}
const updateParentDisabledState = (node) => {
// 如果所有子节点disabled,则设置父节点也disabled
if (node.children && node.children.length > 0) {
// 递归检查所有子节点的禁用状态
node.children.forEach((child) => {
updateParentDisabledState(child);
});
// 检查所有子节点是否都被禁用
const allChildrenDisabled = node.children.every((child) => child.disabled);
// 设置父节点的禁用状态
node.disabled = allChildrenDisabled;
}
};
updateParentDisabledState(treeData )