正在显示
7 个修改的文件
包含
161 行增加
和
0 行删除
@@ -32,9 +32,11 @@ | @@ -32,9 +32,11 @@ | ||
32 | ] | 32 | ] |
33 | }, | 33 | }, |
34 | "devDependencies": { | 34 | "devDependencies": { |
35 | + "@ant-design/icons": "^4.0.0", | ||
35 | "@ant-design/pro-cli": "^1.0.5", | 36 | "@ant-design/pro-cli": "^1.0.5", |
36 | "@ant-design/pro-layout": "^4.5.16", | 37 | "@ant-design/pro-layout": "^4.5.16", |
37 | "@umijs/fabric": "^2.0.0", | 38 | "@umijs/fabric": "^2.0.0", |
39 | + "antd": "^4.6.6", | ||
38 | "cross-env": "^6.0.0", | 40 | "cross-env": "^6.0.0", |
39 | "eslint": "^6.8.0", | 41 | "eslint": "^6.8.0", |
40 | "glob": "^7.1.4", | 42 | "glob": "^7.1.4", |
templates/login/package.json
0 → 100644
templates/login/src/_mock.js
0 → 100644
templates/login/src/index.js
0 → 100644
1 | +import React, { Component } from 'react'; | ||
2 | +import { connect } from 'dva'; | ||
3 | +import { Form, Input, Button, Checkbox } from 'antd'; | ||
4 | +import { UserOutlined, LockOutlined } from '@ant-design/icons'; | ||
5 | + | ||
6 | +import styles from './style.less'; | ||
7 | + | ||
8 | +@connect(({ BLOCK_NAME_CAMEL_CASE }) => BLOCK_NAME_CAMEL_CASE) | ||
9 | +class Page extends Component { | ||
10 | + componentDidMount() { | ||
11 | + const { dispatch } = this.props; | ||
12 | + dispatch({ | ||
13 | + type: 'BLOCK_NAME_CAMEL_CASE/fetch', | ||
14 | + }); | ||
15 | + } | ||
16 | + onFinish = (values) => { | ||
17 | + console.log(values) | ||
18 | + } | ||
19 | + render() { | ||
20 | + const { text } = this.props; | ||
21 | + return ( | ||
22 | + <div className={styles.container}> | ||
23 | + <div className={styles.login_block}> | ||
24 | + <img className={styles.bg_img_sub1} src="http://hropublic.oss-cn-beijing.aliyuncs.com/workai-blocks/img/login-sub1.png" alt="" /> | ||
25 | + <div className={styles.login_wrap}> | ||
26 | + <Form | ||
27 | + name="normal_login" | ||
28 | + className="login-form" | ||
29 | + initialValues={{ remember: true }} | ||
30 | + onFinish={this.onFinish} | ||
31 | + > | ||
32 | + <Form.Item | ||
33 | + name="username" | ||
34 | + rules={[{ required: true, message: 'Please input your Username!' }]} | ||
35 | + > | ||
36 | + <Input placeholder="Username" /> | ||
37 | + </Form.Item> | ||
38 | + <Form.Item | ||
39 | + name="password" | ||
40 | + rules={[{ required: true, message: 'Please input your Password!' }]} | ||
41 | + > | ||
42 | + <Input | ||
43 | + prefix={<LockOutlined className="site-form-item-icon" />} | ||
44 | + type="password" | ||
45 | + placeholder="Password" | ||
46 | + /> | ||
47 | + </Form.Item> | ||
48 | + <Form.Item> | ||
49 | + <Form.Item name="remember" valuePropName="checked" noStyle> | ||
50 | + <Checkbox>记住账号</Checkbox> | ||
51 | + </Form.Item> | ||
52 | + | ||
53 | + <a className="login-form-forgot" href=""> | ||
54 | + 忘记密码 | ||
55 | + </a> | ||
56 | + </Form.Item> | ||
57 | + | ||
58 | + <Form.Item> | ||
59 | + <Button type="primary" htmlType="submit" className={styles.login_form_button}> | ||
60 | + 登录 | ||
61 | + </Button> | ||
62 | + 或 <a href="">现在去注册!</a> | ||
63 | + </Form.Item> | ||
64 | + </Form> | ||
65 | + </div> | ||
66 | + </div> | ||
67 | + </div> | ||
68 | + ); | ||
69 | + } | ||
70 | +} | ||
71 | + | ||
72 | +export default Page; |
templates/login/src/model.js
0 → 100644
1 | +import { getText } from './service'; | ||
2 | + | ||
3 | +export default { | ||
4 | + namespace: 'BLOCK_NAME_CAMEL_CASE', | ||
5 | + state: { | ||
6 | + text: 'loading...', | ||
7 | + }, | ||
8 | + | ||
9 | + effects: { | ||
10 | + *fetch(_, { call, put }) { | ||
11 | + const { text } = yield call(getText); | ||
12 | + yield put({ | ||
13 | + type: 'save', | ||
14 | + payload: { | ||
15 | + text, | ||
16 | + }, | ||
17 | + }); | ||
18 | + }, | ||
19 | + }, | ||
20 | + | ||
21 | + reducers: { | ||
22 | + save(state, { payload }) { | ||
23 | + return { | ||
24 | + ...state, | ||
25 | + ...payload, | ||
26 | + }; | ||
27 | + }, | ||
28 | + }, | ||
29 | +}; |
templates/login/src/service.js
0 → 100644
templates/login/src/style.less
0 → 100644
1 | +.container { | ||
2 | + height: 100vh; | ||
3 | + width: 100vw; | ||
4 | + margin: 0; | ||
5 | + padding: 140px 0 0 0; | ||
6 | + background: linear-gradient(to right, #231254 , #1d0592); | ||
7 | +} | ||
8 | + | ||
9 | +.bg{ | ||
10 | + width: 600px; | ||
11 | +} | ||
12 | + | ||
13 | +.login_block{ | ||
14 | + width: 1100px; | ||
15 | + min-height: 520px; | ||
16 | + border: 1px solid #231254; | ||
17 | + border-radius: 5px; | ||
18 | + margin: auto; | ||
19 | + background: #fff; | ||
20 | + -moz-box-shadow:2px 3px 7px 1px #231254; | ||
21 | + -webkit-box-shadow:2px 3px 7px 1px #231254; | ||
22 | + box-shadow:2px 3px 7px 1px #231254; | ||
23 | + position: relative; | ||
24 | +} | ||
25 | + | ||
26 | +.bg_img_sub1{ | ||
27 | + height: 400px; | ||
28 | + vertical-align: bottom; | ||
29 | +} | ||
30 | +.login_wrap{ | ||
31 | + width: 330px; | ||
32 | + display: inline-block; | ||
33 | + padding: 30px 0; | ||
34 | +} | ||
35 | +.login_form_button{ | ||
36 | + width: 100%; | ||
37 | +} |
请
注册
或
登录
后发表评论