Login登录

支持多种登录方式切换,内置了几种常见的登录控件,可以灵活组合,也支持和自定义控件配合使用。

引用方式:

  1. import Login from 'ant-design-pro/lib/Login';

详细使用方式请参照:独立使用 pro 组件

代码演示

Login 登录 - 图1

标准登录

Support login with account and mobile number.

  1. import Login from 'ant-design-pro/lib/Login';
  2. import { Alert, Checkbox } from 'antd';
  3. const { Tab, UserName, Password, Mobile, Captcha, Submit } = Login;
  4. class LoginDemo extends React.Component {
  5. state = {
  6. notice: '',
  7. type: 'tab2',
  8. autoLogin: true,
  9. }
  10. onSubmit = (err, values) => {
  11. console.log('value collected ->', { ...values, autoLogin: this.state.autoLogin });
  12. if (this.state.type === 'tab1') {
  13. this.setState({
  14. notice: '',
  15. }, () => {
  16. if (!err && (values.username !== 'admin' || values.password !== '888888')) {
  17. setTimeout(() => {
  18. this.setState({
  19. notice: 'The combination of username and password is incorrect!',
  20. });
  21. }, 500);
  22. }
  23. });
  24. }
  25. }
  26. onTabChange = (key) => {
  27. this.setState({
  28. type: key,
  29. });
  30. }
  31. changeAutoLogin = (e) => {
  32. this.setState({
  33. autoLogin: e.target.checked,
  34. });
  35. }
  36. render() {
  37. return (
  38. <Login
  39. defaultActiveKey={this.state.type}
  40. onTabChange={this.onTabChange}
  41. onSubmit={this.onSubmit}
  42. >
  43. <Tab key="tab1" tab="Account">
  44. {
  45. this.state.notice &&
  46. <Alert style={{ marginBottom: 24 }} message={this.state.notice} type="error" showIcon closable />
  47. }
  48. <UserName name="username" />
  49. <Password name="password" />
  50. </Tab>
  51. <Tab key="tab2" tab="Mobile">
  52. <Mobile name="mobile" />
  53. <Captcha onGetCaptcha={() => console.log('Get captcha!')} name="captcha" />
  54. </Tab>
  55. <div>
  56. <Checkbox checked={this.state.autoLogin} onChange={this.changeAutoLogin}>Keep me logged in</Checkbox>
  57. <a style={{ float: 'right' }} href="">Forgot password</a>
  58. </div>
  59. <Submit>Login</Submit>
  60. <div>
  61. Other login methods
  62. <span className="icon icon-alipay" />
  63. <span className="icon icon-taobao" />
  64. <span className="icon icon-weibo" />
  65. <a style={{ float: 'right' }} href="">Register</a>
  66. </div>
  67. </Login>
  68. );
  69. }
  70. }
  71. ReactDOM.render(<LoginDemo />, mountNode);

API

Login

参数说明类型默认值
defaultActiveKey默认激活 tab 面板的 keyString-
onTabChange切换页签时的回调(key) => void-
onSubmit点击提交时的回调(err, values) => void-

Login.Tab

参数说明类型默认值
key对应选项卡的 keyString-
tab选项卡头显示文字ReactNode-

Login.UserName

参数说明类型默认值
name控件标记,提交数据中同样以此为 keyString-
rules校验规则,同 Form getFieldDecorator(id, options) 中 option.rules 的规则-cn)object[]-

除上述属性以外,Login.UserName 还支持 antd.Input 的所有属性,并且自带默认的基础配置,包括 placeholder size prefix 等,这些基础配置均可被覆盖。

Login.Password、Login.Mobile 同 Login.UserName

Login.Captcha

参数说明类型默认值
onGetCaptcha点击获取校验码的回调() => void-
buttonText点击获取校验码的说明文字ReactNode'获取验证码'

除上述属性以外,Login.Captcha 支持的属性与 Login.UserName 相同。

Login.Submit

支持 antd.Button 的所有属性。