zhouxiantao
8 days ago 03193b2a27a2c23e10f3a2f298de9c1142116780
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
/**
 * @author 韩天尊
 * @time 2024-01-15
 * @version 1.0.0
 * @description 志愿者注册页面组件
 */
import React, { useState } from 'react';
import { useNavigate } from 'react-router-dom';
import { volunteerAPI } from '../services/api';
 
const VolunteerRegisterPage: React.FC = () => {
    const navigate = useNavigate();
    const [formData, setFormData] = useState({
        name: '',
        idCard: '',
        phone: ''
    });
    const [loading, setLoading] = useState(false);
 
    const handleInputChange = (field: string, value: string) => {
        setFormData(prev => ({
            ...prev,
            [field]: value
        }));
    };
 
    const handleGoBack = () => {
        // 如果未登录,返回首页;如果已登录,返回个人中心
        const token = localStorage.getItem('token');
        if (token) {
            navigate('/profile');
        } else {
            navigate('/');
        }
    };
 
    const handleSubmit = async () => {
        // 简单的表单验证
        if (!formData.name.trim()) {
            alert('请输入真实姓名');
            return;
        }
        if (!formData.idCard.trim()) {
            alert('请输入身份证号');
            return;
        }
        if (!formData.phone.trim()) {
            alert('请输入手机号码');
            return;
        }
 
        setLoading(true);
        try {
            await volunteerAPI.register(formData);
            alert('注册提交成功,请等待审核结果');
            // 如果未登录,跳转到首页;如果已登录,跳转到个人中心
            const token = localStorage.getItem('token');
            if (token) {
                navigate('/profile');
            } else {
                navigate('/');
            }
        } catch (error) {
            console.error('注册失败:', error);
            alert('注册失败,请重试');
        } finally {
            setLoading(false);
        }
    };
 
    return (
        <div className="page">
            {/* 页面头部 */}
            <div className="page-header">
                <button className="back-btn" onClick={handleGoBack}>
                    <i className="fas fa-arrow-left"></i>
                </button>
                <h2>志愿者注册</h2>
            </div>
 
            {/* 志愿者注册表单 */}
            <div className="volunteer-register-form">
                <div className="form-group">
                    <label>真实姓名</label>
                    <input 
                        type="text" 
                        placeholder="请输入真实姓名" 
                        className="form-input" 
                        value={formData.name}
                        onChange={(e) => handleInputChange('name', e.target.value)}
                    />
                </div>
                
                <div className="form-group">
                    <label>身份证号</label>
                    <input 
                        type="text" 
                        placeholder="请输入身份证号" 
                        className="form-input" 
                        value={formData.idCard}
                        onChange={(e) => handleInputChange('idCard', e.target.value)}
                    />
                </div>
                
                <div className="form-group">
                    <label>手机号码</label>
                    <input 
                        type="tel" 
                        placeholder="请输入手机号码" 
                        className="form-input" 
                        value={formData.phone}
                        onChange={(e) => handleInputChange('phone', e.target.value)}
                    />
                </div>
 
                {/* 注册说明 */}
                <div className="register-notice">
                    <div className="notice-item">
                        <i className="fas fa-shield-alt"></i>
                        <span>您的个人信息将被严格保密</span>
                    </div>
                    <div className="notice-item">
                        <i className="fas fa-clock"></i>
                        <span>注册成功后即可参与志愿服务活动</span>
                    </div>
                </div>
 
                <div className="form-actions">
                    <button 
                        className="submit-btn" 
                        onClick={handleSubmit}
                        disabled={loading}
                    >
                        <i className="fas fa-user-plus"></i>
                        {loading ? '提交中...' : '提交注册'}
                    </button>
                </div>
            </div>
        </div>
    );
};
 
export default VolunteerRegisterPage;