import { useState } from 'react'; import { Card, Form, Input, Button, Row, Col, Typography, Descriptions, Divider, message, Modal, } from 'antd'; import { UserOutlined, LockOutlined, SafetyOutlined, InfoCircleOutlined, } from '@ant-design/icons'; import { useAuth } from '../../../../shared/hooks/useAuth'; import api from '../../../../shared/utils/api'; const { Title, Text } = Typography; export function SettingsPage() { const { admin, logout } = useAuth(); const [changePasswordForm] = Form.useForm(); const [changingPassword, setChangingPassword] = useState(false); const [passwordModalOpen, setPasswordModalOpen] = useState(false); const handleChangePassword = async () => { try { const values = await changePasswordForm.validateFields(); if (values.newPassword !== values.confirmPassword) { message.error('两次输入的密码不一致'); return; } setChangingPassword(true); await api.post('/admin/change-password', { oldPassword: values.oldPassword, newPassword: values.newPassword, }); message.success('密码修改成功,请重新登录'); setPasswordModalOpen(false); changePasswordForm.resetFields(); // Logout after password change setTimeout(() => { logout(); }, 1500); } catch (error: unknown) { const err = error as { response?: { data?: { message?: string } } }; message.error(err.response?.data?.message || '密码修改失败'); } finally { setChangingPassword(false); } }; const systemInfo = { version: '1.0.0', environment: import.meta.env.MODE, apiBase: import.meta.env.VITE_API_BASE_URL || '/api/v1', buildTime: new Date().toISOString().split('T')[0], }; return (