import { Form, Input, Modal, Select } from 'antd'; import { useState } from 'react'; import styles from './addExperimentModal.less'; type FormData = { name?: string; description?: string; workflow_id?: string | number; }; type AddExperimentModalProps = { isAdd: boolean; open: boolean; onCancel: () => void; onFinish: () => void; workflowList: Workflow[]; initialValues: FormData; }; interface GlobalParam { param_name: string; param_value: string; } interface Workflow { id: string | number; name: string; global_param?: GlobalParam[] | null; } function AddExperimentModal({ isAdd, open, onCancel, onFinish, workflowList = [], initialValues = {}, }: AddExperimentModalProps) { const dialogTitle = isAdd ? '新建实验' : '编辑实验'; const workflowDisabled = isAdd ? false : true; const [globalParam, setGlobalParam] = useState([]); const [form] = Form.useForm(); // 除了流水线选择发生变化 const handleWorkflowChange = (id: string) => { const pipeline: Workflow | undefined = workflowList.find((v) => v.id === id); if (pipeline && pipeline.global_param) { setGlobalParam(pipeline.global_param); const fields = pipeline.global_param.reduce((acc, item) => { acc[item.param_name] = item.param_value; return acc; }, {} as Record); form.setFieldsValue(fields); } else { setGlobalParam([]); } }; return ( {dialogTitle} } open={open} okButtonProps={{ htmlType: 'submit', form: 'form', }} onCancel={onCancel} destroyOnClose={true} >
{globalParam.map((item) => ( ))}
); } export default AddExperimentModal;