1. login form

import React from "react";
import {Row, Col} from "antd";
import {Form, Input, Button} from "antd"; import LoginHeader from "./LoginHeader";
import AppFooter from "page/layout/footer/AppFooter";
import "./index.scss"; const FormItem = Form.Item; class LoginForm extends React.Component{ constructor(props){
super(props);
}
loginHandler(e) {
e.preventDefault();
let loginInfo = {};
this.props.form.validateFields((err, values) => {
if(!err){
loginInfo = {
username: values.username,
password: values.password
}
}
})
}
render() { const {getFieldDecorator} =this.props.form; return ( <div className="app-layout app-login"> <div className="login-header"> <LoginHeader /> </div> <div className="login-body"> <div className="app-layout-container"> <Row type="flex" justify="center"> <Col span={24}> <div className="login-left"> <img src="" alt="欢迎登陆react reducer demo"/> </div> <div className="login-right"> <Form onSubmit={(e) => this.loginHandler(e)} className="login-form"> <FormItem> {getFieldDecorator('username',{ rules: [{ required: true, message: "username not null" }] })(<Input addonBefore="username" placeholder="please enter username"/>)} </FormItem> <FormItem> {getFieldDecorator('password',{ rules: [{ required: true, message: "password not null" }] })(<Input addonBefore="password" placeholder="please enter password"/>)} </FormItem> <FormItem> <Button className="btn-block" type="primary" htmlType="submit">login</Button> </FormItem> </Form> </div> </Col> </Row> </div> </div> <AppFooter /> </div>  ) } } const Login = Form.create()(LoginForm); export default Login;

2. index.scss

@import "../../styles/varibles";
.app-login{
.login-header {
background: $bg-color;
margin-bottom: 20px;
}
.login-body {
background: $bg-color;
min-height: 550px; .login-left {
width: 58%;
float: left;
img {
width: 600px;
height: 500px;
}
}
.login-right {
width: 42%;
float: right;
height: 500px;
border: $border; .login-form {
margin: 65px 0 45px 78px; .btn-block {
width: 320px;
height: 40px;
margin-top: 20px;
} .btn, .ant-input {
height: 40px;
} .ant-input-group-addon {
width: 82px;
background-color: $bg-color;
text-align: center;
}
.ant-input {
padding: 0 20px;
width: 238px;
}
}
}
}
}

最新文章

  1. JS最基础的获取元素的值实现加减乘除运算
  2. Mysql 分区
  3. ****CSS各种居中方法
  4. 编程中、遇到问题、bug多思考
  5. PHP网址
  6. PKU 1458 Common Subsequence(最长公共子序列,dp,简单)
  7. 世界上最方便的SharePoint移动客户端--Rshare
  8. AppStore 审核中文版 --- 程序员必看
  9. Python网络编程——修改套接字发送和接收的缓冲区大小
  10. [Swust OJ 567]--老虎在不在笼子里(凸包问题)
  11. JavaIO流程--创建文件和目录的实例
  12. Django2.1配置xadmin2.0
  13. ubuntu18.04.2LTS下如何用五笔输入法 --Linux
  14. nginx代理tomcat做负载
  15. jquery-- json字符串没有自动包装为 json对象
  16. TI 多模雷达1843毫米波雷达做自动泊车(用了8个雷达)
  17. HashMap实现原理分析--面试详谈
  18. VS2013中Nuget程序包管理器控制台使用入门(一)-准备环境(原创)
  19. 线程属性pthread_attr_t简介
  20. oralce 存储过程、函数和触发器

热门文章

  1. apache错误 Unable to open process&quot; with PID 4!
  2. iOS消息推送原理
  3. Python框架之Tornado(请求阶段)
  4. C++模板专门化与重载
  5. java发送http请求和多线程
  6. 【Java Web】把逻辑名映射到servlet文件
  7. Python面试题之Python的Super方法
  8. CSS 3 中的多列属性
  9. Maven:Eclipse上Maven的配置
  10. Dev控件-gridview的属性说明