import { Footer } from '@/components'; import { LockOutlined, UserOutlined, } from '@ant-design/icons'; import { LoginForm, ProFormText, } from '@ant-design/pro-components'; import { Helmet, history, Link, useModel } from '@umijs/max'; import { message, Tabs } from 'antd'; import { createStyles } from 'antd-style'; import React, { useState,useEffect } from 'react'; import { flushSync } from 'react-dom'; import Settings from '../../../../config/defaultSettings'; import { listChartByPageUsingPost } from '@/services/hebi/chartController'; import { getLoginUserUsingGet, userLoginUsingPost } from '@/services/hebi/userController'; const useStyles = createStyles(({ token }) => { return { action: { marginLeft: '8px', color: 'rgba(0, 0, 0, 0.2)', fontSize: '24px', verticalAlign: 'middle', cursor: 'pointer', transition: 'color 0.3s', '&:hover': { color: token.colorPrimaryActive, }, }, lang: { width: 42, height: 42, lineHeight: '42px', position: 'fixed', right: 16, borderRadius: token.borderRadius, ':hover': { backgroundColor: token.colorBgTextHover, }, }, container: { display: 'flex', flexDirection: 'column', height: '100vh', overflow: 'auto', backgroundImage: "url('https://mdn.alipayobjects.com/yuyan_qk0oxh/afts/img/V-_oS6r-i7wAAAAAAAAAAAAAFl94AQBr')", backgroundSize: '100% 100%', }, }; }); const Login: React.FC = () => { const [type, setType] = useState('account'); const { setInitialState } = useModel('@@initialState'); const { styles } = useStyles(); //获取用户的登录信息 const fetchUserInfo = async () => { const userInfo = await getLoginUserUsingGet(); if (userInfo) { flushSync(() => { setInitialState((s) => ({ ...s, currentUser: userInfo, })); }); } }; //测试 useEffect(()=>{ listChartByPageUsingPost({}).then(res=>{ console.error('res:',res) }) }) const handleSubmit = async (values: API.UserLoginRequest) => { try { // 登录 const res = await userLoginUsingPost(values); if (res.code === 0) { const defaultLoginSuccessMessage = '登录成功!'; message.success(defaultLoginSuccessMessage); await fetchUserInfo(); // 登录成功后,设置刷新标记并刷新页面 const urlParams = new URL(window.location.href).searchParams; history.push(urlParams.get('redirect') || '/'); sessionStorage.setItem('avatar_refreshed', '1'); setTimeout(() => { window.location.reload(); }, 1000); return; } else { message.error(res.message); } } catch (error) { const defaultLoginFailureMessage = '登录失败,请重试!'; console.log(error); message.error(defaultLoginFailureMessage); } // 登录失败不需要刷新 }; return ( //登录页面
{'登录'}- {Settings.title}
} title="基于AIGC的智能数据分析系统" subTitle={'本系统助力于让数据分析变得简单高效'} onFinish={async (values) => { await handleSubmit(values as API.UserLoginRequest); }} > {type === 'account' && ( <> , }} placeholder={'请输入用户名'} rules={[ { required: true, message: '用户名是必填项!', }, ]} /> , }} placeholder={'请输入密码'} rules={[ { required: true, message: '密码是必填项!', }, ]} /> )}
注册
); }; export default Login;