Browse Source

调试添加会员功能

Message ID: c9HyknM
zyh 1 year ago
parent
commit
429fbf4913
3 changed files with 25 additions and 141 deletions
  1. 4 30
      src/api/deviceApi.js
  2. 13 65
      src/components/MemberForm.jsx
  3. 8 46
      src/components/MemberList.jsx

+ 4 - 30
src/api/deviceApi.js

@@ -3,29 +3,13 @@ import axios from 'axios';
 const API_BASE_URL = 'http://your-device-api-url.com'; // 替换为实际的设备 API URL
 
 export const deviceApi = {
-  getDeviceInfo: async () => {
-    try {
-      const response = await axios.get(`${API_BASE_URL}/GetDeviceInfo`);
-      return response.data;
-    } catch (error) {
-      console.error('获取设备信息失败:', error);
-      throw error;
-    }
-  },
-
-  getAllPersons: async () => {
-    try {
-      const response = await axios.get(`${API_BASE_URL}/GetAllPersons`);
-      return response.data;
-    } catch (error) {
-      console.error('获取所有会友信息失败:', error);
-      throw error;
-    }
-  },
+  // 其他方法保持不变...
 
   addPerson: async (personInfo) => {
     try {
+      console.log('Sending request to add person:', personInfo); // 调试日志
       const response = await axios.post(`${API_BASE_URL}/AddPerson`, personInfo);
+      console.log('Response from add person:', response.data); // 调试日志
       return response.data;
     } catch (error) {
       console.error('添加会友失败:', error);
@@ -33,15 +17,5 @@ export const deviceApi = {
     }
   },
 
-  getAttendanceRecords: async (startTime, endTime) => {
-    try {
-      const response = await axios.get(`${API_BASE_URL}/GetAttendanceRecords`, {
-        params: { startTime, endTime }
-      });
-      return response.data;
-    } catch (error) {
-      console.error('获取考勤记录失败:', error);
-      throw error;
-    }
-  }
+  // 其他方法保持不变...
 };

+ 13 - 65
src/components/MemberForm.jsx

@@ -4,7 +4,7 @@ import { deviceApi } from '../api/deviceApi';
 
 const { Option } = Select;
 
-const MemberForm = () => {
+const MemberForm = ({ onMemberAdded }) => {
   const [form] = Form.useForm();
 
   const onFinish = async (values) => {
@@ -17,9 +17,18 @@ const MemberForm = () => {
         values.baptismDate = values.baptismDate.format('YYYY-MM-DD');
       }
 
-      await deviceApi.addPerson(values);
+      console.log('Submitting values:', values); // 调试日志
+
+      const response = await deviceApi.addPerson(values);
+      console.log('API response:', response); // 调试日志
+
       message.success('会友添加成功');
       form.resetFields();
+      
+      // 调用父组件的回调函数来更新列表
+      if (onMemberAdded) {
+        onMemberAdded(response);
+      }
     } catch (error) {
       console.error('添加会友失败', error);
       message.error('添加会友失败,请重试');
@@ -35,69 +44,8 @@ const MemberForm = () => {
         onFinish={onFinish}
         layout="vertical"
       >
-        <Form.Item
-          name="name"
-          label="姓名"
-          rules={[{ required: true, message: '请输入姓名' }]}
-        >
-          <Input />
-        </Form.Item>
-        <Form.Item
-          name="gender"
-          label="性别"
-          rules={[{ required: true, message: '请选择性别' }]}
-        >
-          <Select>
-            <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>
-          </Select>
-        </Form.Item>
-        <Form.Item
-          name="isBaptized"
-          label="是否受洗"
-          valuePropName="checked"
-        >
-          <Switch />
-        </Form.Item>
-        <Form.Item
-          name="baptismDate"
-          label="受洗日期"
-        >
-          <DatePicker />
-        </Form.Item>
-        <Form.Item
-          name="contact"
-          label="联系方式"
-          rules={[{ required: true, message: '请输入联系方式' }]}
-        >
-          <Input />
-        </Form.Item>
+        {/* 表单字段保持不变 */}
+        {/* ... */}
         <Form.Item>
           <Button type="primary" htmlType="submit">
             添加

+ 8 - 46
src/components/MemberList.jsx

@@ -2,6 +2,7 @@ import React, { useState, useEffect } from 'react';
 import { Table, Button, message } from 'antd';
 import { deviceApi } from '../api/deviceApi';
 import ExcelImportExport from './ExcelImportExport';
+import MemberForm from './MemberForm';
 
 const MemberList = () => {
   const [members, setMembers] = useState([]);
@@ -29,59 +30,20 @@ const MemberList = () => {
     message.success('数据导入成功');
   };
 
+  const handleMemberAdded = (newMember) => {
+    setMembers([...members, newMember]);
+  };
+
   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',
-    },
+    // 列定义保持不变
+    // ...
   ];
 
   return (
     <div>
       <h2>会友列表</h2>
       <ExcelImportExport members={members} onImport={handleImport} />
+      <MemberForm onMemberAdded={handleMemberAdded} />
       <Table
         columns={columns}
         dataSource={members}