|
|
@@ -1,11 +1,28 @@
|
|
|
-import { useState } from 'react';
|
|
|
+import { useState, useEffect } from 'react';
|
|
|
import { Member } from '../types/member';
|
|
|
import { message } from 'antd';
|
|
|
-import { addMember, updateMember, deleteMember } from '../services/memberService';
|
|
|
+import { fetchMembers, addMember, updateMember, deleteMember } from '../services/memberService';
|
|
|
|
|
|
export const useMemberManagement = () => {
|
|
|
const [members, setMembers] = useState<Member[]>([]);
|
|
|
const [isModalVisible, setIsModalVisible] = useState(false);
|
|
|
+ const [loading, setLoading] = useState(false);
|
|
|
+
|
|
|
+ useEffect(() => {
|
|
|
+ loadMembers();
|
|
|
+ }, []);
|
|
|
+
|
|
|
+ const loadMembers = async () => {
|
|
|
+ setLoading(true);
|
|
|
+ try {
|
|
|
+ const fetchedMembers = await fetchMembers();
|
|
|
+ setMembers(fetchedMembers);
|
|
|
+ } catch (error) {
|
|
|
+ message.error('加载会友列表失败');
|
|
|
+ } finally {
|
|
|
+ setLoading(false);
|
|
|
+ }
|
|
|
+ };
|
|
|
|
|
|
const showModal = () => {
|
|
|
setIsModalVisible(true);
|
|
|
@@ -19,13 +36,12 @@ export const useMemberManagement = () => {
|
|
|
setIsModalVisible(false);
|
|
|
};
|
|
|
|
|
|
- const handleAddMember = async (member: Member) => {
|
|
|
+ const handleAddMember = async (member: Omit<Member, 'id'>) => {
|
|
|
try {
|
|
|
const newMember = await addMember(member);
|
|
|
setMembers([...members, newMember]);
|
|
|
- message.success('会友添加成功');
|
|
|
} catch (error) {
|
|
|
- message.error('添加会友失败');
|
|
|
+ throw error;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
@@ -54,6 +70,7 @@ export const useMemberManagement = () => {
|
|
|
return {
|
|
|
members,
|
|
|
isModalVisible,
|
|
|
+ loading,
|
|
|
showModal,
|
|
|
handleOk,
|
|
|
handleCancel,
|