import React, { useEffect, useState } from 'react'; import { Form, Input, Button, Select, DatePicker, InputNumber, Switch, Upload, message } from 'antd'; import { UploadOutlined } from '@ant-design/icons'; import moment from 'moment'; const { Option } = Select; const MemberForm = ({ onSubmit, initialValues }) => { const [form] = Form.useForm(); const [servicePositions, setServicePositions] = useState([ '主日学老师', '敬拜团成员', '接待员', '财务', '音控', '祷告组长' ]); useEffect(() => { if (initialValues) { form.setFieldsValue({ ...initialValues, birthDate: initialValues.birthDate ? moment(initialValues.birthDate) : null, baptismDate: initialValues.baptismDate ? moment(initialValues.baptismDate) : null, }); } else { form.resetFields(); } }, [initialValues, form]); const onFinish = (values) => { const formattedValues = { ...values, birthDate: values.birthDate ? values.birthDate.format('YYYY-MM-DD') : null, baptismDate: values.baptismDate ? values.baptismDate.format('YYYY-MM-DD') : null, photo: values.photo && values.photo[0] ? values.photo[0].originFileObj : null, }; onSubmit(formattedValues); }; const normFile = (e) => { if (Array.isArray(e)) { return e; } return e && e.fileList; }; const beforeUpload = (file) => { const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png'; if (!isJpgOrPng) { message.error('只能上传 JPG/PNG 格式的图片!'); } const isLt2M = file.size / 1024 / 1024 < 2; if (!isLt2M) { message.error('图片大小不能超过 2MB!'); } return isJpgOrPng && isLt2M; }; const handleServicePositionChange = (value) => { if (value && !servicePositions.includes(value)) { setServicePositions([...servicePositions, value]); } }; return (