import { LockOutlined, UserOutlined } from '@ant-design/icons' import { Alert, message, Tabs } from 'antd' import React, { useState } from 'react' import ProForm, { ProFormCheckbox, ProFormText } from '@ant-design/pro-form' import { useIntl, Link, history, FormattedMessage, SelectLang, useModel, useRequest } from 'umi' import { login } from '@/services/api/login' import { currentAccount as querycurrentAccount } from '@/services/api/login' import consts from '@/utils/consts' import styles from './index.less' const LoginMessage: React.FC<{ content: string }> = ({ content }) => ( ) /** 此方法会跳转到 redirect 参数所在的位置 */ const goto = () => { if (!history) return setTimeout(() => { const { query } = history.location const { redirect } = query as { redirect: string } history.push(redirect || '/') }, 10) } const Login: React.FC = () => { const { setAuthToken } = useModel('user') const [userLoginState, setUserLoginState] = useState({}) const [type, setType] = useState('account') const { initialState, setInitialState } = useModel('@@initialState') const { run, loading } = useRequest(querycurrentAccount, { manual: true, onSuccess: async result => { setInitialState({ ...initialState, currentUser: result.currentAccount }) goto() } }) const intl = useIntl() // const fetchUserInfo = async () => { // const userInfo = await initialState?.fetchUserInfo?.() // if (userInfo) { // await setInitialState(s => ({ // ...s, // currentUser: userInfo // })) // } // } const { run: tryLogin } = useRequest((values: API.LoginParams) => login(values), { manual: true, onSuccess: async result => { setAuthToken(result?.token) message.success('登录成功') await run() // await fetchUserInfo() }, onError: () => { setUserLoginState({ ...userLoginState, code: -1 }) } }) const handleSubmit = async (values: API.LoginParams) => { try { await tryLogin(values) } catch (error) { message.error('登录失败,请重试') } // try { // // 登录 // const msg = await login({ ...values, type }) // if (msg.status === 'ok') { // const defaultLoginSuccessMessage = intl.formatMessage({ // id: 'pages.login.success', // defaultMessage: '登录成功!' // }) // message.success(defaultLoginSuccessMessage) // await fetchUserInfo() // /** 此方法会跳转到 redirect 参数所在的位置 */ // if (!history) return // const { query } = history.location // const { redirect } = query as { redirect: string } // history.push(redirect || '/') // return // } // console.log(msg) // // 如果失败去设置用户错误信息 // setUserLoginState(msg) // } catch (error) { // const defaultLoginFailureMessage = intl.formatMessage({ // id: 'pages.login.failure', // defaultMessage: '登录失败,请重试!' // }) // message.error(defaultLoginFailureMessage) // } } const { code } = userLoginState return ( {SelectLang && } 投资项目云平台 {intl.formatMessage({ id: 'pages.layouts.userLayout.title' })} dom.pop(), submitButtonProps: { loading, size: 'large', style: { width: '100%' } } }} onFinish={async values => { handleSubmit(values as API.LoginParams) }}> {code === consts.RET_CODE.ERROR && } {type === 'account' && ( <> }} placeholder={intl.formatMessage({ id: 'pages.login.username.placeholder', defaultMessage: '请输入用户名' })} rules={[ { required: true, message: ( ) } ]} /> }} placeholder={intl.formatMessage({ id: 'pages.login.password.placeholder', defaultMessage: '请输入密码!' })} rules={[ { required: true, message: ( ) } ]} /> > )} {/* {status === 'error' && loginType === 'mobile' && } */} ) } export default Login