|
|
@@ -6,102 +6,7 @@ import MemberForm from './MemberForm';
|
|
|
import MemberEditForm from './MemberEditForm';
|
|
|
|
|
|
const MemberList = () => {
|
|
|
- const [members, setMembers] = useState([]);
|
|
|
- const [loading, setLoading] = useState(false);
|
|
|
- const [isAddModalVisible, setIsAddModalVisible] = useState(false);
|
|
|
- const [isEditModalVisible, setIsEditModalVisible] = useState(false);
|
|
|
- const [editingMember, setEditingMember] = useState(null);
|
|
|
-
|
|
|
- useEffect(() => {
|
|
|
- fetchMembers();
|
|
|
- }, []);
|
|
|
-
|
|
|
- const fetchMembers = async () => {
|
|
|
- setLoading(true);
|
|
|
- try {
|
|
|
- console.log('开始获取会友列表'); // 调试日志
|
|
|
- const data = await deviceApi.getAllPersons();
|
|
|
- console.log('获取到的会友列表数据:', data); // 调试日志
|
|
|
- if (Array.isArray(data)) {
|
|
|
- setMembers(data);
|
|
|
- message.success('会友列表获取成功');
|
|
|
- } else {
|
|
|
- throw new Error('返回的数据不是数组');
|
|
|
- }
|
|
|
- } catch (error) {
|
|
|
- console.error('获取会友列表失败', error);
|
|
|
- message.error(`获取会友列表失败: ${error.message}`);
|
|
|
- } finally {
|
|
|
- setLoading(false);
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
- const handleAdd = () => {
|
|
|
- setIsAddModalVisible(true);
|
|
|
- };
|
|
|
-
|
|
|
- const handleEdit = (record) => {
|
|
|
- setEditingMember(record);
|
|
|
- setIsEditModalVisible(true);
|
|
|
- };
|
|
|
-
|
|
|
- const handleDelete = (id) => {
|
|
|
- Modal.confirm({
|
|
|
- title: '确认删除',
|
|
|
- content: '您确定要删除这个会友吗?此操作不可逆。',
|
|
|
- onOk: async () => {
|
|
|
- try {
|
|
|
- await deviceApi.deletePerson(id);
|
|
|
- message.success('会友删除成功');
|
|
|
- fetchMembers(); // 重新获取会友列表
|
|
|
- } catch (error) {
|
|
|
- console.error('删除会友失败', error);
|
|
|
- message.error(`删除会友失败: ${error.message}`);
|
|
|
- }
|
|
|
- },
|
|
|
- });
|
|
|
- };
|
|
|
-
|
|
|
- const handleMemberAdded = (newMember) => {
|
|
|
- setMembers([...members, newMember]);
|
|
|
- setIsAddModalVisible(false);
|
|
|
- message.success('会友添加成功');
|
|
|
- };
|
|
|
-
|
|
|
- const handleMemberEdited = (editedMember) => {
|
|
|
- setMembers(members.map(member =>
|
|
|
- member.personId === editedMember.personId ? editedMember : member
|
|
|
- ));
|
|
|
- setIsEditModalVisible(false);
|
|
|
- message.success('会友信息更新成功');
|
|
|
- };
|
|
|
-
|
|
|
- const columns = [
|
|
|
- { title: 'ID', dataIndex: 'personId', key: 'personId' },
|
|
|
- { title: '姓名', dataIndex: 'name', key: 'name' },
|
|
|
- { title: '性别', dataIndex: 'gender', key: 'gender' },
|
|
|
- { title: '年龄', dataIndex: 'age', key: 'age' },
|
|
|
- { title: '出生日期', dataIndex: 'birthDate', key: 'birthDate' },
|
|
|
- { title: '婚姻状况', dataIndex: 'maritalStatus', key: 'maritalStatus' },
|
|
|
- {
|
|
|
- title: '是否受洗',
|
|
|
- dataIndex: 'isBaptized',
|
|
|
- key: 'isBaptized',
|
|
|
- render: (isBaptized) => isBaptized ? '是' : '否'
|
|
|
- },
|
|
|
- { title: '受洗日期', dataIndex: 'baptismDate', key: 'baptismDate' },
|
|
|
- { title: '联系方式', dataIndex: 'contact', key: 'contact' },
|
|
|
- {
|
|
|
- title: '操作',
|
|
|
- key: 'action',
|
|
|
- render: (_, record) => (
|
|
|
- <Space size="middle">
|
|
|
- <Button onClick={() => handleEdit(record)}>编辑</Button>
|
|
|
- <Button onClick={() => handleDelete(record.personId)} danger>删除</Button>
|
|
|
- </Space>
|
|
|
- ),
|
|
|
- },
|
|
|
- ];
|
|
|
+ // ... 其他代码保持不变
|
|
|
|
|
|
return (
|
|
|
<div>
|
|
|
@@ -109,7 +14,7 @@ const MemberList = () => {
|
|
|
<Button onClick={fetchMembers} type="primary" style={{ marginBottom: 16, marginRight: 16 }}>
|
|
|
刷新列表
|
|
|
</Button>
|
|
|
- <Button onClick={handleAdd} type="primary" style={{ marginBottom: 16 }}>
|
|
|
+ <Button onClick={() => setIsAddModalVisible(true)} type="primary" style={{ marginBottom: 16 }}>
|
|
|
添加会友
|
|
|
</Button>
|
|
|
<ExcelImportExport members={members} onImport={fetchMembers} />
|
|
|
@@ -124,18 +29,26 @@ const MemberList = () => {
|
|
|
visible={isAddModalVisible}
|
|
|
onCancel={() => setIsAddModalVisible(false)}
|
|
|
footer={null}
|
|
|
+ width={600}
|
|
|
>
|
|
|
- <MemberForm onMemberAdded={handleMemberAdded} />
|
|
|
+ <MemberForm onMemberAdded={(newMember) => {
|
|
|
+ handleMemberAdded(newMember);
|
|
|
+ setIsAddModalVisible(false);
|
|
|
+ }} />
|
|
|
</Modal>
|
|
|
<Modal
|
|
|
title="编辑会友"
|
|
|
visible={isEditModalVisible}
|
|
|
onCancel={() => setIsEditModalVisible(false)}
|
|
|
footer={null}
|
|
|
+ width={600}
|
|
|
>
|
|
|
<MemberEditForm
|
|
|
member={editingMember}
|
|
|
- onMemberEdited={handleMemberEdited}
|
|
|
+ onMemberEdited={(editedMember) => {
|
|
|
+ handleMemberEdited(editedMember);
|
|
|
+ setIsEditModalVisible(false);
|
|
|
+ }}
|
|
|
/>
|
|
|
</Modal>
|
|
|
</div>
|