// file: SubTimeLineItemModal.tsx import React, { useEffect } from 'react'; import { Form, Modal, Input, DatePicker, Upload, Button } from 'antd'; import { UploadOutlined } from '@ant-design/icons'; import moment from 'moment'; interface ModalProps { visible: boolean; onCancel: () => void; onOk: (values: any) => void; initialValues?: any; } const SubTimeLineItemModal: React.FC = ({ visible, onCancel, onOk, initialValues }) => { const [form] = Form.useForm(); useEffect(() => { if (initialValues) { form.setFieldsValue({ title: initialValues.title, date: initialValues.date ? moment(initialValues.date) : undefined, location: initialValues.location, description: initialValues.description, cover: initialValues.cover, }); } }, [initialValues]); const handleOk = async () => { try { const values = await form.validateFields(); const newItem = { ...values, id: initialValues?.id || Date.now(), cover: form.getFieldValue('cover') || (initialValues && initialValues.cover), date: values.date.format('YYYY-MM-DD'), }; onOk(newItem); } catch (error) { console.error('表单验证失败:', error); } }; const uploadProps = { beforeUpload: () => false, onChange: ({ fileList }) => {}, listType: 'picture' as const, maxCount: 1, }; return ( { form.resetFields(); onCancel(); }} footer={[ , , ]} >
); }; export default SubTimeLineItemModal;