import { AlipayCircleOutlined, LockOutlined, MobileOutlined, TaobaoCircleOutlined, UserOutlined, WeiboCircleOutlined, } from '@ant-design/icons'; import { Alert, message,notification} from 'antd'; import React, { useState, useEffect } from 'react'; import ProForm, { ProFormCaptcha, ProFormCheckbox, ProFormText, ProFormDependency, ProFormSelect } from '@ant-design/pro-form'; import { useIntl, Link, history, FormattedMessage, SelectLang, useModel } from 'umi'; import Footer from '@/components/Footer'; import { login, getSubHosp } from '@/services/user'; import { getFakeCaptcha } from '@/services/ant-design-pro/login'; import styles from './index.less'; import CustomDialog from '@/components/Dialog'; import { getQueryString } from '../../../utils.js'; const LoginMessage = ({ content }) => ( ); const Login = () => { const [submitting, setSubmitting] = useState(false); const [userLoginState, setUserLoginState] = useState({}); const [type, setType] = useState('account'); const [subHospList, setSubHospList] = useState([]); const { initialState, setInitialState } = useModel('@@initialState'); const intl = useIntl(); // const fetchUserInfo = async () => { // const userInfo = await initialState?.fetchUserInfo?.(); // console.log({userInfo}); // if (userInfo) { // await setInitialState((s) => ({ ...s, currentUser: userInfo })); // } // }; const { fetchSubHosp, sign } = initialState; const handleSubmit = async (values) => { setSubmitting(true); try { // 登录 const loginResp = await login({ ...values, hospSign: sign }); const {status,msg,data} = loginResp; // console.log({status,msg,data}); if (status == 200) { const defaultloginSuccessMessage = intl.formatMessage({ id: 'pages.login.success', defaultMessage: '登录成功!', }); if (localStorage.getItem('userData') == null || localStorage.getItem('userData') == undefined) { localStorage.setItem('userData',null); } if (localStorage.getItem('loginParams') == null || localStorage.getItem('loginParams') == undefined) { localStorage.setItem('loginParams',null); } localStorage.setItem('loginParams',JSON.stringify({hospSign:sign})); localStorage.setItem('userData',JSON.stringify(data)); message.success(defaultloginSuccessMessage); await setInitialState((s) => ({ ...s, currentUser:data })); /** 此方法会跳转到 redirect 参数所在的位置 */ if (!history) return; const { query } = history.location; const { redirect } = query; history.push(redirect || '/'); return; }else { notification.error({ message:msg }) } setUserLoginState(data); } catch (error) { console.log({error}); const defaultloginFailureMessage = intl.formatMessage({ id: 'pages.login.failure', defaultMessage: '登录失败,请重试!', }); message.error(defaultloginFailureMessage); } setSubmitting(false); }; //登录类型 const { status, type: loginType } = userLoginState; useEffect(() => { fetchSubHosp().then(res => { if (res&&res.success) { const temp = res.map(item => ({ 'value': item.id, 'label': item.name })) setSubHospList(temp); } }) }, []); return (
logo 全成本核算管理系统
dom.pop(), submitButtonProps: { loading: submitting, size: 'large', style: { width: '100%', }, }, }} onFinish={async (values) => { handleSubmit(values); }} > {status === 'error' && loginType === 'account' && ( )} {type === 'account' && ( <> , }} placeholder={'用户名:'} rules={[ { required: true, message: ( ), }, ]} /> , }} placeholder={'密码:'} rules={[ { required: true, message: ( ), }, ]} /> )} {({ name, name2 }) => { return ( ); }}
); }; export default Login;