import {useEffect, useState} from "react"; import {Button, Steps, Form, message} from "antd"; import {Link, useNavigate, useParams} from "react-router"; import { ArrowLeft } from "lucide-react"; import { createCleaningTemplateUsingPost, queryCleaningTemplateByIdUsingGet, updateCleaningTemplateByIdUsingPut } from "../cleansing.api"; import CleansingTemplateStepOne from "./components/CreateTemplateStepOne"; import { useCreateStepTwo } from "./hooks/useCreateStepTwo"; export default function CleansingTemplateCreate() { const { id = "" } = useParams() const navigate = useNavigate(); const [form] = Form.useForm(); const [templateConfig, setTemplateConfig] = useState({ name: "", description: "", }); const fetchTemplateDetail = async () => { if (!id) return; try { const { data } = await queryCleaningTemplateByIdUsingGet(id); setTemplateConfig(data); } catch (error) { message.error("获取任务详情失败"); navigate("/data/cleansing"); } }; useEffect(() => { fetchTemplateDetail() }, [id]); const handleSave = async () => { const template = { ...templateConfig, instance: selectedOperators.map((item) => ({ id: item.id, overrides: { ...item.defaultParams, ...item.overrides, }, categories: item.categories, inputs: item.inputs, outputs: item.outputs, })), }; !id && await createCleaningTemplateUsingPost(template) && message.success("模板创建成功"); id && await updateCleaningTemplateByIdUsingPut(id, template) && message.success("模板更新成功"); navigate("/data/cleansing?view=template"); }; const { renderStepTwo, selectedOperators, currentStep, handlePrev, handleNext, } = useCreateStepTwo(); const canProceed = () => { const values = form.getFieldsValue(); switch (currentStep) { case 1: return values.name; case 2: return selectedOperators.length > 0; default: return false; } }; const renderStepContent = () => { switch (currentStep) { case 1: return ( ); case 2: return renderStepTwo; default: return null; } }; return (
{/* Header */}

{id ? '更新清洗模板' : '创建清洗模板'}

{renderStepContent()}
{currentStep > 1 && } {currentStep === 2 ? ( ) : ( )}
); }