Support antd-design-pro,Added language switching on login page.

This commit is contained in:
zuiidea
2018-09-14 22:35:49 +08:00
parent ee10965f43
commit 8aa55330b4
6 changed files with 680 additions and 101 deletions
+74 -56
View File
@@ -1,7 +1,9 @@
import React, { PureComponent } from 'react'
import React, { PureComponent, Fragment } from 'react'
import PropTypes from 'prop-types'
import { connect } from 'dva'
import { Button, Row, Form, Input } from 'antd'
import router from 'umi/router'
import { GlobalFooter } from 'ant-design-pro'
import { Trans, withI18n } from '@lingui/react'
import config from 'utils/config'
@@ -27,63 +29,79 @@ class Login extends PureComponent {
const { loading, form, i18n } = this.props
const { getFieldDecorator } = form
const footerLinks = [
{
key: 'English',
title: <span onClick={() => router.push('/en/login')}>English</span>,
},
{
key: 'Chinese',
title: <span onClick={() => router.push('/zh/login')}>中文</span>,
},
]
return (
<div className={styles.form}>
<div className={styles.logo}>
<img alt="logo" src={config.logoPath} />
<span>{config.siteName}</span>
<Fragment>
<div className={styles.form}>
<div className={styles.logo}>
<img alt="logo" src={config.logoPath} />
<span>{config.siteName}</span>
</div>
<form>
<FormItem hasFeedback>
{getFieldDecorator('username', {
rules: [
{
required: true,
},
],
})(
<Input
onPressEnter={this.handleOk}
placeholder={i18n.t`Username`}
/>
)}
</FormItem>
<FormItem hasFeedback>
{getFieldDecorator('password', {
rules: [
{
required: true,
},
],
})(
<Input
type="password"
onPressEnter={this.handleOk}
placeholder={i18n.t`Password`}
/>
)}
</FormItem>
<Row>
<Button
type="primary"
onClick={this.handleOk}
loading={loading.effects.login}
>
<Trans>Sign in</Trans>
</Button>
<p>
<span>
<Trans>Username</Trans>
:guest
</span>
<span>
<Trans>Password</Trans>
:guest
</span>
</p>
</Row>
</form>
</div>
<form>
<FormItem hasFeedback>
{getFieldDecorator('username', {
rules: [
{
required: true,
},
],
})(
<Input
onPressEnter={this.handleOk}
placeholder={i18n.t`Username`}
/>
)}
</FormItem>
<FormItem hasFeedback>
{getFieldDecorator('password', {
rules: [
{
required: true,
},
],
})(
<Input
type="password"
onPressEnter={this.handleOk}
placeholder={i18n.t`Password`}
/>
)}
</FormItem>
<Row>
<Button
type="primary"
onClick={this.handleOk}
loading={loading.effects.login}
>
<Trans>Sign in</Trans>
</Button>
<p>
<span>
<Trans>Username</Trans>
:guest
</span>
<span>
<Trans>Password</Trans>
:guest
</span>
</p>
</Row>
</form>
</div>
<div className={styles.footer}>
<GlobalFooter links={footerLinks} copyright={config.copyright} />
</div>
</Fragment>
)
}
}
+7 -1
View File
@@ -2,7 +2,7 @@
.form {
position: absolute;
top: 50%;
top: 45%;
left: 50%;
margin: -160px 0 0 -160px;
width: 320px;
@@ -51,3 +51,9 @@
.ant-spin-nested-loading {
height: 100%;
}
.footer {
position: absolute;
width: 100%;
bottom: 0;
}
+1
View File
@@ -2,6 +2,7 @@ module.exports = {
siteName: 'AntD Admin',
prefix: 'antdAdmin',
footerText: 'Ant Design Admin © 2018 zuiidea',
copyright: 'Ant Design Admin © 2018 zuiidea',
logoPath: '/logo.svg',
apiPrefix: '/api/v1',
openPages: ['/login'],