|
|
@@ -36,55 +36,61 @@ const MemberList = () => {
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- // ... 其他方法保持不变
|
|
|
+ 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',
|
|
|
+ { 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',
|
|
|
+ render: (isBaptized) => isBaptized ? '是' : '否'
|
|
|
},
|
|
|
+ { title: '受洗日期', dataIndex: 'baptismDate', key: 'baptismDate' },
|
|
|
+ { title: '联系方式', dataIndex: 'contact', key: 'contact' },
|
|
|
{
|
|
|
title: '操作',
|
|
|
key: 'action',
|
|
|
@@ -103,7 +109,7 @@ const MemberList = () => {
|
|
|
<Button onClick={fetchMembers} type="primary" style={{ marginBottom: 16, marginRight: 16 }}>
|
|
|
刷新列表
|
|
|
</Button>
|
|
|
- <Button onClick={() => setIsAddModalVisible(true)} type="primary" style={{ marginBottom: 16 }}>
|
|
|
+ <Button onClick={handleAdd} type="primary" style={{ marginBottom: 16 }}>
|
|
|
添加会友
|
|
|
</Button>
|
|
|
<ExcelImportExport members={members} onImport={fetchMembers} />
|