import { datasetApi } from "@/api/dataset"; import { Button, Divider, Flex, Form, Input, InputNumber, message, Modal, Select, Space, Tooltip, } from "antd"; import React, { useEffect } from "react"; // 生成简短的UUID const generateShortUUID = () => { return Math.random().toString(36).substring(2, 8); }; interface CreateTaskModalProps { visible: boolean; onCancel: () => void; onConfirm: (values: any) => void; // 修改onConfirm的类型以接收表单值 datasetList: { id: number; name: string; description: string }[] | undefined; taskTypeOptions?: { value: string; label: string }[]; onDatasetCreate?: () => void; } const CreateTaskModal: React.FC = ({ visible, onCancel, onConfirm, datasetList, taskTypeOptions, onDatasetCreate }) => { const [form] = Form.useForm(); const [datasetName, setDatasetName] = React.useState(""); const [loading, setLoading] = React.useState(false); // 监听表单字段变化,自动生成数据集名称 useEffect(() => { const simulator = form.getFieldValue('simulator'); const taskType = form.getFieldValue('task_type'); const camera = form.getFieldValue('camera'); if (simulator && taskType && camera) { const uuid = generateShortUUID(); const generatedName = `${simulator}-${taskType}-${camera}-${uuid}`; setDatasetName(generatedName); } }, [form]); // 监听表单字段变化 const handleFormChange = () => { const taskType = form.getFieldValue('task_type'); const camera = form.getFieldValue('camera'); if (taskType && camera) { const uuid = generateShortUUID(); const generatedName = `${taskType}-${camera}-${uuid}`; setDatasetName(generatedName); } }; const simulationOptions = [ { value: "robotwin", label: "robotwin" }, ]; const cameraTypeOptions = [ { value: "D435", label: "D435" }, { value: "D515", label: "D515" }, ]; const handleOk = async () => { try { const values = await form.validateFields(); onConfirm(values); form.resetFields(); // 提交成功后重置表单 } catch (errorInfo) { console.log("Failed:", errorInfo); } }; const handleCreateDataset = async () => { setLoading(true); try { await datasetApi.createDataset({ name: datasetName, }); message.success("创建数据集成功"); setLoading(false); setDatasetName(""); onDatasetCreate?.(); } catch (error) { setLoading(false); message.error("创建数据集失败"); } }; return (
{ e.stopPropagation(); setDatasetName(e.target.value); }} value={datasetName} placeholder="请输入数据集名称" disabled={loading} /> )} > {datasetList?.map((item) => ( {item.name} ))}
); }; export default CreateTaskModal;