|
|
@@ -1,6 +1,7 @@
|
|
|
import React, { useEffect } from 'react';
|
|
|
-import { Modal, Form, Input } from 'antd';
|
|
|
+import { Modal, Form, Input, Select, InputNumber, DatePicker, Checkbox } from 'antd';
|
|
|
import { Member } from '../../types/member';
|
|
|
+import moment from 'moment';
|
|
|
|
|
|
interface MemberModalProps {
|
|
|
visible: boolean;
|
|
|
@@ -9,12 +10,19 @@ interface MemberModalProps {
|
|
|
initialValues: Member | null;
|
|
|
}
|
|
|
|
|
|
+const { Option } = Select;
|
|
|
+
|
|
|
const MemberModal: React.FC<MemberModalProps> = ({ visible, onOk, onCancel, initialValues }) => {
|
|
|
const [form] = Form.useForm();
|
|
|
|
|
|
useEffect(() => {
|
|
|
if (visible && initialValues) {
|
|
|
- form.setFieldsValue(initialValues);
|
|
|
+ const values = {
|
|
|
+ ...initialValues,
|
|
|
+ birthDate: initialValues.birthDate ? moment(initialValues.birthDate) : null,
|
|
|
+ baptismDate: initialValues.baptismDate ? moment(initialValues.baptismDate) : null,
|
|
|
+ };
|
|
|
+ form.setFieldsValue(values);
|
|
|
} else {
|
|
|
form.resetFields();
|
|
|
}
|
|
|
@@ -22,7 +30,12 @@ const MemberModal: React.FC<MemberModalProps> = ({ visible, onOk, onCancel, init
|
|
|
|
|
|
const handleOk = () => {
|
|
|
form.validateFields().then(values => {
|
|
|
- onOk(values as Member);
|
|
|
+ const member = {
|
|
|
+ ...values,
|
|
|
+ birthDate: values.birthDate ? values.birthDate.format('YYYY-MM-DD') : null,
|
|
|
+ baptismDate: values.baptismDate ? values.baptismDate.format('YYYY-MM-DD') : null,
|
|
|
+ };
|
|
|
+ onOk(member as Member);
|
|
|
form.resetFields();
|
|
|
});
|
|
|
};
|
|
|
@@ -33,11 +46,10 @@ const MemberModal: React.FC<MemberModalProps> = ({ visible, onOk, onCancel, init
|
|
|
visible={visible}
|
|
|
onOk={handleOk}
|
|
|
onCancel={onCancel}
|
|
|
+ width={800}
|
|
|
>
|
|
|
<Form form={form} layout="vertical">
|
|
|
- <Form.Item name="id" hidden>
|
|
|
- <Input />
|
|
|
- </Form.Item>
|
|
|
+ <Form.Item name="id" hidden><Input /></Form.Item>
|
|
|
<Form.Item name="name" label="姓名" rules={[{ required: true, message: '请输入姓名' }]}>
|
|
|
<Input />
|
|
|
</Form.Item>
|
|
|
@@ -47,6 +59,45 @@ const MemberModal: React.FC<MemberModalProps> = ({ visible, onOk, onCancel, init
|
|
|
<Form.Item name="phone" label="手机号" rules={[{ required: true, message: '请输入手机号' }]}>
|
|
|
<Input />
|
|
|
</Form.Item>
|
|
|
+ <Form.Item name="gender" label="性别" rules={[{ required: true, message: '请选择性别' }]}>
|
|
|
+ <Select>
|
|
|
+ <Option value="男">男</Option>
|
|
|
+ <Option value="女">女</Option>
|
|
|
+ <Option value="其他">其他</Option>
|
|
|
+ </Select>
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item name="age" label="年龄" rules={[{ required: true, message: '请输入年龄' }]}>
|
|
|
+ <InputNumber min={0} max={150} />
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item name="birthDate" label="出生日期" rules={[{ required: true, message: '请选择出生日期' }]}>
|
|
|
+ <DatePicker />
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item name="maritalStatus" label="婚姻状态" rules={[{ required: true, message: '请选择婚姻状态' }]}>
|
|
|
+ <Select>
|
|
|
+ <Option value="未婚">未婚</Option>
|
|
|
+ <Option value="已婚">已婚</Option>
|
|
|
+ <Option value="离异">离异</Option>
|
|
|
+ <Option value="丧偶">丧偶</Option>
|
|
|
+ </Select>
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item name="address" label="联系地址" rules={[{ required: true, message: '请输入联系地址' }]}>
|
|
|
+ <Input.TextArea />
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item name="workplace" label="工作单位">
|
|
|
+ <Input />
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item name="groupLeader" label="小组组长">
|
|
|
+ <Input />
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item name="isBaptized" label="是否受洗" valuePropName="checked">
|
|
|
+ <Checkbox />
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item name="baptismDate" label="受洗日期">
|
|
|
+ <DatePicker />
|
|
|
+ </Form.Item>
|
|
|
+ <Form.Item name="servicePosition" label="服侍岗位">
|
|
|
+ <Input />
|
|
|
+ </Form.Item>
|
|
|
</Form>
|
|
|
</Modal>
|
|
|
);
|