import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { useTranslation } from 'react-i18next'; import { Box, Button, Checkbox, Container, FormControlLabel, TextField, Typography, Link, AppBar, Toolbar, Card, CardContent, Alert } from '@mui/material'; import LanguageSwitcher from '../components/LanguageSwitcher'; import userService from '../services/user_service'; const Login = () => { const { t } = useTranslation(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [rememberEmail, setRememberEmail] = useState(false); const [isSubmitting, setIsSubmitting] = useState(false); const [emailError, setEmailError] = useState(false); const [passwordError, setPasswordError] = useState(false); const [loginError, setLoginError] = useState(''); const navigate = useNavigate(); console.log(t, t('en'), t('login')); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); const hasEmail = !!email.trim(); const hasPassword = !!password.trim(); setEmailError(!hasEmail); setPasswordError(!hasPassword); setLoginError(''); if (!hasEmail || !hasPassword) return; setIsSubmitting(true); try { const response = await userService.login({ email, password }); // if (response.code === 0) { // // 登录成功,跳转到主页 // navigate('/'); // } else { // // 登录失败,显示错误信息 // setLoginError(response.message || t('login.loginFailed')); // } } catch (error: any) { // 处理网络错误或其他异常 setLoginError(error.message || t('login.networkError')); } finally { setIsSubmitting(false); } }; return ( {/* 顶部栏使用主题主色 */} T {/* 主体卡片 */} T-Systems Enterprise RAG Empowerment System {t('login.login')}
{t('login.emailLabel')} & {t('login.passwordLabel')}
{loginError && ( {loginError} )} setEmail(e.target.value)} error={emailError} required sx={{ mb: 2 }} /> setPassword(e.target.value)} error={passwordError} required sx={{ mb: 2 }} /> setRememberEmail(e.target.checked)} id="rememberEmail" /> } label={t('login.rememberMe')} /> {t('login.signInTip')} {t('login.signUp')}.
{/* 页脚 */} © Deutsche Telekom AG Imprint Data privacy
); }; export default Login;