MemberList.jsx 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import React, { useState, useEffect, useCallback, useRef } from 'react';
  2. import { Table, Button, message, Modal, Space, Input, Image } from 'antd';
  3. import { PlusOutlined, SearchOutlined, DownloadOutlined } from '@ant-design/icons';
  4. import Highlighter from 'react-highlight-words';
  5. import { deviceApi, testConnection } from '../api/deviceApi';
  6. import ExcelImportExport from './ExcelImportExport';
  7. import MemberForm from './MemberForm';
  8. const MemberList = () => {
  9. // ... 保持其他状态和函数不变
  10. useEffect(() => {
  11. const checkConnection = async () => {
  12. const isConnected = await testConnection();
  13. if (!isConnected) {
  14. message.error('无法连接到服务器,请检查网络连接和服务器状态');
  15. }
  16. };
  17. checkConnection();
  18. fetchMembers();
  19. }, [fetchMembers]);
  20. const handleSubmit = async (values) => {
  21. try {
  22. if (editingMember) {
  23. await deviceApi.updatePerson(editingMember.personId, values);
  24. message.success('会友信息更新成功');
  25. } else {
  26. await deviceApi.createPerson(values);
  27. message.success('会友添加成功');
  28. }
  29. setIsModalVisible(false);
  30. fetchMembers();
  31. } catch (error) {
  32. console.error('保存会友信息失败', error);
  33. message.error(`保存会友信息失败:${error.message}`);
  34. }
  35. };
  36. // ... 保持其他代码不变
  37. return (
  38. // ... 保持返回的 JSX 不变
  39. );
  40. };
  41. export default MemberList;