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 } 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, remember: values.remember, } try { setLoading(true); const res = await internalUserLogin(params); if (res?.code === 200) { sessionStorage.setItem('Authorization', res?.data?.token || ''); history.push('/redirect'); } else { captchaRef.current?.refresh(); form.setFieldsValue({ captcha: { captcha: '', captchaToken: '', }, }); } } catch (error) { console.error('登录失败:', error); } finally { setLoading(false); } }; // 组件挂载时,检查是否有记住的用户名 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;