Commit 37d579c4 authored by chenshouchao's avatar chenshouchao

faet: 完成parameter.hidden动态响应

parent bc5b7a9d
...@@ -93,15 +93,15 @@ ...@@ -93,15 +93,15 @@
.parameterBox:last-child { .parameterBox:last-child {
margin-bottom: 0; margin-bottom: 0;
} }
.parameterTop { .inOutParameterTop {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
margin-bottom: 8px; margin-bottom: 8px;
} }
.parameterleft { .inOutParameterleft {
} }
.parameterName { .inOutParameterName {
color: rgba(30, 38, 51, 1); color: rgba(30, 38, 51, 1);
font-size: 14px; font-size: 14px;
line-height: 22px; line-height: 22px;
...@@ -112,7 +112,7 @@ ...@@ -112,7 +112,7 @@
color: rgba(255, 78, 78, 1); color: rgba(255, 78, 78, 1);
margin-left: 4px; margin-left: 4px;
} }
.parameterdataType { .inOutParameterdataType {
color: rgba(138, 144, 153, 1); color: rgba(138, 144, 153, 1);
font-size: 12px; font-size: 12px;
line-height: 20px; line-height: 20px;
...@@ -136,3 +136,55 @@ ...@@ -136,3 +136,55 @@
.paramsGroup{ .paramsGroup{
padding-bottom: 24px; padding-bottom: 24px;
} }
.parameter{
padding: 16px 0 24px;
border-bottom: 1px solid #F0F2F5;
}
.parameter:last-child{
border-bottom: none;
}
.parameterTop{
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
}
.parameterLeft{
}
.parameterName{
font-size: 14px;
color: #1E2633;
line-height: 22px;
font-weight: 600;
}
.parameterClassTypeName{
font-size: 14px;
color: #8A9099;
line-height: 22px;
}
/* <div
className={styles.parameter}
key={parameter.id || "" + parameterIndex}
>
<div className={styles.parameterTop}>
<div className={styles.parameterLeft}>
<div
className={classNames({
[styles.parameterTitle]: true,
[styles.required]: parameter.required,
})}
>
{parameter.name}
</div>
<div className={styles.parameterClassTypeName}>
{parameter.classTypeName}
</div>
</div>
<MySwitch value={parameter.hidden}></MySwitch>
</div>
<div className={styles.parameterContent}>
{renderInput(parameter)}
</div>
</div> */
\ No newline at end of file
...@@ -12,19 +12,21 @@ import MyCheckBox from "@/components/mui/MyCheckBox"; ...@@ -12,19 +12,21 @@ import MyCheckBox from "@/components/mui/MyCheckBox";
import MySelect, { import MySelect, {
optionsTransform, optionsTransform,
} from "../../../Project/ProjectSubmitWork/components/MySelect"; } from "../../../Project/ProjectSubmitWork/components/MySelect";
import _ from "lodash";
import MyRadio from "@/components/mui/MyRadio"; import MyRadio from "@/components/mui/MyRadio";
import questionMark from "@/assets/project/questionMark.svg"; import questionMark from "@/assets/project/questionMark.svg";
import fileSelectIcon from "@/assets/project/fileSelect.svg"; import fileSelectIcon from "@/assets/project/fileSelect.svg";
import MySwitch from "@/components/mui/MySwitch"; import MySwitch from "@/components/mui/MySwitch";
import Tabs from "@/components/mui/Tabs"; import Tabs from "@/components/mui/Tabs";
import classNames from "classnames"; import classNames from "classnames";
import { Hidden } from "@mui/material";
type IParameterSettingProps = { type IParameterSettingProps = {
templateConfigInfo: ITask[]; templateConfigInfo: ITask[];
taskId: string; taskId: string;
}; };
const templateConfigInfo = [ const templateConfigInfoMock = [
{ {
id: "id", id: "id",
title: "title", title: "title",
...@@ -49,7 +51,7 @@ const templateConfigInfo = [ ...@@ -49,7 +51,7 @@ const templateConfigInfo = [
classType: "STRING", classType: "STRING",
classTypeName: "String", classTypeName: "String",
value: "", value: "",
description: "", description: "123",
language: "", language: "",
languageVersion: "", languageVersion: "",
tags: [], tags: [],
...@@ -91,6 +93,32 @@ const templateConfigInfo = [ ...@@ -91,6 +93,32 @@ const templateConfigInfo = [
choices: [], choices: [],
parameterGroup: "out", parameterGroup: "out",
}, },
{
hidden: true,
id: "999",
name: "basis999",
required: true,
defaultValue: '',
domType: "select",
classType: "STRING",
classTypeName: "String",
value: "",
description: "789",
language: "",
languageVersion: "",
tags: [],
source: "string",
productId: "",
tasks: [],
validators: [
{
message: "请选择smi文件作为输入",
regex: "^.[s][m][i]$",
},
],
choices: [],
parameterGroup: "basis",
},
{ {
hidden: true, hidden: true,
id: "", id: "",
...@@ -179,6 +207,8 @@ const taskId = "id"; ...@@ -179,6 +207,8 @@ const taskId = "id";
const ParameterSetting = (props: IParameterSettingProps) => { const ParameterSetting = (props: IParameterSettingProps) => {
// const { templateConfigInfo, taskId } = props; // const { templateConfigInfo, taskId } = props;
const [templateConfigInfo, setTemplateConfigInfo] = useState<ITask[]>(templateConfigInfoMock as ITask[])
const [descHeight, setDescHeight] = useState(0); const [descHeight, setDescHeight] = useState(0);
const [isShowAllDese, setIsShowAllDese] = useState(false); const [isShowAllDese, setIsShowAllDese] = useState(false);
...@@ -211,8 +241,25 @@ const ParameterSetting = (props: IParameterSettingProps) => { ...@@ -211,8 +241,25 @@ const ParameterSetting = (props: IParameterSettingProps) => {
} }
}, [templateConfigInfo, taskId]); }, [templateConfigInfo, taskId]);
// 设置parameter.hidden字段
const handleHiddenChange = useCallback((e: any, parameterId: string) => {
const result: ITask[] = _.cloneDeep(templateConfigInfo);
const taskIndex = result.findIndex((item) => {
return item.id === taskId
})
if (taskIndex !== -1) {
result[taskIndex].parameters.forEach((parameter) => {
if (parameter.id === parameterId) {
parameter.hidden = e.target.checked
}
})
}
setTemplateConfigInfo(result)
}, [templateConfigInfo, setTemplateConfigInfo])
const renderInput = useCallback((parameter: IParameter) => { const renderInput = useCallback((parameter: IParameter) => {
return ( return (
<Tooltip title={parameter.description} placement="top">
<div> <div>
{parameter.domType.toLowerCase() === "file" && ( {parameter.domType.toLowerCase() === "file" && (
<MyInput <MyInput
...@@ -338,12 +385,13 @@ const ParameterSetting = (props: IParameterSettingProps) => { ...@@ -338,12 +385,13 @@ const ParameterSetting = (props: IParameterSettingProps) => {
helperText={parameter.helperText} helperText={parameter.helperText}
></MyCheckBox> ></MyCheckBox>
)} )}
{parameter.description && ( {/* {parameter.description && (
<Tooltip title={parameter.description} placement="top"> <Tooltip title={parameter.description} placement="top">
<img className={styles.parameterDesc} src={questionMark} alt="" /> <img className={styles.parameterDesc} src={questionMark} alt="" />
</Tooltip> </Tooltip>
)} )} */}
</div> </div>
</Tooltip>
); );
},[]); },[]);
...@@ -412,16 +460,21 @@ const ParameterSetting = (props: IParameterSettingProps) => { ...@@ -412,16 +460,21 @@ const ParameterSetting = (props: IParameterSettingProps) => {
className={styles.parameter} className={styles.parameter}
key={parameter.id || "" + parameterIndex} key={parameter.id || "" + parameterIndex}
> >
<div className={styles.parameterTop}>
<div className={styles.parameterLeft}>
<div <div
className={classNames({ className={classNames({
[styles.parameterTitle]: true, [styles.parameterName]: true,
[styles.required]: parameter.required, [styles.required]: parameter.required,
})} })}
> >
{parameter.name} {parameter.name}
<span className={styles.parameterDataType}> </div>
<div className={styles.parameterClassTypeName}>
{parameter.classTypeName} {parameter.classTypeName}
</span> </div>
</div>
<MySwitch value={parameter.hidden} onChange={(e: any) => handleHiddenChange(e, parameter.id || '')}></MySwitch>
</div> </div>
<div className={styles.parameterContent}> <div className={styles.parameterContent}>
{renderInput(parameter)} {renderInput(parameter)}
...@@ -539,22 +592,22 @@ const ParameterSetting = (props: IParameterSettingProps) => { ...@@ -539,22 +592,22 @@ const ParameterSetting = (props: IParameterSettingProps) => {
<div className={styles.paramsList}> <div className={styles.paramsList}>
{inParameters.map((parameter, index) => { {inParameters.map((parameter, index) => {
return ( return (
<div className={styles.parameterBox} key={index}> <div className={styles.inOutParameterBox} key={index}>
<div className={styles.parameterTop}> <div className={styles.inOutParameterTop}>
<div className={styles.parameterleft}> <div className={styles.inOutParameterleft}>
<div <div
className={classNames({ className={classNames({
[styles.parameterName]: true, [styles.inOutParameterName]: true,
[styles.required]: parameter.required, [styles.required]: parameter.required,
})} })}
> >
{parameter.name} {parameter.name}
</div> </div>
<div className={styles.parameterdataType}> <div className={styles.inOutParameterdataType}>
{parameter.classTypeName} {parameter.classTypeName}
</div> </div>
</div> </div>
<div className={styles.parameterRight}> <div className={styles.inOutParameterRight}>
<MySwitch value={parameter.hidden}></MySwitch> <MySwitch value={parameter.hidden}></MySwitch>
</div> </div>
</div> </div>
...@@ -571,23 +624,23 @@ const ParameterSetting = (props: IParameterSettingProps) => { ...@@ -571,23 +624,23 @@ const ParameterSetting = (props: IParameterSettingProps) => {
<div className={styles.paramsList}> <div className={styles.paramsList}>
{inParameters.map((parameter, index) => { {inParameters.map((parameter, index) => {
return ( return (
<div className={styles.parameterBox} key={index}> <div className={styles.inOutParameterBox} key={index}>
<div className={styles.parameterTop}> <div className={styles.inOutParameterTop}>
<div className={styles.parameterleft}> <div className={styles.inOutParameterleft}>
<div <div
className={classNames({ className={classNames({
[styles.parameterName]: true, [styles.inOutParameterName]: true,
[styles.required]: parameter.required, [styles.required]: parameter.required,
})} })}
> >
{parameter.name} {parameter.name}
</div> </div>
<div className={styles.parameterdataType}> <div className={styles.inOutParameterdataType}>
{parameter.classTypeName} {parameter.classTypeName}
</div> </div>
</div> </div>
<div className={styles.parameterRight}> <div className={styles.inOutParameterRight}>
{parameter.hidden}
</div> </div>
</div> </div>
{renderInput(parameter)} {renderInput(parameter)}
......
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