Commit 6e839ab6 authored by chenshouchao's avatar chenshouchao

feat: 处理创建自定义模板时,使用相同批节点构建模板,造成的删线、显示隐藏、校验错误的问题

parent b04b3d61
......@@ -9,8 +9,8 @@
import { Tooltip, TooltipProps } from "@mui/material";
import { ThemeProvider, createTheme } from "@mui/material/styles";
interface IMyTooltipProps extends TooltipProps {
title: string;
interface IMyTooltipProps extends Omit<TooltipProps, "title"> {
title?: string | boolean;
}
const theme = createTheme({
......@@ -33,7 +33,7 @@ const theme = createTheme({
});
const MyTooltip = (props: IMyTooltipProps) => {
const { title, children, placement = "top", ...other } = props;
const { title = false, children, placement = "top", ...other } = props;
return (
<ThemeProvider theme={theme}>
<Tooltip
......
......@@ -411,7 +411,7 @@ const ProjectMembers = observer(() => {
<Box className={styles.tabBoxMiddle}>
<img alt="" src={jobCost} />
<div className={styles.tabBoxTime}>
{item.jobCost.toFixed(2)}
{item.jobCost ? item.jobCost.toFixed(2) : "--"}
</div>
</Box>
<Box className={styles.tabBoxJobStatus}>
......
......@@ -77,7 +77,7 @@ const Flow = (props: IProps) => {
/** 原始数据删除线 */
const tasksDeleteLine = useCallback(
(connection: Connection | Edge | any) => {
const result =
let result =
(tasks?.length &&
tasks.map((item) => {
/** 删除batch起始的edges中的一项 === 等于删除了一根连线 */
......@@ -123,6 +123,45 @@ const Flow = (props: IProps) => {
}
})) ||
[];
// 更新批节点下对应流节点的hidden和错误提示
result = result.map((task) => {
if (task.parentNode === connection.target) {
let isCheck = true;
const parametersChange = task.parameters.map((parameter) => {
if (parameter.name === connection.targetHandle) {
const { error, helperText } =
getCustomTemplateParameterCheckResult({
...parameter,
linked: false,
hidden: false,
});
return {
...parameter,
hidden: false,
linked: false,
error,
helperText,
};
} else {
return parameter;
}
});
parametersChange.forEach((parameter) => {
if (
getCustomTemplateParameterCheckResult(parameter).error === true
) {
isCheck = false;
}
});
return {
...task,
isCheck,
parameters: parametersChange,
};
} else {
return task;
}
});
return result;
},
[tasks]
......@@ -472,7 +511,7 @@ const Flow = (props: IProps) => {
/** 连接校验并修改值 */
const connectCheck = useCallback(
(connection: Connection) => {
const newVal =
let newVal =
(tasks?.length &&
tasks?.map((item) => {
if (item.id === connection.source) {
......@@ -499,6 +538,46 @@ const Flow = (props: IProps) => {
}
})) ||
[];
// 更新批节点下对应流节点的hidden和错误提示
newVal = newVal.map((task) => {
if (task.parentNode === connection.target) {
let isCheck = true; // 红点校验
let parametersChange = task.parameters.map((parameter) => {
if (parameter.name === connection.targetHandle) {
const { error, helperText } =
getCustomTemplateParameterCheckResult({
...parameter,
linked: true,
hidden: true,
});
return {
...parameter,
hidden: true,
linked: true,
error,
helperText,
};
} else {
return parameter;
}
});
parametersChange.forEach((parameter) => {
if (
getCustomTemplateParameterCheckResult(parameter).error === true
) {
isCheck = false;
}
});
return {
...task,
isCheck,
parameters: parametersChange,
};
} else {
return task;
}
});
return newVal;
},
[connectModifyParameters, tasks]
......
......@@ -67,6 +67,12 @@ const ParameterSetting = (props: IParameterSettingProps) => {
/** 通过parameter.name删除与之相关联的线 */
const handleHiddenDeleteEdge = useCallback(
(val: ITask[], parameterName: string) => {
let taskParentNode = "";
val.forEach((task) => {
if (task.id === taskId) {
taskParentNode = task.parentNode || "";
}
});
return (
val?.length &&
val?.map((item) => {
......@@ -92,7 +98,11 @@ const ParameterSetting = (props: IParameterSettingProps) => {
const newEdges =
(item?.edges?.length &&
item?.edges?.filter((every) => {
return every.targetHandle !== parameterName;
// 因为存在同名的parameterName 所以增加every.source === taskParentNode判断
return (
every.targetHandle !== parameterName ||
every.source === taskParentNode
);
})) ||
[];
return {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment