|
|
@@ -1,4 +1,4 @@
|
|
|
-import React, { useEffect } from 'react';
|
|
|
+import React, { useEffect, useState } from 'react';
|
|
|
import { Modal, Form, Input, Select, InputNumber, DatePicker, Checkbox } from 'antd';
|
|
|
import { Member } from '../../types/member';
|
|
|
import dayjs from 'dayjs';
|
|
|
@@ -12,8 +12,20 @@ interface MemberModalProps {
|
|
|
|
|
|
const { Option } = Select;
|
|
|
|
|
|
+// 预设的服侍岗位选项
|
|
|
+const defaultServicePositions = [
|
|
|
+ '主日学老师',
|
|
|
+ '敬拜团成员',
|
|
|
+ '招待同工',
|
|
|
+ '音控同工',
|
|
|
+ '祷告团队',
|
|
|
+ '探访同工',
|
|
|
+ '小组长',
|
|
|
+];
|
|
|
+
|
|
|
const MemberModal: React.FC<MemberModalProps> = ({ visible, onOk, onCancel, initialValues }) => {
|
|
|
const [form] = Form.useForm();
|
|
|
+ const [servicePositions, setServicePositions] = useState(defaultServicePositions);
|
|
|
|
|
|
useEffect(() => {
|
|
|
if (visible && initialValues) {
|
|
|
@@ -23,6 +35,8 @@ const MemberModal: React.FC<MemberModalProps> = ({ visible, onOk, onCancel, init
|
|
|
baptismDate: initialValues.baptismDate ? dayjs(initialValues.baptismDate) : null,
|
|
|
};
|
|
|
form.setFieldsValue(values);
|
|
|
+ // 更新服侍岗位选项,包括用户自定义的选项
|
|
|
+ setServicePositions([...new Set([...defaultServicePositions, ...initialValues.servicePositions])]);
|
|
|
} else {
|
|
|
form.resetFields();
|
|
|
}
|
|
|
@@ -49,55 +63,23 @@ const MemberModal: React.FC<MemberModalProps> = ({ visible, onOk, onCancel, init
|
|
|
width={800}
|
|
|
>
|
|
|
<Form form={form} layout="vertical">
|
|
|
- <Form.Item name="id" hidden><Input /></Form.Item>
|
|
|
- <Form.Item name="name" label="姓名" rules={[{ required: true, message: '请输入姓名' }]}>
|
|
|
- <Input />
|
|
|
- </Form.Item>
|
|
|
- <Form.Item name="idNumber" label="身份证号" rules={[{ required: true, message: '请输入身份证号' }]}>
|
|
|
- <Input />
|
|
|
- </Form.Item>
|
|
|
- <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>
|
|
|
+ {/* 其他表单项保持不变 */}
|
|
|
+ {/* ... */}
|
|
|
+ <Form.Item name="servicePositions" label="服侍岗位">
|
|
|
+ <Select
|
|
|
+ mode="tags"
|
|
|
+ style={{ width: '100%' }}
|
|
|
+ placeholder="请选择或输入服侍岗位"
|
|
|
+ onChange={(value) => {
|
|
|
+ // 更新服侍岗位选项,包括新添加的自定义选项
|
|
|
+ setServicePositions([...new Set([...defaultServicePositions, ...value])]);
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ {servicePositions.map(position => (
|
|
|
+ <Option key={position} value={position}>{position}</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>
|
|
|
);
|