Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_40988873
jeecg-boot
提交
69a4a7df
J
jeecg-boot
项目概览
weixin_40988873
/
jeecg-boot
与 Fork 源项目一致
Fork自
jeecg / jeecg-boot
通知
3
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
jeecg-boot
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
69a4a7df
编写于
4月 05, 2021
作者:
JEECG低代码平台
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
重构登录注册页面为a-form-model模式
上级
649f9966
变更
8
展开全部
显示空白变更内容
内联
并排
Showing
8 changed file
with
448 addition
and
470 deletion
+448
-470
ant-design-vue-jeecg/src/views/user/Login.vue
ant-design-vue-jeecg/src/views/user/Login.vue
+237
-248
ant-design-vue-jeecg/src/views/user/LoginSelectTenant.vue
ant-design-vue-jeecg/src/views/user/LoginSelectTenant.vue
+6
-6
ant-design-vue-jeecg/src/views/user/alteration/Alteration.vue
...design-vue-jeecg/src/views/user/alteration/Alteration.vue
+10
-4
ant-design-vue-jeecg/src/views/user/alteration/Step2.vue
ant-design-vue-jeecg/src/views/user/alteration/Step2.vue
+72
-86
ant-design-vue-jeecg/src/views/user/alteration/Step3.vue
ant-design-vue-jeecg/src/views/user/alteration/Step3.vue
+54
-71
ant-design-vue-jeecg/src/views/user/register/Register.vue
ant-design-vue-jeecg/src/views/user/register/Register.vue
+58
-44
ant-design-vue-jeecg/src/views/user/register/RegisterResult.vue
...sign-vue-jeecg/src/views/user/register/RegisterResult.vue
+5
-5
ant-design-vue-jeecg/src/views/user/third/ThirdLogin.vue
ant-design-vue-jeecg/src/views/user/third/ThirdLogin.vue
+6
-6
未找到文件。
ant-design-vue-jeecg/src/views/user/Login.vue
浏览文件 @
69a4a7df
此差异已折叠。
点击以展开。
ant-design-vue-jeecg/src/views/user/LoginSelectTenant.vue
浏览文件 @
69a4a7df
...
@@ -10,8 +10,8 @@
...
@@ -10,8 +10,8 @@
<a-button
type=
"primary"
@
click=
"selectOk"
>
确认
</a-button>
<a-button
type=
"primary"
@
click=
"selectOk"
>
确认
</a-button>
</
template
>
</
template
>
<a-form>
<a-form
-model
>
<a-form-item
v-if=
"isMultiTenant"
:labelCol=
"{span:4}"
:wrapperCol=
"{span:20}"
style=
"margin-bottom:10px"
:validate-status=
"validate_status1"
>
<a-form-
model-
item
v-if=
"isMultiTenant"
:labelCol=
"{span:4}"
:wrapperCol=
"{span:20}"
style=
"margin-bottom:10px"
:validate-status=
"validate_status1"
>
<a-tooltip
placement=
"topLeft"
>
<a-tooltip
placement=
"topLeft"
>
<
template
slot=
"title"
>
<
template
slot=
"title"
>
<span>
您有多个租户,请选择登录租户
</span>
<span>
您有多个租户,请选择登录租户
</span>
...
@@ -25,10 +25,10 @@
...
@@ -25,10 +25,10 @@
{{ d.name }}
{{ d.name }}
</a-select-option>
</a-select-option>
</a-select>
</a-select>
</a-form-item>
</a-form-
model-
item>
<a-form-item
v-if=
"isMultiDepart"
:labelCol=
"{span:4}"
:wrapperCol=
"{span:20}"
style=
"margin-bottom:10px"
:validate-status=
"validate_status2"
>
<a-form-
model-
item
v-if=
"isMultiDepart"
:labelCol=
"{span:4}"
:wrapperCol=
"{span:20}"
style=
"margin-bottom:10px"
:validate-status=
"validate_status2"
>
<a-tooltip
placement=
"topLeft"
>
<a-tooltip
placement=
"topLeft"
>
<
template
slot=
"title"
>
<
template
slot=
"title"
>
<span>
您有多个部门,请选择登录部门
</span>
<span>
您有多个部门,请选择登录部门
</span>
...
@@ -42,9 +42,9 @@
...
@@ -42,9 +42,9 @@
{{ d.departName }}
{{ d.departName }}
</a-select-option>
</a-select-option>
</a-select>
</a-select>
</a-form-item>
</a-form-
model-
item>
</a-form>
</a-form
-model
>
</a-modal>
</a-modal>
</template>
</template>
...
...
ant-design-vue-jeecg/src/views/user/alteration/Alteration.vue
浏览文件 @
69a4a7df
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<a-card
:bordered=
"false"
style=
"width: 130%;text-align: center;margin-left:-10%"
>
<a-card
:bordered=
"false"
style=
"width: 130%;text-align: center;margin-left:-10%"
>
<a-steps
class=
"steps"
:current=
"currentTab"
>
<a-steps
class=
"steps"
:current=
"currentTab"
>
<a-step
title=
"手机验证"
/>
<a-step
title=
"手机验证"
/>
<a-step
title=
"密码"
/>
<a-step
title=
"
更改
密码"
/>
<a-step
title=
"完成"
/>
<a-step
title=
"完成"
/>
</a-steps>
</a-steps>
<div
class=
"content"
>
<div
class=
"content"
>
...
@@ -14,7 +14,6 @@
...
@@ -14,7 +14,6 @@
</
template
>
</
template
>
<
script
>
<
script
>
import
Step1
from
'
./Step1
'
import
Step2
from
'
./Step2
'
import
Step2
from
'
./Step2
'
import
Step3
from
'
./Step3
'
import
Step3
from
'
./Step3
'
import
Step4
from
'
./Step4
'
import
Step4
from
'
./Step4
'
...
@@ -22,7 +21,6 @@
...
@@ -22,7 +21,6 @@
export
default
{
export
default
{
name
:
"
Alteration
"
,
name
:
"
Alteration
"
,
components
:
{
components
:
{
Step1
,
Step2
,
Step2
,
Step3
,
Step3
,
Step4
Step4
...
@@ -63,4 +61,12 @@
...
@@ -63,4 +61,12 @@
max-width: 750px;
max-width: 750px;
margin: 16px auto;
margin: 16px auto;
}
}
/deep/ .password-retrieval-form{
max-width: 500px;
margin: 40px auto 0;
.ant-form-explain{
text-align: left;
}
}
</
style
>
</
style
>
ant-design-vue-jeecg/src/views/user/alteration/Step2.vue
浏览文件 @
69a4a7df
<
template
>
<
template
>
<div>
<div>
<a-form
:form=
"form"
style=
"max-width: 500px; margin: 40px auto 0;"
@
keyup.enter.native=
"nextStep"
>
<a-form-model
ref=
"form"
:model=
"model"
:rules=
"validatorRules"
class=
"password-retrieval-form"
@
keyup.enter.native=
"nextStep"
>
<a-form-item
<a-form-model-item
label=
"手机"
required
prop=
"phone"
:labelCol=
"
{span: 5}" :wrapperCol="{span: 19}">
label=
"手机"
<a-row
:gutter=
"16"
>
:labelCol=
"
{span: 5}"
<a-col
class=
"gutter-row"
:span=
"20"
>
:wrapperCol="{span: 19}"
<a-input
v-model=
"model.phone"
type=
"text"
autocomplete=
"false"
placeholder=
"请输入手机号"
>
>
<a-input
type=
"text"
autocomplete=
"false"
style=
"width:310px;margin-left:-10px"
v-decorator=
"['phone',
{ rules: validatorRules.phone.rule}]"
placeholder="请输入手机号">
<a-icon
slot=
"prefix"
type=
"phone"
:style=
"
{ color: 'rgba(0,0,0,.25)'}"/>
<a-icon
slot=
"prefix"
type=
"phone"
:style=
"
{ color: 'rgba(0,0,0,.25)'}"/>
</a-input>
</a-input>
</a-form-item>
</a-col>
<a-form-item
</a-row>
label=
"验证码"
</a-form-model-item>
:labelCol=
"
{span: 5}"
<a-form-model-item
v-if=
"show"
required
prop=
"captcha"
label=
"验证码"
:labelCol=
"
{span: 5}" :wrapperCol="{span: 19}">
:wrapperCol="{span: 19}"
<a-row
:gutter=
"16"
>
v-if="show">
<a-row
:gutter=
"16"
style=
"margin-left: 2px"
>
<a-col
class=
"gutter-row"
:span=
"12"
>
<a-col
class=
"gutter-row"
:span=
"12"
>
<a-input
<a-input
v-model=
"model.captcha"
type=
"text"
placeholder=
"手机短信验证码"
>
v-decorator=
"['captcha',validatorRules.captcha]"
<a-icon
slot=
"prefix"
type=
"code"
:style=
"
{ color: 'rgba(0,0,0,.25)'}"/>
type=
"text"
placeholder=
"手机短信验证码"
>
</a-input>
</a-input>
</a-col>
</a-col>
<a-col
class=
"gutter-row"
:span=
"8"
>
<a-col
class=
"gutter-row"
:span=
"8"
>
...
@@ -37,12 +26,12 @@
...
@@ -37,12 +26,12 @@
v-text=
"!state.smsSendBtn && '获取验证码' || (state.time+' s')"
></a-button>
v-text=
"!state.smsSendBtn && '获取验证码' || (state.time+' s')"
></a-button>
</a-col>
</a-col>
</a-row>
</a-row>
</a-form-item>
</a-form-
model-
item>
<a-form-item
:wrapperCol=
"
{span: 19, offset: 5}">
<a-form-
model-
item
:wrapperCol=
"
{span: 19, offset: 5}">
<router-link
style=
"float: left;line-height: 40px;"
:to=
"
{ name: 'login' }">使用已有账户登录
</router-link>
<router-link
style=
"float: left;line-height: 40px;"
:to=
"
{ name: 'login' }">使用已有账户登录
</router-link>
<a-button
type=
"primary"
@
click=
"nextStep"
style=
"margin-left: 20px"
>
下一步
</a-button>
<a-button
type=
"primary"
@
click=
"nextStep"
style=
"margin-left: 20px"
>
下一步
</a-button>
</a-form-item>
</a-form-
model-
item>
</a-form>
</a-form
-model
>
</div>
</div>
</
template
>
</
template
>
...
@@ -54,7 +43,7 @@
...
@@ -54,7 +43,7 @@
props
:
[
'
userList
'
],
props
:
[
'
userList
'
],
data
()
{
data
()
{
return
{
return
{
form
:
this
.
$form
.
createForm
(
this
)
,
model
:
{}
,
loading
:
false
,
loading
:
false
,
// accountName: this.userList.username,
// accountName: this.userList.username,
dropList
:
"
0
"
,
dropList
:
"
0
"
,
...
@@ -69,8 +58,13 @@
...
@@ -69,8 +58,13 @@
mobile
:
""
,
mobile
:
""
,
},
},
validatorRules
:
{
validatorRules
:
{
captcha
:
{
rule
:
[{
required
:
true
,
message
:
'
请输入短信验证码!
'
},
{
validator
:
this
.
validateCaptcha
}]},
phone
:
[
phone
:
{
rule
:
[{
required
:
true
,
message
:
'
请输入手机号码!
'
},
{
validator
:
this
.
validatePhone
}]},
{
required
:
true
,
message
:
'
请输入手机号码!
'
},
{
validator
:
this
.
validatePhone
}
],
captcha
:
[
{
required
:
true
,
message
:
'
请输入短信验证码!
'
}
]
},
},
}
}
},
},
...
@@ -80,22 +74,18 @@
...
@@ -80,22 +74,18 @@
nextStep
()
{
nextStep
()
{
let
that
=
this
let
that
=
this
that
.
loading
=
true
that
.
loading
=
true
this
.
form
.
validateFields
((
err
,
values
)
=>
{
this
.
$refs
[
'
form
'
].
validate
((
success
)
=>
{
console
.
log
(
values
);
if
(
success
==
true
){
if
(
!
err
)
{
let
params
=
{
if
(
that
.
dropList
==
"
0
"
)
{
phone
:
this
.
model
.
phone
,
if
(
values
.
captcha
==
undefined
)
{
smscode
:
this
.
model
.
captcha
this
.
cmsFailed
(
"
请输入短信验证码!
"
);
}
}
else
{
var
params
=
{}
params
.
phone
=
values
.
phone
;
params
.
smscode
=
values
.
captcha
;
postAction
(
"
/sys/user/phoneVerification
"
,
params
).
then
((
res
)
=>
{
postAction
(
"
/sys/user/phoneVerification
"
,
params
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
if
(
res
.
success
)
{
console
.
log
(
res
);
console
.
log
(
res
);
var
userList
=
{
let
userList
=
{
username
:
res
.
result
.
username
,
username
:
res
.
result
.
username
,
phone
:
value
s
.
phone
,
phone
:
param
s
.
phone
,
smscode
:
res
.
result
.
smscode
smscode
:
res
.
result
.
smscode
};
};
setTimeout
(
function
()
{
setTimeout
(
function
()
{
...
@@ -104,24 +94,17 @@
...
@@ -104,24 +94,17 @@
}
else
{
}
else
{
this
.
cmsFailed
(
res
.
message
);
this
.
cmsFailed
(
res
.
message
);
}
}
})
});
}
}
}
}
})
})
},
},
getCaptcha
(
e
)
{
getCaptcha
(
e
)
{
e
.
preventDefault
();
e
.
preventDefault
();
let
that
=
this
;
const
that
=
this
let
phone
=
that
.
form
.
getFieldValue
(
"
phone
"
)
that
.
$refs
[
'
form
'
].
validateField
(
'
phone
'
,
err
=>
{
if
(
!
phone
){
if
(
!
err
){
this
.
cmsFailed
(
"
手机号不能为空!
"
);
that
.
state
.
smsSendBtn
=
true
;
return
;
}
this
.
state
.
smsSendBtn
=
true
;
let
interval
=
window
.
setInterval
(()
=>
{
let
interval
=
window
.
setInterval
(()
=>
{
if
(
that
.
state
.
time
--
<=
0
)
{
if
(
that
.
state
.
time
--
<=
0
)
{
that
.
state
.
time
=
60
;
that
.
state
.
time
=
60
;
...
@@ -129,19 +112,22 @@
...
@@ -129,19 +112,22 @@
window
.
clearInterval
(
interval
);
window
.
clearInterval
(
interval
);
}
}
},
1000
);
},
1000
);
const
hide
=
that
.
$message
.
loading
(
'
验证码发送中..
'
,
0
);
const
hide
=
this
.
$message
.
loading
(
'
验证码发送中..
'
,
0
);
let
smsParams
=
{
let
smsParams
=
{
mobile
:
phone
,
mobile
:
that
.
model
.
phone
,
smsmode
:
"
2
"
smsmode
:
"
2
"
};
};
postAction
(
"
/sys/sms
"
,
smsParams
).
then
(
res
=>
{
postAction
(
"
/sys/sms
"
,
smsParams
).
then
(
res
=>
{
if
(
!
res
.
success
)
{
if
(
!
res
.
success
)
{
setTimeout
(
hide
,
1
);
setTimeout
(
hide
,
1
);
this
.
cmsFailed
(
res
.
message
);
that
.
cmsFailed
(
res
.
message
);
}
}
setTimeout
(
hide
,
500
);
setTimeout
(
hide
,
500
);
})
})
}
else
{
that
.
cmsFailed
(
err
);
}
})
},
},
cmsFailed
(
err
)
{
cmsFailed
(
err
)
{
this
.
$notification
[
'
error
'
]({
this
.
$notification
[
'
error
'
]({
...
...
ant-design-vue-jeecg/src/views/user/alteration/Step3.vue
浏览文件 @
69a4a7df
<
template
>
<
template
>
<div>
<div>
<a-form
:form=
"form"
style=
"max-width: 500px; margin: 40px auto 0;"
>
<a-form-model
ref=
"form"
:model=
"model"
:rules=
"validatorRules"
class=
"password-retrieval-form"
>
<a-form-item
label=
"账号名"
<a-form-model-item
label=
"账号名"
v-bind=
"layout"
>
:labelCol=
"
{span: 5}"
<a-input
type=
"text"
:value=
"accountName"
disabled
/>
:wrapperCol="{span: 19}"
</a-form-model-item>
>
<a-input
<a-form-model-item
prop=
"password"
label=
"新密码"
v-bind=
"layout"
class=
"stepFormText"
>
type=
"text"
<a-input
v-model=
"model.password"
type=
"password"
autocomplete=
"false"
/>
autocomplete=
"false"
:value=
"accountName"
disabled
>
</a-form-model-item>
</a-input>
</a-form-item>
<a-form-model-item
prop=
"confirmPassword"
label=
"确认密码"
v-bind=
"layout"
class=
"stepFormText"
>
<a-form-item
<a-input
v-model=
"model.confirmPassword"
type=
"password"
autocomplete=
"false"
/>
label=
"新密码"
</a-form-model-item>
:labelCol=
"
{span: 5}"
:wrapperCol="{span: 19}"
<a-form-model-item
:wrapperCol=
"
{span: 19, offset: 5}">
class="stepFormText">
<a-input
v-decorator=
"['password',validatorRules.password]"
type=
"password"
autocomplete=
"false"
>
</a-input>
</a-form-item>
<a-form-item
label=
"确认密码"
:labelCol=
"
{span: 5}"
:wrapperCol="{span: 19}"
class="stepFormText">
<a-input
v-decorator=
"['confirmPassword',validatorRules.confirmPassword]"
type=
"password"
autocomplete=
"false"
>
</a-input>
</a-form-item>
<a-form-item
:wrapperCol=
"
{span: 19, offset: 5}">
<a-button
style=
"margin-left: 8px"
@
click=
"prevStep"
>
上一步
</a-button>
<a-button
style=
"margin-left: 8px"
@
click=
"prevStep"
>
上一步
</a-button>
<a-button
:loading=
"loading"
type=
"primary"
@
click=
"nextStep"
style=
"margin-left:20px"
>
提交
</a-button>
<a-button
:loading=
"loading"
type=
"primary"
@
click=
"nextStep"
style=
"margin-left:20px"
>
提交
</a-button>
</a-form-item>
</a-form-
model-
item>
</a-form>
</a-form
-model
>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
putAction
,
getAction
}
from
'
@/api/manage
'
import
{
getAction
}
from
'
@/api/manage
'
export
default
{
export
default
{
name
:
"
Step3
"
,
name
:
"
Step3
"
,
// components: {
// components: {
...
@@ -51,59 +32,61 @@
...
@@ -51,59 +32,61 @@
props
:
[
'
userList
'
],
props
:
[
'
userList
'
],
data
()
{
data
()
{
return
{
return
{
model
:{},
layout
:
{
labelCol
:
{
span
:
5
},
wrapperCol
:
{
span
:
19
},
},
loading
:
false
,
loading
:
false
,
form
:
this
.
$form
.
createForm
(
this
),
accountName
:
this
.
userList
.
username
,
accountName
:
this
.
userList
.
username
,
validatorRules
:
{
validatorRules
:
{
username
:
{
rules
:
[{
required
:
true
,
message
:
'
用户名不能为空!
'
}]},
password
:
[{
password
:
{
required
:
true
,
pattern
:
/^
(?=
.*
[
a-zA-Z
])(?=
.*
\d)(?=
.*
[
~!@#$%^&*()_+`
\-
={}:";'<>?,.
\/])
.
{8,}
$/
,
message
:
'
密码由8位数字、大小写字母和特殊符号组成!!
'
rules
:
[{
}],
required
:
true
,
confirmPassword
:
[
pattern
:
/^
(?=
.*
[
a-zA-Z
])(?=
.*
\d)(?=
.*
[
~!@#$%^&*()_+`
\-
={}:";'<>?,.
\/])
.
{8,}
$/
,
{
required
:
true
,
message
:
'
密码不能为空!
'
},
message
:
'
密码由8位数字、大小写字母和特殊符号组成!!
'
{
validator
:
this
.
handlePasswordCheck
}
},
{
validator
:
this
.
handlePasswordLevel
}]
]
},
}
confirmPassword
:
{
rules
:
[{
required
:
true
,
message
:
'
密码不能为空!
'
},
{
validator
:
this
.
handlePasswordCheck
}]},
},
}
}
},
},
methods
:
{
methods
:
{
nextStep
()
{
nextStep
()
{
let
that
=
this
let
that
=
this
that
.
loading
=
true
that
.
loading
=
true
this
.
form
.
validateFields
((
err
,
values
)
=>
{
that
.
$refs
[
'
form
'
].
validate
(
success
=>
{
if
(
!
err
){
if
(
success
===
true
)
{
var
params
=
{}
let
params
=
{
params
.
username
=
this
.
userList
.
username
;
username
:
that
.
userList
.
username
,
params
.
password
=
values
.
password
;
password
:
that
.
model
.
password
,
params
.
smscode
=
this
.
userList
.
smscode
;
smscode
:
that
.
userList
.
smscode
,
params
.
phone
=
this
.
userList
.
phone
;
phone
:
that
.
userList
.
phone
,
}
getAction
(
"
/sys/user/passwordChange
"
,
params
).
then
((
res
)
=>
{
getAction
(
"
/sys/user/passwordChange
"
,
params
).
then
((
res
)
=>
{
if
(
res
.
success
)
{
if
(
res
.
success
)
{
var
userList
=
{
let
userList
=
{
username
:
this
.
userList
.
username
username
:
that
.
userList
.
username
}
}
console
.
log
(
userList
);
console
.
log
(
userList
);
setTimeout
(
function
()
{
setTimeout
(
function
()
{
that
.
$emit
(
'
nextStep
'
,
userList
)
that
.
$emit
(
'
nextStep
'
,
userList
)
},
1500
)
},
1500
)
}
else
{
}
else
{
this
.
passwordFailed
(
res
.
message
);
that
.
passwordFailed
(
res
.
message
);
that
.
loading
=
false
that
.
loading
=
false
}
}
})
})
}
else
{
}
else
{
that
.
loading
=
false
that
.
loading
=
false
}
}
})
})
},
},
prevStep
()
{
prevStep
()
{
this
.
$emit
(
'
prevStep
'
,
this
.
userList
)
this
.
$emit
(
'
prevStep
'
,
this
.
userList
)
},
},
handlePasswordCheck
(
rule
,
value
,
callback
)
{
handlePasswordCheck
(
rule
,
value
,
callback
)
{
let
password
=
this
.
form
.
getFieldValue
(
'
password
'
)
let
password
=
this
.
model
[
'
password
'
]
if
(
value
&&
password
&&
value
.
trim
()
!==
password
.
trim
())
{
if
(
value
&&
password
&&
value
.
trim
()
!==
password
.
trim
())
{
callback
(
new
Error
(
'
两次密码不一致
'
))
callback
(
new
Error
(
'
两次密码不一致
'
))
}
}
...
...
ant-design-vue-jeecg/src/views/user/register/Register.vue
浏览文件 @
69a4a7df
<
template
>
<
template
>
<div
class=
"main user-layout-register"
>
<div
class=
"main user-layout-register"
>
<h3><span>
注册
</span></h3>
<h3><span>
注册
</span></h3>
<a-form
ref=
"formRegister"
:autoFormCreate=
"(form)=>
{this.form = form}" id="formRegister">
<a-form-model
ref=
"form"
:model=
"model"
:rules=
"validatorRules"
>
<a-form-item
<a-form-model-item
prop=
"username"
>
fieldDecoratorId=
"username"
<a-input
v-model=
"model.username"
size=
"large"
type=
"text"
autocomplete=
"false"
placeholder=
"请输入用户名"
/>
:fieldDecoratorOptions=
"
{rules: [{ required: false}, { validator: this.checkUsername }]}">
</a-form-model-item>
<a-input
size=
"large"
type=
"text"
autocomplete=
"false"
placeholder=
"请输入用户名"
></a-input>
</a-form-item>
<a-popover
placement=
"rightTop"
trigger=
"click"
:visible=
"state.passwordLevelChecked"
>
<a-popover
placement=
"rightTop"
trigger=
"click"
:visible=
"state.passwordLevelChecked"
>
<template
slot=
"content"
>
<template
slot=
"content"
>
...
@@ -18,33 +16,30 @@
...
@@ -18,33 +16,30 @@
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<a-form-item
<a-form-model-item
prop=
"password"
>
fieldDecoratorId=
"password"
<a-input
:fieldDecoratorOptions=
"{rules: [{ required: false}, { validator: this.handlePasswordLevel }]}"
>
v-model=
"model.password"
<a-input
size=
"large"
type=
"password"
@
click=
"handlePasswordInputClick"
autocomplete=
"false"
placeholder=
"至少8位密码,区分大小写"
></a-input>
size=
"large"
</a-form-item>
type=
"password"
@
click=
"handlePasswordInputClick"
autocomplete=
"false"
placeholder=
"至少8位密码,区分大小写"
>
</a-input>
</a-form-model-item>
</a-popover>
</a-popover>
<a-form-
item
<a-form-
model-item
prop=
"password2"
>
fieldDecoratorId=
"password2"
<a-input
v-model=
"model.password2"
size=
"large"
type=
"password"
autocomplete=
"false"
placeholder=
"确认密码"
></a-input>
:fieldDecoratorOptions=
"{rules: [{ required: false}, { validator: this.handlePasswordCheck }]}"
>
</a-form-model-item
>
<a-input
size=
"large"
type=
"password"
autocomplete=
"false"
placeholder=
"确认密码"
></a-input>
<a-form-model-item
prop=
"mobile"
>
</a-form-item>
<a-input
v-model=
"model.mobile"
size=
"large"
placeholder=
"11 位手机号"
>
<!-- <a-form-item-->
<!-- fieldDecoratorId="email">-->
<!-- <a-input size="large" type="text" placeholder="邮箱"></a-input>-->
<!-- </a-form-item>-->
<a-form-item
fieldDecoratorId=
"mobile"
:fieldDecoratorOptions=
"{rules: [{ required: false}, { validator: this.handlePhoneCheck }]}"
>
<a-input
size=
"large"
placeholder=
"11 位手机号"
>
<a-select
slot=
"addonBefore"
size=
"large"
defaultValue=
"+86"
>
<a-select
slot=
"addonBefore"
size=
"large"
defaultValue=
"+86"
>
<a-select-option
value=
"+86"
>
+86
</a-select-option>
<a-select-option
value=
"+86"
>
+86
</a-select-option>
<a-select-option
value=
"+87"
>
+87
</a-select-option>
<a-select-option
value=
"+87"
>
+87
</a-select-option>
</a-select>
</a-select>
</a-input>
</a-input>
</a-form-item>
</a-form-
model-
item>
<!--<a-input-group size="large" compact>
<!--<a-input-group size="large" compact>
<a-select style="width: 20%" size="large" defaultValue="+86">
<a-select style="width: 20%" size="large" defaultValue="+86">
<a-select-option value="+86">+86</a-select-option>
<a-select-option value="+86">+86</a-select-option>
...
@@ -55,13 +50,11 @@
...
@@ -55,13 +50,11 @@
<a-row
:gutter=
"16"
>
<a-row
:gutter=
"16"
>
<a-col
class=
"gutter-row"
:span=
"16"
>
<a-col
class=
"gutter-row"
:span=
"16"
>
<a-form-item
<a-form-model-item
prop=
"captcha"
>
fieldDecoratorId=
"captcha"
<a-input
v-model=
"model.captcha"
size=
"large"
type=
"text"
placeholder=
"验证码"
>
:fieldDecoratorOptions=
"{rules: [{ required: false}, { validator: this.handleCaptchaCheck }]}"
>
<a-input
size=
"large"
type=
"text"
placeholder=
"验证码"
>
<a-icon
slot=
"prefix"
type=
"mail"
:style=
"{ color: 'rgba(0,0,0,.25)' }"
/>
<a-icon
slot=
"prefix"
type=
"mail"
:style=
"{ color: 'rgba(0,0,0,.25)' }"
/>
</a-input>
</a-input>
</a-form-item>
</a-form-
model-
item>
</a-col>
</a-col>
<a-col
class=
"gutter-row"
:span=
"8"
>
<a-col
class=
"gutter-row"
:span=
"8"
>
<a-button
<a-button
...
@@ -73,7 +66,7 @@
...
@@ -73,7 +66,7 @@
</a-col>
</a-col>
</a-row>
</a-row>
<a-form-item>
<a-form-
model-
item>
<a-button
<a-button
size=
"large"
size=
"large"
type=
"primary"
type=
"primary"
...
@@ -84,9 +77,9 @@
...
@@ -84,9 +77,9 @@
:disabled=
"registerBtn"
>
注册
:disabled=
"registerBtn"
>
注册
</a-button>
</a-button>
<router-link
class=
"login"
:to=
"{ name: 'login' }"
>
使用已有账户登录
</router-link>
<router-link
class=
"login"
:to=
"{ name: 'login' }"
>
使用已有账户登录
</router-link>
</a-form-item>
</a-form-
model-
item>
</a-form>
</a-form
-model
>
</div>
</div>
</template>
</template>
...
@@ -120,8 +113,29 @@
...
@@ -120,8 +113,29 @@
mixins
:
[
mixinDevice
],
mixins
:
[
mixinDevice
],
data
()
{
data
()
{
return
{
return
{
form
:
null
,
model
:
{},
validatorRules
:
{
username
:
[
{
required
:
false
},
{
validator
:
this
.
checkUsername
}
],
password
:
[
{
required
:
false
},
{
validator
:
this
.
handlePasswordLevel
}
],
password2
:
[
{
required
:
false
},
{
validator
:
this
.
handlePasswordCheck
}
],
mobile
:
[
{
required
:
false
},
{
validator
:
this
.
handlePhoneCheck
}
],
captcha
:
[
{
required
:
false
},
{
validator
:
this
.
handleCaptchaCheck
}
]
},
state
:
{
state
:
{
time
:
60
,
time
:
60
,
smsSendBtn
:
false
,
smsSendBtn
:
false
,
...
@@ -162,7 +176,7 @@
...
@@ -162,7 +176,7 @@
}
}
},
},
handleEmailCheck
(
rule
,
value
,
callback
)
{
handleEmailCheck
(
rule
,
value
,
callback
)
{
var
params
=
{
let
params
=
{
email
:
value
,
email
:
value
,
};
};
checkOnlyUser
(
params
).
then
((
res
)
=>
{
checkOnlyUser
(
params
).
then
((
res
)
=>
{
...
@@ -174,7 +188,6 @@
...
@@ -174,7 +188,6 @@
})
})
},
},
handlePasswordLevel
(
rule
,
value
,
callback
)
{
handlePasswordLevel
(
rule
,
value
,
callback
)
{
let
level
=
0
let
level
=
0
let
reg
=
/^
(?=
.*
[
a-zA-Z
])(?=
.*
\d)(?=
.*
[
~!@#$%^&*()_+`
\-
={}:";'<>?,.
/])
.
{8,}
$/
;
let
reg
=
/^
(?=
.*
[
a-zA-Z
])(?=
.*
\d)(?=
.*
[
~!@#$%^&*()_+`
\-
={}:";'<>?,.
/])
.
{8,}
$/
;
if
(
!
reg
.
test
(
value
))
{
if
(
!
reg
.
test
(
value
))
{
...
@@ -208,7 +221,7 @@
...
@@ -208,7 +221,7 @@
},
},
handlePasswordCheck
(
rule
,
value
,
callback
)
{
handlePasswordCheck
(
rule
,
value
,
callback
)
{
let
password
=
this
.
form
.
getFieldValue
(
'
password
'
)
let
password
=
this
.
model
[
'
password
'
]
//console.log('value', value)
//console.log('value', value)
if
(
value
===
undefined
)
{
if
(
value
===
undefined
)
{
callback
(
new
Error
(
'
请输入密码
'
))
callback
(
new
Error
(
'
请输入密码
'
))
...
@@ -252,9 +265,10 @@
...
@@ -252,9 +265,10 @@
},
},
handleSubmit
()
{
handleSubmit
()
{
this
.
form
.
validateFields
((
err
,
values
)
=>
{
this
.
$refs
[
'
form
'
].
validate
((
success
)
=>
{
if
(
!
err
)
{
if
(
success
==
true
)
{
var
register
=
{
let
values
=
this
.
model
let
register
=
{
username
:
values
.
username
,
username
:
values
.
username
,
password
:
values
.
password
,
password
:
values
.
password
,
phone
:
values
.
mobile
,
phone
:
values
.
mobile
,
...
@@ -274,7 +288,7 @@
...
@@ -274,7 +288,7 @@
getCaptcha
(
e
)
{
getCaptcha
(
e
)
{
e
.
preventDefault
()
e
.
preventDefault
()
let
that
=
this
let
that
=
this
this
.
form
.
validateFields
([
'
mobile
'
],
{
force
:
true
},
(
err
,
values
)
=>
{
this
.
$refs
[
'
form
'
].
validateField
([
'
mobile
'
],
(
err
)
=>
{
if
(
!
err
)
{
if
(
!
err
)
{
this
.
state
.
smsSendBtn
=
true
;
this
.
state
.
smsSendBtn
=
true
;
let
interval
=
window
.
setInterval
(()
=>
{
let
interval
=
window
.
setInterval
(()
=>
{
...
@@ -284,9 +298,9 @@
...
@@ -284,9 +298,9 @@
window
.
clearInterval
(
interval
);
window
.
clearInterval
(
interval
);
}
}
},
1000
);
},
1000
);
const
hide
=
this
.
$message
.
loading
(
'
验证码发送中..
'
,
0
);
const
hide
=
this
.
$message
.
loading
(
'
验证码发送中..
'
,
3
);
const
params
=
{
const
params
=
{
mobile
:
values
.
mobile
,
mobile
:
this
.
model
.
mobile
,
smsmode
:
"
1
"
smsmode
:
"
1
"
};
};
postAction
(
"
/sys/sms
"
,
params
).
then
((
res
)
=>
{
postAction
(
"
/sys/sms
"
,
params
).
then
((
res
)
=>
{
...
...
ant-design-vue-jeecg/src/views/user/register/RegisterResult.vue
浏览文件 @
69a4a7df
...
@@ -21,25 +21,25 @@
...
@@ -21,25 +21,25 @@
},
},
data
()
{
data
()
{
return
{
return
{
form
:
{},
model
:
{},
}
}
},
},
computed
:
{
computed
:
{
email
()
{
email
()
{
let
v
=
this
.
form
?
this
.
form
.
username
||
this
.
form
.
mobile
:
'
XXX
'
let
v
=
this
.
model
?
this
.
model
.
username
||
this
.
model
.
mobile
:
'
XXX
'
let
title
=
`你的账户:
${
v
}
注册成功`
let
title
=
`你的账户:
${
v
}
注册成功`
this
.
username
=
v
;
this
.
username
=
v
;
return
title
return
title
}
}
},
},
created
()
{
created
()
{
this
.
form
=
this
.
$route
.
params
this
.
model
=
this
.
$route
.
params
},
},
methods
:
{
methods
:
{
goHomeHandle
()
{
goHomeHandle
()
{
let
params
=
{};
let
params
=
{};
params
.
username
=
this
.
form
.
username
;
params
.
username
=
this
.
model
.
username
;
params
.
password
=
this
.
form
.
password
;
params
.
password
=
this
.
model
.
password
;
console
.
log
(
params
);
console
.
log
(
params
);
this
.
$router
.
push
({
name
:
'
login
'
,
params
})
this
.
$router
.
push
({
name
:
'
login
'
,
params
})
},
},
...
...
ant-design-vue-jeecg/src/views/user/third/ThirdLogin.vue
浏览文件 @
69a4a7df
...
@@ -37,10 +37,10 @@
...
@@ -37,10 +37,10 @@
</a-button>
</a-button>
</
template
>
</
template
>
<div
class=
"ant-modal-confirm-body-wrapper"
>
<div
class=
"ant-modal-confirm-body-wrapper"
>
<a-form-item>
<a-form-
model-
item>
<span>
绑定手机号
</span>
<span>
绑定手机号
</span>
</a-form-item>
</a-form-
model-
item>
<a-form-item>
<a-form-
model-
item>
<a-input
<a-input
size=
"large"
size=
"large"
type=
"text"
type=
"text"
...
@@ -48,11 +48,11 @@
...
@@ -48,11 +48,11 @@
v-model=
"thirdPhone"
>
v-model=
"thirdPhone"
>
<a-icon
slot=
"prefix"
type=
"mobile"
:style=
"{ color: 'rgba(0,0,0,.25)' }"
/>
<a-icon
slot=
"prefix"
type=
"mobile"
:style=
"{ color: 'rgba(0,0,0,.25)' }"
/>
</a-input>
</a-input>
</a-form-item>
</a-form-
model-
item>
<a-row
:gutter=
"16"
>
<a-row
:gutter=
"16"
>
<a-col
class=
"gutter-row"
:span=
"16"
>
<a-col
class=
"gutter-row"
:span=
"16"
>
<a-form-item>
<a-form-
model-
item>
<a-input
<a-input
size=
"large"
size=
"large"
type=
"text"
type=
"text"
...
@@ -60,7 +60,7 @@
...
@@ -60,7 +60,7 @@
v-model=
"thirdCaptcha"
>
v-model=
"thirdCaptcha"
>
<a-icon
slot=
"prefix"
type=
"mail"
:style=
"{ color: 'rgba(0,0,0,.25)' }"
/>
<a-icon
slot=
"prefix"
type=
"mail"
:style=
"{ color: 'rgba(0,0,0,.25)' }"
/>
</a-input>
</a-input>
</a-form-item>
</a-form-
model-
item>
</a-col>
</a-col>
<a-col
class=
"gutter-row"
:span=
"8"
>
<a-col
class=
"gutter-row"
:span=
"8"
>
<a-button
<a-button
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录