import React, { useState, useEffect } from 'react';
import { version as appVersion } from '../../package.json';
import {
Form,
Input,
Button,
message,
Typography,
Alert,
} from 'antd';
import {
UserOutlined,
LockOutlined,
MailOutlined,
PhoneOutlined,
SafetyCertificateOutlined,
CloudServerOutlined,
ArrowLeftOutlined,
DashboardOutlined,
SecurityScanOutlined,
ApiOutlined,
} from '@ant-design/icons';
import { useNavigate } from 'react-router-dom';
import { useAuth } from '../hooks/useAuth';
import './Login.css';
const { Title, Text } = Typography;
const Login = () => {
const [loading, setLoading] = useState(false);
const [isFirstUser, setIsFirstUser] = useState(false);
const [registerMode, setRegisterMode] = useState(false);
const { login, register, checkAdmin } = useAuth();
const navigate = useNavigate();
useEffect(() => {
checkIsFirstUser();
}, []);
const checkIsFirstUser = async () => {
try {
const response = await checkAdmin();
if (response.success) {
setIsFirstUser(!response.data.hasAdmin);
}
} catch (error) {
console.error('检查管理员状态失败:', error);
}
};
const onFinishLogin = async (values) => {
setLoading(true);
try {
const result = await login(values.username, values.password);
if (result.success) {
message.success('登录成功');
navigate('/dashboard');
} else {
message.error(result.message);
}
} catch (error) {
message.error('登录失败,请稍后重试');
} finally {
setLoading(false);
}
};
const onFinishRegister = async (values) => {
setLoading(true);
try {
const result = await register({
username: values.username,
password: values.password,
email: values.email,
phone: values.phone,
realName: values.realName,
});
if (result.success) {
message.success(result.isFirstUser ? '管理员账号创建成功' : '注册成功,请等待管理员审核');
if (result.isFirstUser) {
setIsFirstUser(false);
navigate('/dashboard');
} else {
setRegisterMode(false);
}
} else {
message.error(result.message);
}
} catch (error) {
message.error('注册失败,请稍后重试');
} finally {
setLoading(false);
}
};
const features = [
{ icon:
智能数据中心基础设施管理平台