diff --git a/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js b/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js index c5bd18d..01a4814 100644 --- a/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js +++ b/src/components/Manufacture/ProcessCardPackTableTreeNew/index.js @@ -2890,32 +2890,28 @@ const controlProps = props => { returnProps.onDataRowDel = ({ name }) => { const { controlData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = props; if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) { - /* 删除该节点及所有子节点 */ - const tableRow = controlData.find(item => item.sId === tableSelectedRowKeys[0]); - let controlChildData = []; - if(commonUtils.isNotEmptyObject(tableRow)) { - // 递归查找所有子节点 - const findChildren = (parentId, allNodes) => { - const children = allNodes.filter(node => node.sControlParentId === parentId); - let result = [...children]; - children.forEach(child => { - result = result.concat(findChildren(child.sNodeId, allNodes)); - }); - return result; - }; - - controlChildData = findChildren(tableRow.sNodeId, controlData); - } - if (commonUtils.isNotEmptyArr(controlData)) { - controlChildData.forEach(itemNew => { - tableSelectedRowKeys.push(itemNew.sId); + const firstId = tableSelectedRowKeys[0]; + const deleteIds = [firstId]; // 要删除的ID列表 + + let i = 0; + while (i < deleteIds.length) { + const currentId = deleteIds[i]; + // 找到所有子节点 + const children = controlData.filter(node => node.sControlParentId === currentId); + // 把子节点ID加入删除列表 + children.forEach(child => { + if (!deleteIds.includes(child.sId)) { + deleteIds.push(child.sId); + } }); + i++; } - const materialsReturnData = props.otherTableDel("materials", tableSelectedRowKeys); - const materials0ReturnData = props.otherTableDel("materials0", tableSelectedRowKeys); - const processReturnData = props.otherTableDel("process", tableSelectedRowKeys); - const packReturnData = props.otherTableDel("pack", tableSelectedRowKeys); - const controlReturnData = props.onDataRowDel(name, true, tableSelectedRowKeys); + const materialsReturnData = props.otherTableDel("materials", deleteIds); + const materials0ReturnData = props.otherTableDel("materials0", deleteIds); + const processReturnData = props.otherTableDel("process", deleteIds); + const packReturnData = props.otherTableDel("pack", deleteIds); + const controlReturnData = props.onDataRowDel(name, true, deleteIds); + props.onSaveState({ treeData: [], ...materialsReturnData,