import React, { useEffect, useRef, useState } from 'react'; import { Form, Input, Button, Checkbox, Card, Typography } from 'antd'; import { UserOutlined, LockOutlined, EyeInvisibleOutlined, EyeTwoTone } from '@ant-design/icons'; import { history, Helmet } from '@umijs/max'; import cookie from 'react-cookies'; import CaptchaInput from '@/components/CaptchaInput'; import styles from './internal.less'; import { internalUserLogin } from '@/services/login'; const { Title, Link } = Typography; interface LoginFormValues { username: string; password: string; captcha: { captcha: string; captchaToken: string; }; remember: boolean; } const InternalLogin: React.FC = () => { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const captchaRef = useRef(null); const onFinish = async (values: LoginFormValues) => { const params = { account: values.username, password: values.password, captcha: values.captcha, } try { setLoading(true); const res = await internalUserLogin(params); setLoading(false); if (res?.code === 200) { sessionStorage.setItem('Authorization', res?.data?.token || ''); if (values.remember) { localStorage.setItem('remember_user', JSON.stringify({ username: values.username, password: values.password, })); } else { localStorage.removeItem('remember_user'); } history.push('/redirect'); } else { captchaRef.current?.refresh(); form.setFieldsValue({ captcha: { captcha: '', captchaToken: '', }, }); } } catch (error) { console.error('登录失败:', error); } }; // 组件挂载时,检查是否有记住的用户名 useEffect(() => { const savedUser = localStorage.getItem('remember_user'); if (savedUser) { const user = JSON.parse(savedUser); form.setFieldsValue({ username: user.username, password: user.password, remember: true, }); } }, [form]); useEffect(() => { cookie.remove('mall3_token'); sessionStorage.clear(); }, []); const renderLoginForm = () => (
} placeholder={'请输入用户名'} /> } placeholder="请输入密码" iconRender={(visible) => (visible ? : )} />
记住密码 忘记密码?
还没有账号? 立即注册
); return (
登录 电子招投标平台 {renderLoginForm()}
); }; export default InternalLogin;