App.jsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import React, { useState } from 'react';
  2. import MemberList from './components/MemberList';
  3. import MemberForm from './components/MemberForm';
  4. import ExcelImportExport from './components/ExcelImportExport';
  5. function App() {
  6. const [members, setMembers] = useState([]);
  7. const [editingMember, setEditingMember] = useState(null);
  8. const addMember = (member) => {
  9. setMembers([...members, { ...member, id: Date.now() }]);
  10. };
  11. const updateMember = (updatedMember) => {
  12. setMembers(members.map(m => m.id === updatedMember.id ? updatedMember : m));
  13. setEditingMember(null);
  14. };
  15. const deleteMember = (id) => {
  16. setMembers(members.filter(m => m.id !== id));
  17. };
  18. const handleImport = (importedMembers) => {
  19. setMembers([...members, ...importedMembers.map(m => ({ ...m, id: Date.now() + Math.random() }))]);
  20. };
  21. return (
  22. <div className="App">
  23. <h1>会友信息管理系统</h1>
  24. <ExcelImportExport members={members} onImport={handleImport} />
  25. <MemberForm onSubmit={editingMember ? updateMember : addMember} initialData={editingMember} />
  26. <MemberList
  27. members={members}
  28. onEdit={setEditingMember}
  29. onDelete={deleteMember}
  30. />
  31. </div>
  32. );
  33. }
  34. export default App;