|
|
|
@ -18,65 +18,94 @@ class LoginDemo extends React.Component { |
|
|
|
notice: '', |
|
|
|
type: 'tab2', |
|
|
|
autoLogin: true, |
|
|
|
} |
|
|
|
}; |
|
|
|
onSubmit = (err, values) => { |
|
|
|
console.log('value collected ->', { ...values, autoLogin: this.state.autoLogin }); |
|
|
|
console.log('value collected ->', { |
|
|
|
...values, |
|
|
|
autoLogin: this.state.autoLogin, |
|
|
|
}); |
|
|
|
if (this.state.type === 'tab1') { |
|
|
|
this.setState({ |
|
|
|
notice: '', |
|
|
|
}, () => { |
|
|
|
if (!err && (values.username !== 'admin' || values.password !== '888888')) { |
|
|
|
setTimeout(() => { |
|
|
|
this.setState({ |
|
|
|
notice: 'The combination of username and password is incorrect!', |
|
|
|
}); |
|
|
|
}, 500); |
|
|
|
} |
|
|
|
}); |
|
|
|
this.setState( |
|
|
|
{ |
|
|
|
notice: '', |
|
|
|
}, |
|
|
|
() => { |
|
|
|
if ( |
|
|
|
!err && |
|
|
|
(values.username !== 'admin' || values.password !== '888888') |
|
|
|
) { |
|
|
|
setTimeout(() => { |
|
|
|
this.setState({ |
|
|
|
notice: |
|
|
|
'The combination of username and password is incorrect!', |
|
|
|
}); |
|
|
|
}, 500); |
|
|
|
} |
|
|
|
}, |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
onTabChange = (key) => { |
|
|
|
this.setState({ |
|
|
|
type: key, |
|
|
|
}); |
|
|
|
} |
|
|
|
}; |
|
|
|
changeAutoLogin = (e) => { |
|
|
|
this.setState({ |
|
|
|
autoLogin: e.target.checked, |
|
|
|
}); |
|
|
|
} |
|
|
|
}; |
|
|
|
render() { |
|
|
|
return ( |
|
|
|
<Login |
|
|
|
defaultActiveKey={this.state.type} |
|
|
|
onTabChange={this.onTabChange} |
|
|
|
onSubmit={this.onSubmit} |
|
|
|
> |
|
|
|
<Tab key="tab1" tab="Account"> |
|
|
|
{ |
|
|
|
this.state.notice && |
|
|
|
<Alert style={{ marginBottom: 24 }} message={this.state.notice} type="error" showIcon closable /> |
|
|
|
} |
|
|
|
<UserName name="username" /> |
|
|
|
<Password name="password" /> |
|
|
|
</Tab> |
|
|
|
<Tab key="tab2" tab="Mobile"> |
|
|
|
<Mobile name="mobile" /> |
|
|
|
<Captcha onGetCaptcha={() => console.log('Get captcha!')} name="captcha" /> |
|
|
|
</Tab> |
|
|
|
<div> |
|
|
|
<Checkbox checked={this.state.autoLogin} onChange={this.changeAutoLogin}>Keep me logged in</Checkbox> |
|
|
|
<a style={{ float: 'right' }} href="">Forgot password</a> |
|
|
|
</div> |
|
|
|
<Submit>Login</Submit> |
|
|
|
<div> |
|
|
|
Other login methods |
|
|
|
<span className="icon icon-alipay" /> |
|
|
|
<span className="icon icon-taobao" /> |
|
|
|
<span className="icon icon-weibo" /> |
|
|
|
<a style={{ float: 'right' }} href="">Register</a> |
|
|
|
</div> |
|
|
|
</Login> |
|
|
|
<div className="login-warp"> |
|
|
|
<Login |
|
|
|
defaultActiveKey={this.state.type} |
|
|
|
onTabChange={this.onTabChange} |
|
|
|
onSubmit={this.onSubmit} |
|
|
|
> |
|
|
|
<Tab key="tab1" tab="Account"> |
|
|
|
{this.state.notice && ( |
|
|
|
<Alert |
|
|
|
style={{ marginBottom: 24 }} |
|
|
|
message={this.state.notice} |
|
|
|
type="error" |
|
|
|
showIcon |
|
|
|
closable |
|
|
|
/> |
|
|
|
)} |
|
|
|
<UserName name="username" /> |
|
|
|
<Password name="password" /> |
|
|
|
</Tab> |
|
|
|
<Tab key="tab2" tab="Mobile"> |
|
|
|
<Mobile name="mobile" /> |
|
|
|
<Captcha |
|
|
|
onGetCaptcha={() => console.log('Get captcha!')} |
|
|
|
name="captcha" |
|
|
|
/> |
|
|
|
</Tab> |
|
|
|
<div> |
|
|
|
<Checkbox |
|
|
|
checked={this.state.autoLogin} |
|
|
|
onChange={this.changeAutoLogin} |
|
|
|
> |
|
|
|
Keep me logged in |
|
|
|
</Checkbox> |
|
|
|
<a style={{ float: 'right' }} href=""> |
|
|
|
Forgot password |
|
|
|
</a> |
|
|
|
</div> |
|
|
|
<Submit>Login</Submit> |
|
|
|
<div> |
|
|
|
Other login methods |
|
|
|
<span className="icon icon-alipay" /> |
|
|
|
<span className="icon icon-taobao" /> |
|
|
|
<span className="icon icon-weibo" /> |
|
|
|
<a style={{ float: 'right' }} href=""> |
|
|
|
Register |
|
|
|
</a> |
|
|
|
</div> |
|
|
|
</Login> |
|
|
|
</div> |
|
|
|
); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -85,6 +114,10 @@ ReactDOM.render(<LoginDemo />, mountNode); |
|
|
|
```` |
|
|
|
|
|
|
|
<style> |
|
|
|
#scaffold-src-components-Login-demo-basic .login-warp{ |
|
|
|
max-width: 360px; |
|
|
|
margin: auto; |
|
|
|
} |
|
|
|
#scaffold-src-components-Login-demo-basic .icon { |
|
|
|
display: inline-block; |
|
|
|
width: 24px; |
|
|
|
|