Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Y
yudao-cloud
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
hblj
yudao-cloud
Commits
ed476c67
提交
ed476c67
authored
3月 01, 2019
作者:
sin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
- 调整注册页面
上级
46f4b220
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
9 行增加
和
173 行删除
+9
-173
UserLayout.js
admin-web/src/layouts/UserLayout.js
+2
-2
Register.js
admin-web/src/pages/User/Register.js
+5
-170
register.js
admin-web/src/pages/User/models/register.js
+1
-0
api.js
admin-web/src/services/api.js
+1
-1
没有找到文件。
admin-web/src/layouts/UserLayout.js
浏览文件 @
ed476c67
...
...
@@ -63,10 +63,10 @@ class UserLayout extends Component {
<
div
className
=
{
styles
.
header
}
>
<
Link
to
=
"/"
>
<
img
alt
=
"logo"
className
=
{
styles
.
logo
}
src
=
{
logo
}
/
>
<
span
className
=
{
styles
.
title
}
>
Ant
Design
<
/span
>
<
span
className
=
{
styles
.
title
}
>
后台管理系统
<
/span
>
<
/Link
>
<
/div
>
<
div
className
=
{
styles
.
desc
}
>
Ant
Design
是西湖区最具影响力的
Web
设计规范
<
/div
>
<
div
className
=
{
styles
.
desc
}
>
TODO
....
<
/div
>
<
/div
>
{
children
}
<
/div
>
...
...
admin-web/src/pages/User/Register.js
浏览文件 @
ed476c67
...
...
@@ -3,37 +3,13 @@ import { connect } from 'dva';
import
{
formatMessage
,
FormattedMessage
}
from
'umi/locale'
;
import
Link
from
'umi/link'
;
import
router
from
'umi/router'
;
import
{
Form
,
Input
,
Button
,
Select
,
Row
,
Col
,
Popover
,
Progress
}
from
'antd'
;
import
{
Form
,
Input
,
Button
,
Select
,
Row
,
Col
}
from
'antd'
;
import
styles
from
'./Register.less'
;
const
FormItem
=
Form
.
Item
;
const
{
Option
}
=
Select
;
const
InputGroup
=
Input
.
Group
;
const
passwordStatusMap
=
{
ok
:
(
<
div
className
=
{
styles
.
success
}
>
<
FormattedMessage
id
=
"validation.password.strength.strong"
/>
<
/div
>
),
pass
:
(
<
div
className
=
{
styles
.
warning
}
>
<
FormattedMessage
id
=
"validation.password.strength.medium"
/>
<
/div
>
),
poor
:
(
<
div
className
=
{
styles
.
error
}
>
<
FormattedMessage
id
=
"validation.password.strength.short"
/>
<
/div
>
),
};
const
passwordProgressMap
=
{
ok
:
'success'
,
pass
:
'normal'
,
poor
:
'exception'
,
};
@
connect
(({
register
,
loading
})
=>
({
register
,
submitting
:
loading
.
effects
[
'register/submit'
],
...
...
@@ -42,9 +18,6 @@ const passwordProgressMap = {
class
Register
extends
Component
{
state
=
{
count
:
0
,
confirmDirty
:
false
,
visible
:
false
,
help
:
''
,
prefix
:
'86'
,
};
...
...
@@ -77,24 +50,13 @@ class Register extends Component {
},
1000
);
};
getPasswordStatus
=
()
=>
{
const
{
form
}
=
this
.
props
;
const
value
=
form
.
getFieldValue
(
'password'
);
if
(
value
&&
value
.
length
>
9
)
{
return
'ok'
;
}
if
(
value
&&
value
.
length
>
5
)
{
return
'pass'
;
}
return
'poor'
;
};
handleSubmit
=
e
=>
{
e
.
preventDefault
();
const
{
form
,
dispatch
}
=
this
.
props
;
form
.
validateFields
({
force
:
true
},
(
err
,
values
)
=>
{
if
(
!
err
)
{
const
{
prefix
}
=
this
.
state
;
console
.
log
(
'123'
,
values
);
dispatch
({
type
:
'register/submit'
,
payload
:
{
...
...
@@ -106,149 +68,22 @@ class Register extends Component {
});
};
handleConfirmBlur
=
e
=>
{
const
{
value
}
=
e
.
target
;
const
{
confirmDirty
}
=
this
.
state
;
this
.
setState
({
confirmDirty
:
confirmDirty
||
!!
value
});
};
checkConfirm
=
(
rule
,
value
,
callback
)
=>
{
const
{
form
}
=
this
.
props
;
if
(
value
&&
value
!==
form
.
getFieldValue
(
'password'
))
{
callback
(
formatMessage
({
id
:
'validation.password.twice'
}));
}
else
{
callback
();
}
};
checkPassword
=
(
rule
,
value
,
callback
)
=>
{
const
{
visible
,
confirmDirty
}
=
this
.
state
;
if
(
!
value
)
{
this
.
setState
({
help
:
formatMessage
({
id
:
'validation.password.required'
}),
visible
:
!!
value
,
});
callback
(
'error'
);
}
else
{
this
.
setState
({
help
:
''
,
});
if
(
!
visible
)
{
this
.
setState
({
visible
:
!!
value
,
});
}
if
(
value
.
length
<
6
)
{
callback
(
'error'
);
}
else
{
const
{
form
}
=
this
.
props
;
if
(
value
&&
confirmDirty
)
{
form
.
validateFields
([
'confirm'
],
{
force
:
true
});
}
callback
();
}
}
};
changePrefix
=
value
=>
{
this
.
setState
({
prefix
:
value
,
});
};
renderPasswordProgress
=
()
=>
{
const
{
form
}
=
this
.
props
;
const
value
=
form
.
getFieldValue
(
'password'
);
const
passwordStatus
=
this
.
getPasswordStatus
();
return
value
&&
value
.
length
?
(
<
div
className
=
{
styles
[
`progress-
${
passwordStatus
}
`
]}
>
<
Progress
status
=
{
passwordProgressMap
[
passwordStatus
]}
className
=
{
styles
.
progress
}
strokeWidth
=
{
6
}
percent
=
{
value
.
length
*
10
>
100
?
100
:
value
.
length
*
10
}
showInfo
=
{
false
}
/
>
<
/div
>
)
:
null
;
};
render
()
{
const
{
form
,
submitting
}
=
this
.
props
;
const
{
getFieldDecorator
}
=
form
;
const
{
count
,
prefix
,
help
,
visible
}
=
this
.
state
;
const
{
count
,
prefix
}
=
this
.
state
;
return
(
<
div
className
=
{
styles
.
main
}
>
<
h3
>
<
FormattedMessage
id
=
"app.register.register"
/>
<
/h3
>
<
Form
onSubmit
=
{
this
.
handleSubmit
}
>
<
FormItem
>
{
getFieldDecorator
(
'mail'
,
{
rules
:
[
{
required
:
true
,
message
:
formatMessage
({
id
:
'validation.email.required'
}),
},
{
type
:
'email'
,
message
:
formatMessage
({
id
:
'validation.email.wrong-format'
}),
},
],
})(
<
Input
size
=
"large"
placeholder
=
{
formatMessage
({
id
:
'form.email.placeholder'
})}
/
>
)}
<
/FormItem
>
<
FormItem
help
=
{
help
}
>
<
Popover
getPopupContainer
=
{
node
=>
node
.
parentNode
}
content
=
{
<
div
style
=
{{
padding
:
'4px 0'
}}
>
{
passwordStatusMap
[
this
.
getPasswordStatus
()]}
{
this
.
renderPasswordProgress
()}
<
div
style
=
{{
marginTop
:
10
}}
>
<
FormattedMessage
id
=
"validation.password.strength.msg"
/>
<
/div
>
<
/div
>
}
overlayStyle
=
{{
width
:
240
}}
placement
=
"right"
visible
=
{
visible
}
>
{
getFieldDecorator
(
'password'
,
{
rules
:
[
{
validator
:
this
.
checkPassword
,
},
],
})(
<
Input
size
=
"large"
type
=
"password"
placeholder
=
{
formatMessage
({
id
:
'form.password.placeholder'
})}
/
>
)}
<
/Popover
>
<
/FormItem
>
<
FormItem
>
{
getFieldDecorator
(
'confirm'
,
{
rules
:
[
{
required
:
true
,
message
:
formatMessage
({
id
:
'validation.confirm-password.required'
}),
},
{
validator
:
this
.
checkConfirm
,
},
],
})(
<
Input
size
=
"large"
type
=
"password"
placeholder
=
{
formatMessage
({
id
:
'form.confirm-password.placeholder'
})}
/
>
)}
<
/FormItem
>
<
FormItem
>
<
InputGroup
compact
>
<
Select
...
...
@@ -260,7 +95,7 @@ class Register extends Component {
<
Option
value
=
"86"
>+
86
<
/Option
>
<
Option
value
=
"87"
>+
87
<
/Option
>
<
/Select
>
{
getFieldDecorator
(
'
mobil
e'
,
{
{
getFieldDecorator
(
'
usernam
e'
,
{
rules
:
[
{
required
:
true
,
...
...
@@ -283,7 +118,7 @@ class Register extends Component {
<
FormItem
>
<
Row
gutter
=
{
8
}
>
<
Col
span
=
{
16
}
>
{
getFieldDecorator
(
'
captcha
'
,
{
{
getFieldDecorator
(
'
password
'
,
{
rules
:
[
{
required
:
true
,
...
...
admin-web/src/pages/User/models/register.js
浏览文件 @
ed476c67
...
...
@@ -11,6 +11,7 @@ export default {
effects
:
{
*
submit
({
payload
},
{
call
,
put
})
{
console
.
error
(
1
);
const
response
=
yield
call
(
fakeRegister
,
payload
);
yield
put
({
type
:
'registerHandle'
,
...
...
admin-web/src/services/api.js
浏览文件 @
ed476c67
...
...
@@ -111,7 +111,7 @@ export async function fakeAccountLogin(params) {
}
export
async
function
fakeRegister
(
params
)
{
return
request
(
'/api/register'
,
{
return
request
(
`/admin-api/admin/passport/login/?
${
stringify
(
params
)}
`
,
{
method
:
'POST'
,
body
:
params
,
});
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论