import { useState, useEffect } from 'react'; import { Form, Input, Button, Card, message, Typography } from 'antd'; import { UserOutlined, LockOutlined, ThunderboltOutlined } from '@ant-design/icons'; import { useNavigate } from 'react-router-dom'; import { login, getVersion } from '../../services/api'; import { setToken, setUser } from '../../utils/auth'; const { Title, Text } = Typography; export default function LoginPage() { const [loading, setLoading] = useState(false); const [guestLoading, setGuestLoading] = useState(false); const [versionInfo, setVersionInfo] = useState(null); const navigate = useNavigate(); useEffect(() => { getVersion().then(setVersionInfo).catch(() => {}); }, []); const doLogin = async (username: string, password: string) => { const res: any = await login(username, password); setToken(res.access_token); setUser(res.user); return res; }; const onFinish = async (values: { username: string; password: string }) => { setLoading(true); try { await doLogin(values.username, values.password); message.success('登录成功'); navigate('/'); } catch { message.error('用户名或密码错误'); } finally { setLoading(false); } }; const onGuestLogin = async () => { setGuestLoading(true); try { await doLogin('visitor', 'visitor123'); message.success('访客登录成功'); navigate('/'); } catch { message.error('访客登录失败,请联系管理员'); } finally { setGuestLoading(false); } }; return (
中关村医疗器械园智慧能源管理平台 零碳园区 · 智慧运维
} placeholder="用户名" /> } placeholder="密码" />
访客仅可浏览数据,无管理权限
{versionInfo && (
v{versionInfo.project_version} | Core: v{versionInfo.core_version || '—'}
)}
); }