import React, {useEffect} from 'react'; import {Modal, Form, Input, message} from 'antd'; import type {WorkflowDefinition} from '../types'; import {saveDefinition, updateDefinition} from '../service'; interface EditModalProps { visible: boolean; onClose: () => void; onSuccess?: () => void; record?: WorkflowDefinition; } const EditModal: React.FC = ({visible, onClose, onSuccess, record}) => { const [form] = Form.useForm(); const isEdit = !!record; useEffect(() => { if (visible && record) { form.setFieldsValue(record); } }, [visible, record]); const handleOk = async () => { try { const values = await form.validateFields(); if (isEdit) { await updateDefinition(record.id, { ...record, ...values, }); } else { await saveDefinition({ ...values, flowVersion: 1, status: 'DRAFT' } as WorkflowDefinition); } message.success(isEdit ? '更新成功' : '保存成功'); onSuccess?.(); onClose(); form.resetFields(); } catch (error) { if (error instanceof Error) { message.error(error.message); } } }; return ( { onClose(); form.resetFields(); }} destroyOnClose >
); }; export default EditModal;