fix: 工况库 一维表格 学科

This commit is contained in:
JiangSheng
2026-02-02 15:40:12 +08:00
parent 6aa20bdc9e
commit 41565ffbdc

View File

@@ -255,15 +255,25 @@ export const translateLoadcaseTree = (list: any[]) => {
});
return arr;
};
export const extractLeafNodesWithParentTypes = (list: any[] | undefined): any[] => {
export const extractLeafNodesWithParentTypes = (
list: any[] | undefined,
disciplineAsLevel: boolean = false
): any[] => {
const result: any[] = [];
const typeToField: Record<string, string> = {
workspace: 'workspaceName',
discipline: 'disciplineName',
machine: 'machineName',
task: 'taskName',
performance: 'performanceName',
};
const typeToField: Record<string, string> = disciplineAsLevel
? {
workspace: 'workspaceName',
discipline: 'disciplineName',
machine: 'machineName',
task: 'taskName',
performance: 'performanceName',
}
: {
workspace: 'workspaceName',
machine: 'machineName',
task: 'taskName',
performance: 'performanceName',
};
const typeToCodeField: Record<string, string> = {
workspace: 'workspaceCode',
task: 'taskCode',
@@ -344,6 +354,16 @@ export const extractLeafNodesWithParentTypes = (list: any[] | undefined): any[]
extraProps[field] = null;
}
});
if (!disciplineAsLevel) {
const reversedParents = [...parents].reverse();
const taskParent = reversedParents.find((p) => p && p.nodeType === NODE_TYPE.TASK);
const taskNode = taskParent || (node.nodeType === NODE_TYPE.TASK ? node : null);
if (taskNode && taskNode.discipline) {
extraProps['disciplineName'] = taskNode.discipline;
} else {
extraProps['disciplineName'] = null;
}
}
const copy = {
...mergedNode,
parentNodeTypes: uniqueTypes,