Răsfoiți Sursa

AI: 修复更新会员信息功能

D8D AI 1 an în urmă
părinte
comite
8cc30bf640
2 a modificat fișierele cu 38 adăugiri și 54 ștergeri
  1. 13 12
      src/components/MemberForm.jsx
  2. 25 42
      src/components/MemberList.jsx

+ 13 - 12
src/components/MemberForm.jsx

@@ -1,4 +1,4 @@
-import React from 'react';
+import React, { useEffect } from 'react';
 import { Form, Input, Button, Select, DatePicker, InputNumber, Switch } from 'antd';
 import moment from 'moment';
 
@@ -7,32 +7,33 @@ const { Option } = Select;
 const MemberForm = ({ onSubmit, initialValues }) => {
   const [form] = Form.useForm();
 
-  const onFinish = (values) => {
-    const formattedValues = {
-      ...values,
-      birthDate: values.birthDate ? values.birthDate.format('YYYY-MM-DD') : null,
-      baptismDate: values.baptismDate ? values.baptismDate.format('YYYY-MM-DD') : null,
-    };
-    onSubmit(formattedValues);
-  };
-
-  React.useEffect(() => {
+  useEffect(() => {
     if (initialValues) {
       form.setFieldsValue({
         ...initialValues,
         birthDate: initialValues.birthDate ? moment(initialValues.birthDate) : null,
         baptismDate: initialValues.baptismDate ? moment(initialValues.baptismDate) : null,
       });
+    } else {
+      form.resetFields();
     }
   }, [initialValues, form]);
 
+  const onFinish = (values) => {
+    const formattedValues = {
+      ...values,
+      birthDate: values.birthDate ? values.birthDate.format('YYYY-MM-DD') : null,
+      baptismDate: values.baptismDate ? values.baptismDate.format('YYYY-MM-DD') : null,
+    };
+    onSubmit(formattedValues);
+  };
+
   return (
     <Form
       form={form}
       name="memberForm"
       onFinish={onFinish}
       layout="vertical"
-      initialValues={initialValues}
     >
       <Form.Item
         name="name"

+ 25 - 42
src/components/MemberList.jsx

@@ -3,13 +3,11 @@ import { Table, Button, message, Modal, Space } from 'antd';
 import { deviceApi } from '../api/deviceApi';
 import ExcelImportExport from './ExcelImportExport';
 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 [isModalVisible, setIsModalVisible] = useState(false);
   const [editingMember, setEditingMember] = useState(null);
 
   useEffect(() => {
@@ -20,7 +18,7 @@ const MemberList = () => {
     setLoading(true);
     try {
       const data = await deviceApi.getAllPersons();
-      console.log('获取到的会友列表数据:', data); // 调试日志
+      console.log('获取到的会友列表数据:', data);
       setMembers(data);
       message.success('会友列表获取成功');
     } catch (error) {
@@ -32,12 +30,13 @@ const MemberList = () => {
   };
 
   const handleAdd = () => {
-    setIsAddModalVisible(true);
+    setEditingMember(null);
+    setIsModalVisible(true);
   };
 
   const handleEdit = (record) => {
     setEditingMember(record);
-    setIsEditModalVisible(true);
+    setIsModalVisible(true);
   };
 
   const handleDelete = (id) => {
@@ -57,29 +56,22 @@ const MemberList = () => {
     });
   };
 
-  const handleMemberAdded = async (values) => {
+  const handleSubmit = async (values) => {
     try {
-      const newMember = await deviceApi.addPerson(values);
-      setMembers([...members, newMember]);
-      setIsAddModalVisible(false);
-      message.success('会友添加成功');
+      if (editingMember) {
+        console.log('更新会员信息:', values);
+        await deviceApi.updatePerson(editingMember.personId, values);
+        message.success('会友信息更新成功');
+      } else {
+        console.log('添加新会员:', values);
+        await deviceApi.addPerson(values);
+        message.success('会友添加成功');
+      }
+      setIsModalVisible(false);
+      fetchMembers();
     } catch (error) {
-      console.error('添加会友失败', error);
-      message.error(`添加会友失败: ${error.message}`);
-    }
-  };
-
-  const handleMemberEdited = async (id, values) => {
-    try {
-      const updatedMember = await deviceApi.updatePerson(id, values);
-      setMembers(members.map(member => 
-        member.personId === id ? updatedMember : member
-      ));
-      setIsEditModalVisible(false);
-      message.success('会友信息更新成功');
-    } catch (error) {
-      console.error('更新会友失败', error);
-      message.error(`更新会友失败: ${error.message}`);
+      console.error('操作失败', error);
+      message.error(`操作失败: ${error.message}`);
     }
   };
 
@@ -127,24 +119,15 @@ const MemberList = () => {
         loading={loading}
       />
       <Modal
-        title="添加会友"
-        visible={isAddModalVisible}
-        onCancel={() => setIsAddModalVisible(false)}
-        footer={null}
-        width={600}
-      >
-        <MemberForm onSubmit={handleMemberAdded} />
-      </Modal>
-      <Modal
-        title="编辑会友"
-        visible={isEditModalVisible}
-        onCancel={() => setIsEditModalVisible(false)}
+        title={editingMember ? "编辑会友" : "添加会友"}
+        visible={isModalVisible}
+        onCancel={() => setIsModalVisible(false)}
         footer={null}
         width={600}
       >
-        <MemberEditForm 
-          member={editingMember} 
-          onSubmit={(values) => handleMemberEdited(editingMember.personId, values)}
+        <MemberForm 
+          initialValues={editingMember} 
+          onSubmit={handleSubmit}
         />
       </Modal>
     </div>