方案一
当前分类以及子级禁用
setChildrenDisable(root, targetId) {
function findAndSet(node) {
if (node.id === targetId) {
setDisable(node);
return true; // 表示找到了目标节点
}
if (node.children && node.children.length > 0) {
for (let child of node.children) {
if (findAndSet(child)) {
return true; // 一旦找到目标节点,立即返回
}
}
}
return false; // 没有找到目标节点
}
function setDisable(node) {
node.disabled = true;
node.title = '不支持移动节点到自己下方';
if (node.children && node.children.length > 0) {
node.children.forEach((child) => setDisable(child));
}
}
// 遍历整个树结构
for (let rootNode of root) {
if (findAndSet(rootNode)) {
break; // 一旦找到目标节点,立即退出循环
}
}
},
this.setChildrenDisable(res, '1378862681146011648');
// '1378862681146011648'为该分类id,非父级id(父级可以为兄弟节点)
方案二
删除该分类数据(子级也不存在了)
const loop = (nodes) => {
const filterRes = nodes.filter((node) => {
if (node.children) {
node.children = loop(node.children);
}
return node.fenLeiID !== data?.fenLeiID;
});
return filterRes;
};