Commit 6369e109 authored by chenshouchao's avatar chenshouchao

feat: 提交任务联调完成

parent 2a7b6d6a
...@@ -24,11 +24,8 @@ type ConfigFormProps = { ...@@ -24,11 +24,8 @@ type ConfigFormProps = {
const ConfigForm = (props: ConfigFormProps) => { const ConfigForm = (props: ConfigFormProps) => {
const { templateConfigInfo, setParameter } = props; const { templateConfigInfo, setParameter } = props;
const [name, setName] = useState<string>( const [name, setName] = useState<string>(""); // 任务名称
`${templateConfigInfo?.title}_${moment(new Date()).format(
"YYYY_MM_DD_HH_mm"
)}`
); // 任务名称
const [nameHelp, setNameHelp] = useState({ const [nameHelp, setNameHelp] = useState({
error: false, error: false,
helperText: "", helperText: "",
...@@ -46,9 +43,13 @@ const ConfigForm = (props: ConfigFormProps) => { ...@@ -46,9 +43,13 @@ const ConfigForm = (props: ConfigFormProps) => {
}; };
}; };
const setInitName = (name: string) => {
setName(`${name}_${moment(new Date()).format("YYYY_MM_DD_HH_mm")}`);
};
useImperativeHandle(props.onRef, () => { useImperativeHandle(props.onRef, () => {
return { return {
getNameAndPath: getNameAndPath, getNameAndPath: getNameAndPath,
setInitName: setInitName,
}; };
}); });
...@@ -190,7 +191,7 @@ const ConfigForm = (props: ConfigFormProps) => { ...@@ -190,7 +191,7 @@ const ConfigForm = (props: ConfigFormProps) => {
> >
{parameter.name} {parameter.name}
<span className={styles.parameterDataType}> <span className={styles.parameterDataType}>
{parameter.dataType} {parameter.classType}
</span> </span>
</div> </div>
<div className={styles.parameterContent}> <div className={styles.parameterContent}>
...@@ -209,30 +210,12 @@ const ConfigForm = (props: ConfigFormProps) => { ...@@ -209,30 +210,12 @@ const ConfigForm = (props: ConfigFormProps) => {
/> />
), ),
}} }}
placeholder="请选择"
error={parameter.error || false} error={parameter.error || false}
helperText={parameter.helperText} helperText={parameter.helperText}
></MyInput> ></MyInput>
)} )}
{parameter.domType.toLowerCase() === "pathselect" && ( {parameter.domType.toLowerCase() === "path" && (
<MyInput
value={parameter.value || ""}
InputProps={{
endAdornment: (
<img
onClick={() =>
handleOpenFileSelect(taskId, parameter.name)
}
src={fileSelectIcon}
alt=""
className={styles.fileSelectImg}
/>
),
}}
error={parameter.error || false}
helperText={parameter.helperText}
></MyInput>
)}
{parameter.domType.toLowerCase() === "datasetselect" && (
<MyInput <MyInput
value={parameter.value || ""} value={parameter.value || ""}
InputProps={{ InputProps={{
...@@ -247,11 +230,12 @@ const ConfigForm = (props: ConfigFormProps) => { ...@@ -247,11 +230,12 @@ const ConfigForm = (props: ConfigFormProps) => {
/> />
), ),
}} }}
placeholder="请选择"
error={parameter.error || false} error={parameter.error || false}
helperText={parameter.helperText} helperText={parameter.helperText}
></MyInput> ></MyInput>
)} )}
{parameter.domType.toLowerCase() === "fileselect" && ( {parameter.domType.toLowerCase() === "dataset" && (
<MyInput <MyInput
value={parameter.value || ""} value={parameter.value || ""}
InputProps={{ InputProps={{
...@@ -266,6 +250,7 @@ const ConfigForm = (props: ConfigFormProps) => { ...@@ -266,6 +250,7 @@ const ConfigForm = (props: ConfigFormProps) => {
/> />
), ),
}} }}
placeholder="请选择"
error={parameter.error || false} error={parameter.error || false}
helperText={parameter.helperText} helperText={parameter.helperText}
></MyInput> ></MyInput>
...@@ -288,8 +273,8 @@ const ConfigForm = (props: ConfigFormProps) => { ...@@ -288,8 +273,8 @@ const ConfigForm = (props: ConfigFormProps) => {
handleParameterChange(e, taskId, parameter.name || "") handleParameterChange(e, taskId, parameter.name || "")
} }
error={parameter.error || false} error={parameter.error || false}
helperText={parameter.helperText} helpertext={parameter.helperText}
options={optionsTransform(parameter.choices, "key")} options={optionsTransform(parameter.choices, "label")}
></MySelect> ></MySelect>
)} )}
{parameter.domType.toLowerCase() === "multipleselect" && ( {parameter.domType.toLowerCase() === "multipleselect" && (
...@@ -300,8 +285,8 @@ const ConfigForm = (props: ConfigFormProps) => { ...@@ -300,8 +285,8 @@ const ConfigForm = (props: ConfigFormProps) => {
} }
multiple={true} multiple={true}
error={parameter.error || false} error={parameter.error || false}
helperText={parameter.helperText} helpertext={parameter.helperText}
options={optionsTransform(parameter.choices, "key")} options={optionsTransform(parameter.choices, "label")}
></MySelect> ></MySelect>
)} )}
{parameter.domType.toLowerCase() === "radio" && ( {parameter.domType.toLowerCase() === "radio" && (
...@@ -310,7 +295,7 @@ const ConfigForm = (props: ConfigFormProps) => { ...@@ -310,7 +295,7 @@ const ConfigForm = (props: ConfigFormProps) => {
onChange={(e: any) => onChange={(e: any) =>
handleParameterChange(e, taskId, parameter.name || "") handleParameterChange(e, taskId, parameter.name || "")
} }
options={optionsTransform(parameter.choices, "key")} options={optionsTransform(parameter.choices, "label")}
error={parameter.error || false} error={parameter.error || false}
helperText={parameter.helperText} helperText={parameter.helperText}
></MyRadio> ></MyRadio>
...@@ -329,7 +314,7 @@ const ConfigForm = (props: ConfigFormProps) => { ...@@ -329,7 +314,7 @@ const ConfigForm = (props: ConfigFormProps) => {
parameter.name || "" parameter.name || ""
) )
} }
options={optionsTransform(parameter.choices, "key")} options={optionsTransform(parameter.choices, "label")}
error={parameter.error || false} error={parameter.error || false}
helperText={parameter.helperText} helperText={parameter.helperText}
></MyCheckBox> ></MyCheckBox>
......
...@@ -2,7 +2,7 @@ import * as React from "react"; ...@@ -2,7 +2,7 @@ import * as React from "react";
import InputLabel from "@mui/material/InputLabel"; import InputLabel from "@mui/material/InputLabel";
import MenuItem from "@mui/material/MenuItem"; import MenuItem from "@mui/material/MenuItem";
import FormControl from "@mui/material/FormControl"; import FormControl from "@mui/material/FormControl";
import FormHelperText from '@mui/material/FormHelperText'; import FormHelperText from "@mui/material/FormHelperText";
import Select, { SelectProps } from "@mui/material/Select"; import Select, { SelectProps } from "@mui/material/Select";
export interface IOption { export interface IOption {
...@@ -39,8 +39,8 @@ interface IProps ...@@ -39,8 +39,8 @@ interface IProps
isTitle?: boolean; isTitle?: boolean;
size?: "small" | "medium"; size?: "small" | "medium";
multiple?: boolean; // 多选 multiple?: boolean; // 多选
error?: boolean; error?: boolean;
helperText?: string; helpertext?: string;
} }
export default function MySelect(props: IProps) { export default function MySelect(props: IProps) {
const { const {
...@@ -53,41 +53,41 @@ export default function MySelect(props: IProps) { ...@@ -53,41 +53,41 @@ export default function MySelect(props: IProps) {
size = "small", size = "small",
multiple = false, multiple = false,
error = false, error = false,
helperText, helpertext,
} = props; } = props;
return ( return (
<FormControl fullWidth variant={variant} error={error}> <FormControl fullWidth variant={variant} error={error}>
{isTitle ? ( {isTitle ? (
<InputLabel id="demo-simple-select-label"> <InputLabel id="demo-simple-select-label">
{title || "请选择"} {title || "请选择"}
</InputLabel> </InputLabel>
) : null} ) : null}
<Select <Select
labelId="demo-simple-select-label" labelId="demo-simple-select-label"
id="demo-simple-select" id="demo-simple-select"
label={title || ""} label={title || ""}
size={size} size={size}
{...props} {...props}
value={value} value={value}
onChange={onChange} onChange={onChange}
multiple={multiple} multiple={multiple}
> >
{options.length {options.length
? options?.map((item: IOption) => { ? options?.map((item: IOption) => {
return ( return (
<MenuItem <MenuItem
key={item.value} key={item.value}
value={item.value} value={item.value}
disabled={item?.disabled} disabled={item?.disabled}
> >
{item.label} {item.label}
</MenuItem> </MenuItem>
); );
}) })
: null} : null}
</Select> </Select>
{helperText && error && <FormHelperText>{helperText}</FormHelperText>} {helpertext && error && <FormHelperText>{helpertext}</FormHelperText>}
</FormControl> </FormControl>
); );
} }
...@@ -39,6 +39,7 @@ const ProjectSubmitWork = () => { ...@@ -39,6 +39,7 @@ const ProjectSubmitWork = () => {
const { run } = useMyRequest(fetchTemplateConfigInfo, { const { run } = useMyRequest(fetchTemplateConfigInfo, {
onSuccess: (res: IResponse<ITemplateConfig>) => { onSuccess: (res: IResponse<ITemplateConfig>) => {
setTemplateConfigInfo(res.data); setTemplateConfigInfo(res.data);
configFormRef.current.setInitName(res.data.title);
// setTemplateConfigInfo(templateConfigJson as ITemplateConfig); // setTemplateConfigInfo(templateConfigJson as ITemplateConfig);
}, },
// onError: () => { // onError: () => {
...@@ -89,28 +90,57 @@ const ProjectSubmitWork = () => { ...@@ -89,28 +90,57 @@ const ProjectSubmitWork = () => {
const { name, outputPath, nameAndOutputPathCheck } = const { name, outputPath, nameAndOutputPathCheck } =
configFormRef.current.getNameAndPath(); configFormRef.current.getNameAndPath();
if (!nameAndOutputPathCheck) { if (!nameAndOutputPathCheck) {
console.log(123);
check = false; check = false;
} }
const result: ITemplateConfig = _.cloneDeep(templateConfigInfo); const result: ITemplateConfig = _.cloneDeep(templateConfigInfo);
result.tasks.forEach((tack) => { result.tasks.forEach((tack) => {
tack.parameters.forEach((parameter) => { tack.parameters
const checkResult = getCheckResult(parameter, parameter.value); .filter((parameter) => parameter.hidden === false)
parameter.error = checkResult.error; .forEach((parameter) => {
parameter.helperText = checkResult.helperText; const checkResult = getCheckResult(parameter, parameter.value);
if (checkResult.error) { parameter.error = checkResult.error;
check = false; parameter.helperText = checkResult.helperText;
} if (checkResult.error) {
}); console.log(tack);
console.log(parameter);
check = false;
}
});
}); });
setTemplateConfigInfo(result); setTemplateConfigInfo(result);
if (check) { if (check) {
console.log("提交任务"); let promotedParameters: any = {};
result.tasks.forEach((tack) => {
tack.parameters
.filter((parameter) => parameter.hidden === false)
.forEach((parameter) => {
let value: string = "";
if (Array.isArray(parameter.value)) {
value = parameter.value.join(",");
}
if (
parameter.domType.toLowerCase() === "path" ||
parameter.domType.toLowerCase() === "dataset" ||
parameter.domType.toLowerCase() === "file"
) {
if (value === "ProjectData") {
value = "/home/cloudam";
} else {
value = `/home/cloudam${value.slice(11)}`;
}
}
promotedParameters[parameter.name] = {
[parameter.classType]: value,
};
});
});
submitWorkFlowRun({ submitWorkFlowRun({
name, name,
outputPath, outputPath,
projectId: projectId as string, projectId: projectId as string,
specId: templateConfigInfo?.id as string, specId: templateConfigInfo?.id as string,
promotedParameters: {}, promotedParameters,
}); });
} else { } else {
Message.error("请完善左侧表单再提交"); Message.error("请完善左侧表单再提交");
......
...@@ -13,7 +13,7 @@ export interface IParameter { ...@@ -13,7 +13,7 @@ export interface IParameter {
name: string; name: string;
required: boolean; required: boolean;
domType: IDomType; domType: IDomType;
dataType?: string; classType: string;
value: any; value: any;
description: string; description: string;
language: string; language: string;
...@@ -58,9 +58,9 @@ export interface ITemplateConfig { ...@@ -58,9 +58,9 @@ export interface ITemplateConfig {
} }
export type IDomType = export type IDomType =
| "pathselect" | "path"
| "datasetselect" | "dataset"
| "fileselect" | "file"
| "input" | "input"
| "file" | "file"
| "select" | "select"
......
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