blob: e7495b5bd46b48a395b3edce42897d198185f00e [file] [log] [blame]
Krishya75e43c02025-04-05 21:16:30 +08001import React, { useState } from 'react';
2import './Auth.css';
3import image from './logo.svg'; // 引入图片
4const Login = ({ onRegisterClick }) => {
5 const [formData, setFormData] = useState({
6 username: '',
7 password: ''
8 });
9
10 const handleChange = (e) => {
11 const { name, value } = e.target;
12 setFormData(prev => ({ ...prev, [name]: value }));
13 };
14
15 const handleSubmit = async (e) => {
16 e.preventDefault();
17 try {
18 const response = await fetch('http://localhost:8080/user/login', {
19 method: 'POST',
20 headers: {
21 'Content-Type': 'application/json',
22 },
23 body: JSON.stringify(formData),
24 });
25
26 const result = await response.json();
27 if (response.ok && result.code === "0") {
28 console.log('登录成功:', result);
29 // 处理成功逻辑
30 } else {
31 console.error('登录失败:', result);
32 // 处理失败逻辑
33 }
34 } catch (error) {
35 console.error('请求错误:', error);
36 // 处理请求错误
37 }
38 };
39
40 return (
41 <div className="auth-container">
42 <img
43 src={image}
44 alt="描述"
45 style={{ width: '30%', height: 'auto'}}
46 />
47 <div className="auth-form-section">
48 {/* <h3>欢迎来到EchoTorent !</h3> */}
49 <h3>用户登录</h3>
50 <form onSubmit={handleSubmit}>
51 <div className="form-group">
52 <label>用户名</label>
53 <input
54 type="text"
55 name="username"
56 placeholder="请输入用户名"
57 value={formData.username}
58 onChange={handleChange}
59 className="form-input"
60 />
61 </div>
62 <div className="form-group">
63 <label>密码</label>
64 <input
65 type="password"
66 name="password"
67 placeholder="请输入密码"
68 value={formData.password}
69 onChange={handleChange}
70 className="form-input"
71 />
72 <button
73 type="button"
74 className="link-button forgot-password"
75 onClick={() => console.log('跳转到忘记密码页面')}
76 >
77 忘记密码?
78 </button>
79 </div>
80 <button type="submit" className="auth-button">
81 登录
82 </button>
83 <p className="register-link">
84 没有账号?
85 <button onClick={onRegisterClick} className="link-button">
86 点击注册
87 </button>
88 </p>
89 </form>
90 </div>
91 </div>
92 );
93};
94
95export default Login;