|
|
@@ -9,13 +9,14 @@ import './login.less'
|
|
|
|
|
|
const { UserName, Password, Submit } = Login;
|
|
|
|
|
|
-function authenticate(token, expireTime, user, cb) {
|
|
|
+function authenticate(token, expireTime, user, autoLogin, cb ) {
|
|
|
window.localStorage.setItem("token", token);
|
|
|
window.localStorage.setItem("expireTime", expireTime);
|
|
|
|
|
|
window.localStorage.setItem("usercode", user.code);
|
|
|
- window.localStorage.setItem("account", user.account);
|
|
|
- // window.localStorage.setItem("password", user.password);
|
|
|
+ autoLogin ? window.localStorage.setItem("autoLogin", 'true') : window.localStorage.setItem("autoLogin", 'false');
|
|
|
+ autoLogin ? window.localStorage.setItem("account", user.account) : window.localStorage.removeItem('account');
|
|
|
+ autoLogin ? window.localStorage.setItem("password", user.password) : window.localStorage.removeItem('password');
|
|
|
window.localStorage.setItem("username", user.name);
|
|
|
window.localStorage.setItem("userrole", user.role);
|
|
|
|
|
|
@@ -25,12 +26,11 @@ function authenticate(token, expireTime, user, cb) {
|
|
|
class LoginComponent extends React.Component {
|
|
|
state = {
|
|
|
notice: '',
|
|
|
- autoLogin: true,
|
|
|
+ autoLogin: window.localStorage.getItem('autoLogin') ? window.localStorage.getItem('autoLogin') === 'true' : true,
|
|
|
redirectToReferrer: false
|
|
|
};
|
|
|
|
|
|
onSubmit = (err, values) => {
|
|
|
- console.log('value collected ->', { ...values, autoLogin: this.state.autoLogin });
|
|
|
this.setState({
|
|
|
notice: '',
|
|
|
}, () => {
|
|
|
@@ -47,6 +47,8 @@ class LoginComponent extends React.Component {
|
|
|
|
|
|
login = (username, password) => {
|
|
|
const { dispatch } = this.props;
|
|
|
+ const { autoLogin } = this.state;
|
|
|
+
|
|
|
const self = this;
|
|
|
let body = {
|
|
|
userName: username,
|
|
|
@@ -79,7 +81,7 @@ class LoginComponent extends React.Component {
|
|
|
role: user.role
|
|
|
};
|
|
|
dispatch({ type: 'main/setCurrentUser', user: currentUser });
|
|
|
- authenticate(token, expireTime, currentUser, () => {
|
|
|
+ authenticate(token, expireTime, currentUser, autoLogin, () => {
|
|
|
this.setState({ redirectToReferrer: true });
|
|
|
});
|
|
|
}).catch(ex => {
|
|
|
@@ -92,7 +94,10 @@ class LoginComponent extends React.Component {
|
|
|
|
|
|
render() {
|
|
|
const { from } = this.props.location.state || { from: { pathname: "/" } };
|
|
|
- const { redirectToReferrer } = this.state;
|
|
|
+ const { notice, autoLogin, redirectToReferrer } = this.state;
|
|
|
+
|
|
|
+ const defaultAccount = window.localStorage.getItem('account');
|
|
|
+ const defaultPassword = window.localStorage.getItem('password');
|
|
|
|
|
|
if (redirectToReferrer) {
|
|
|
return <Redirect to={from} />;
|
|
|
@@ -108,10 +113,10 @@ class LoginComponent extends React.Component {
|
|
|
onSubmit={this.onSubmit}
|
|
|
>
|
|
|
{
|
|
|
- this.state.notice &&
|
|
|
- <Alert style={{ marginBottom: 24 }} message={this.state.notice} type="error" showIcon closable />
|
|
|
+ notice &&
|
|
|
+ <Alert style={{ marginBottom: 24 }} message={notice} type="error" showIcon closable />
|
|
|
}
|
|
|
- <UserName name="username" placeholder='输入用户名' onChange={() => {
|
|
|
+ <UserName name="username" placeholder='输入用户名' defaultValue={autoLogin ? defaultAccount : ''} onChange={() => {
|
|
|
this.setState({
|
|
|
notice: ''
|
|
|
});
|
|
|
@@ -119,7 +124,7 @@ class LoginComponent extends React.Component {
|
|
|
required: true,
|
|
|
message: '用户名不能为空'
|
|
|
}]}/>
|
|
|
- <Password name="password" placeholder='输入密码' onChange={() => {
|
|
|
+ <Password name="password" placeholder='输入密码' defaultValue={autoLogin ? defaultPassword : ''} onChange={() => {
|
|
|
this.setState({
|
|
|
notice: ''
|
|
|
});
|
|
|
@@ -128,7 +133,7 @@ class LoginComponent extends React.Component {
|
|
|
message: '密码不能为空'
|
|
|
}]}/>
|
|
|
<div>
|
|
|
- <Checkbox checked={this.state.autoLogin} onChange={this.changeAutoLogin}>记住密码</Checkbox>
|
|
|
+ <Checkbox defaultChecked={autoLogin} onChange={this.changeAutoLogin}>记住密码</Checkbox>
|
|
|
<a style={{ float: 'right' }} href="">忘记密码</a>
|
|
|
</div>
|
|
|
<Submit>登录</Submit>
|