123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- import { LockOutlined, UserOutlined } from '@ant-design/icons';
- import { Alert, message, Tabs } from 'antd';
- import React, { useState } from 'react';
- import md5 from 'md5';
- import ProForm, { ProFormText } from '@ant-design/pro-form';
- import { useIntl, Link, history, FormattedMessage, SelectLang, useModel } from 'umi';
- import Footer from '@/components/Footer';
- import { login } from '@/services/login';
- import styles from './index.less';
-
- const Login = () => {
- const [submitting, setSubmitting] = useState(false);
- const { initialState, setInitialState } = useModel('@@initialState');
- const intl = useIntl();
-
- const handleSubmit = async (values) => {
- setSubmitting(true);
-
- try {
- // 登录
- const { user } = await login({ ...values, password: md5(values.password) });
-
- await setInitialState((s) => ({ ...s, currentUser: user }));
-
- message.success('登录成功!');
- /** 此方法会跳转到 redirect 参数所在的位置 */
-
- if (!history) return;
- const { query } = history.location;
- const { redirect } = query;
- history.push(redirect || '/');
- return;
- } catch (error) {
- console.error(error);
- }
-
- setSubmitting(false);
- };
-
- return (
- <div className={styles.container}>
- <div className={styles.lang} data-lang>
- {SelectLang && <SelectLang />}
- </div>
- <div className={styles.content}>
- <div className={styles.top}>
- <div className={styles.header}>
- <Link to="/">
- {/* <img alt="logo" className={styles.logo} src="/logo.svg" /> */}
- <span className={styles.title}>南阳智慧农机系统</span>
- </Link>
- </div>
- <div className={styles.desc}>我们是一群被打了鸡血的小伙伴</div>
- </div>
-
- <div className={styles.main}>
- <ProForm
- initialValues={{
- autoLogin: true,
- }}
- submitter={{
- searchConfig: {
- submitText: intl.formatMessage({
- id: 'pages.login.submit',
- defaultMessage: '登录',
- }),
- },
- render: (_, dom) => dom.pop(),
- submitButtonProps: {
- loading: submitting,
- size: 'large',
- style: {
- width: '100%',
- },
- },
- }}
- onFinish={async (values) => {
- handleSubmit(values);
- }}
- >
- <ProFormText
- name="userName"
- fieldProps={{
- size: 'large',
- prefix: <UserOutlined className={styles.prefixIcon} />,
- }}
- placeholder="用户名"
- rules={[
- {
- required: true,
- message: (
- <FormattedMessage
- id="pages.login.username.required"
- defaultMessage="请输入用户名!"
- />
- ),
- },
- ]}
- />
- <ProFormText.Password
- name="password"
- fieldProps={{
- size: 'large',
- prefix: <LockOutlined className={styles.prefixIcon} />,
- }}
- placeholder="密码"
- rules={[
- {
- required: true,
- message: (
- <FormattedMessage
- id="pages.login.password.required"
- defaultMessage="请输入密码!"
- />
- ),
- },
- ]}
- />
- </ProForm>
- </div>
- </div>
- <Footer />
- </div>
- );
- };
-
- export default Login;
|