|
|
@@ -0,0 +1,62 @@
|
|
|
+import React, { useState } from 'react';
|
|
|
+import { deviceApi } from '../api/deviceApi';
|
|
|
+
|
|
|
+const MemberForm = () => {
|
|
|
+ const [formData, setFormData] = useState({
|
|
|
+ name: '',
|
|
|
+ contact: '',
|
|
|
+ });
|
|
|
+
|
|
|
+ const handleChange = (e) => {
|
|
|
+ const { name, value } = e.target;
|
|
|
+ setFormData(prevState => ({
|
|
|
+ ...prevState,
|
|
|
+ [name]: value
|
|
|
+ }));
|
|
|
+ };
|
|
|
+
|
|
|
+ const handleSubmit = async (e) => {
|
|
|
+ e.preventDefault();
|
|
|
+ try {
|
|
|
+ await deviceApi.addPerson(formData);
|
|
|
+ alert('会友添加成功');
|
|
|
+ setFormData({ name: '', contact: '' });
|
|
|
+ } catch (error) {
|
|
|
+ console.error('添加会友失败', error);
|
|
|
+ alert('添加会友失败,请重试');
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+ return (
|
|
|
+ <div>
|
|
|
+ <h2>添加会友</h2>
|
|
|
+ <form onSubmit={handleSubmit}>
|
|
|
+ <div>
|
|
|
+ <label htmlFor="name">姓名:</label>
|
|
|
+ <input
|
|
|
+ type="text"
|
|
|
+ id="name"
|
|
|
+ name="name"
|
|
|
+ value={formData.name}
|
|
|
+ onChange={handleChange}
|
|
|
+ required
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <div>
|
|
|
+ <label htmlFor="contact">联系方式:</label>
|
|
|
+ <input
|
|
|
+ type="text"
|
|
|
+ id="contact"
|
|
|
+ name="contact"
|
|
|
+ value={formData.contact}
|
|
|
+ onChange={handleChange}
|
|
|
+ required
|
|
|
+ />
|
|
|
+ </div>
|
|
|
+ <button type="submit">添加</button>
|
|
|
+ </form>
|
|
|
+ </div>
|
|
|
+ );
|
|
|
+};
|
|
|
+
|
|
|
+export default MemberForm;
|