Commit 6e839ab6 authored by chenshouchao's avatar chenshouchao

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

parent b04b3d61
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
import { Tooltip, TooltipProps } from "@mui/material"; import { Tooltip, TooltipProps } from "@mui/material";
import { ThemeProvider, createTheme } from "@mui/material/styles"; import { ThemeProvider, createTheme } from "@mui/material/styles";
interface IMyTooltipProps extends TooltipProps { interface IMyTooltipProps extends Omit<TooltipProps, "title"> {
title: string; title?: string | boolean;
} }
const theme = createTheme({ const theme = createTheme({
...@@ -33,7 +33,7 @@ const theme = createTheme({ ...@@ -33,7 +33,7 @@ const theme = createTheme({
}); });
const MyTooltip = (props: IMyTooltipProps) => { const MyTooltip = (props: IMyTooltipProps) => {
const { title, children, placement = "top", ...other } = props; const { title = false, children, placement = "top", ...other } = props;
return ( return (
<ThemeProvider theme={theme}> <ThemeProvider theme={theme}>
<Tooltip <Tooltip
......
...@@ -411,7 +411,7 @@ const ProjectMembers = observer(() => { ...@@ -411,7 +411,7 @@ const ProjectMembers = observer(() => {
<Box className={styles.tabBoxMiddle}> <Box className={styles.tabBoxMiddle}>
<img alt="" src={jobCost} /> <img alt="" src={jobCost} />
<div className={styles.tabBoxTime}> <div className={styles.tabBoxTime}>
{item.jobCost.toFixed(2)} {item.jobCost ? item.jobCost.toFixed(2) : "--"}
</div> </div>
</Box> </Box>
<Box className={styles.tabBoxJobStatus}> <Box className={styles.tabBoxJobStatus}>
......
...@@ -77,7 +77,7 @@ const Flow = (props: IProps) => { ...@@ -77,7 +77,7 @@ const Flow = (props: IProps) => {
/** 原始数据删除线 */ /** 原始数据删除线 */
const tasksDeleteLine = useCallback( const tasksDeleteLine = useCallback(
(connection: Connection | Edge | any) => { (connection: Connection | Edge | any) => {
const result = let result =
(tasks?.length && (tasks?.length &&
tasks.map((item) => { tasks.map((item) => {
/** 删除batch起始的edges中的一项 === 等于删除了一根连线 */ /** 删除batch起始的edges中的一项 === 等于删除了一根连线 */
...@@ -123,6 +123,45 @@ const Flow = (props: IProps) => { ...@@ -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; return result;
}, },
[tasks] [tasks]
...@@ -472,7 +511,7 @@ const Flow = (props: IProps) => { ...@@ -472,7 +511,7 @@ const Flow = (props: IProps) => {
/** 连接校验并修改值 */ /** 连接校验并修改值 */
const connectCheck = useCallback( const connectCheck = useCallback(
(connection: Connection) => { (connection: Connection) => {
const newVal = let newVal =
(tasks?.length && (tasks?.length &&
tasks?.map((item) => { tasks?.map((item) => {
if (item.id === connection.source) { if (item.id === connection.source) {
...@@ -499,6 +538,46 @@ const Flow = (props: IProps) => { ...@@ -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; return newVal;
}, },
[connectModifyParameters, tasks] [connectModifyParameters, tasks]
......
...@@ -67,6 +67,12 @@ const ParameterSetting = (props: IParameterSettingProps) => { ...@@ -67,6 +67,12 @@ const ParameterSetting = (props: IParameterSettingProps) => {
/** 通过parameter.name删除与之相关联的线 */ /** 通过parameter.name删除与之相关联的线 */
const handleHiddenDeleteEdge = useCallback( const handleHiddenDeleteEdge = useCallback(
(val: ITask[], parameterName: string) => { (val: ITask[], parameterName: string) => {
let taskParentNode = "";
val.forEach((task) => {
if (task.id === taskId) {
taskParentNode = task.parentNode || "";
}
});
return ( return (
val?.length && val?.length &&
val?.map((item) => { val?.map((item) => {
...@@ -92,7 +98,11 @@ const ParameterSetting = (props: IParameterSettingProps) => { ...@@ -92,7 +98,11 @@ const ParameterSetting = (props: IParameterSettingProps) => {
const newEdges = const newEdges =
(item?.edges?.length && (item?.edges?.length &&
item?.edges?.filter((every) => { item?.edges?.filter((every) => {
return every.targetHandle !== parameterName; // 因为存在同名的parameterName 所以增加every.source === taskParentNode判断
return (
every.targetHandle !== parameterName ||
every.source === taskParentNode
);
})) || })) ||
[]; [];
return { 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