import React, { useState } from 'react'; import { PageContainer, ProCard } from '@ant-design/pro-components'; import { Avatar, Button, Card, Descriptions, Form, Input, Modal, Space, Tabs, Tag, Upload, message, } from 'antd'; import { UserOutlined, MailOutlined, PhoneOutlined, KeyOutlined, UploadOutlined, } from '@ant-design/icons'; import { useModel } from '@umijs/max'; import type { UploadProps } from 'antd/es/upload'; const { TabPane } = Tabs; const UserInfo: React.FC = () => { const { initialState } = useModel('@@initialState'); const { currentUser } = initialState || {}; const [passwordVisible, setPasswordVisible] = useState(false); const [loading, setLoading] = useState(false); const [form] = Form.useForm(); // 处理头像上传 const handleAvatarUpload: UploadProps['onChange'] = async (info) => { if (info.file.status === 'uploading') { setLoading(true); return; } if (info.file.status === 'done') { message.success('头像更新成功'); setLoading(false); } }; // 处理密码修改 const handlePasswordChange = async (values: any) => { try { // 这里应该调用修改密码的API // await updatePassword(values); message.success('密码修改成功'); setPasswordVisible(false); form.resetFields(); } catch (error) { message.error('密码修改失败'); } }; // 处理基本信息更新 const handleInfoUpdate = async (values: any) => { try { // 这里应该调用更新用户信息的API // await updateUserInfo(values); message.success('信息更新成功'); } catch (error) { message.error('信息更新失败'); } }; return (
} />

{currentUser?.name}

{currentUser?.role || '普通用户'}
} /> } /> } />
已设置 已绑定 已验证 {currentUser?.registerTime || '-'} {currentUser?.lastLogin || '-'} {currentUser?.apiCalls || 0} {currentUser?.analysisCounts || 0}
setPasswordVisible(false)} footer={null} >
} placeholder="原密码" /> } placeholder="新密码" /> ({ validator(_, value) { if (!value || getFieldValue('newPassword') === value) { return Promise.resolve(); } return Promise.reject(new Error('两次输入的密码不一致')); }, }), ]} > } placeholder="确认新密码" />
); }; export default UserInfo;