Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
campSite
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨梦雪
campSite
Commits
1c0f3c03
Commit
1c0f3c03
authored
Sep 08, 2023
by
wuwangwolihui
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/yingdi2.0' into yingdi2.0
parents
9eda2c8c
6e42c0ed
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1186 additions
and
958 deletions
+1186
-958
src/request/base/register.js
src/request/base/register.js
+55
-0
src/router/base/login.js
src/router/base/login.js
+1
-1
src/router/index.js
src/router/index.js
+3
-1
src/views/base/login/Index.vue
src/views/base/login/Index.vue
+40
-45
src/views/base/login/Login.vue
src/views/base/login/Login.vue
+457
-266
src/views/base/login/Register.vue
src/views/base/login/Register.vue
+326
-335
src/views/base/login/Reset.vue
src/views/base/login/Reset.vue
+304
-310
No files found.
src/request/base/register.js
0 → 100644
View file @
1c0f3c03
/* eslint-disable */
import
{
request
}
from
'
./network
'
// 通过邮箱验证码注册
export
function
registerEmailCode
(
data
)
{
return
request
({
method
:
'
post
'
,
url
:
'
web/code/registerEmailCode
'
,
params
:
data
})
}
// 通过邮箱验证码找回密码(忘记密码)
export
function
passwordEmailCode
(
data
)
{
return
request
({
method
:
'
post
'
,
url
:
'
web/code/passwordEmailCode
'
,
params
:
data
})
}
// 发送注册时候验证码
export
function
registerCode
(
data
)
{
return
request
({
method
:
'
post
'
,
url
:
'
/web/code/registerCode
'
,
params
:
data
})
}
export
function
passwordCode
(
data
)
{
return
request
({
method
:
'
post
'
,
url
:
'
/web/code/passwordCode
'
,
params
:
data
})
}
// 填写注册信息
export
function
setAccountInfo
(
data
)
{
return
request
({
method
:
'
post
'
,
url
:
'
/web/register/setAccountInfo
'
,
data
})
}
// 获取注册信息
export
function
getAccountInfo
(
data
)
{
return
request
({
method
:
'
post
'
,
url
:
'
/web/register/getAccountInfo
'
,
data
})
}
src/router/base/login.js
View file @
1c0f3c03
...
...
@@ -15,7 +15,7 @@ export default [{
}
},
{
path
:
'
/
r
eset
'
,
path
:
'
/
baseR
eset
'
,
name
:
'
base-reset
'
,
component
:
()
=>
import
(
/* webpackChunkName: "reset" */
'
v/base/login/Reset.vue
'
),
meta
:
{
...
...
src/router/index.js
View file @
1c0f3c03
...
...
@@ -204,7 +204,9 @@ router.beforeEach((to, from, next) => {
toLogin
=
"
/login
"
,
toBaseLogin
=
"
/baseLogin
"
,
toRegister
=
"
/register
"
,
toBaseRegister
=
"
/baseRegister
"
,
toReset
=
"
/reset
"
,
toBaseReset
=
"
/baseReset
"
,
toHome
=
"
/home
"
,
toActive
=
"
/active
"
;
let
toMyInfo
;
...
...
@@ -225,7 +227,7 @@ router.beforeEach((to, from, next) => {
// }
// });
return
next
();
}
else
if
(
to
.
path
==
toBaseLogin
||
to
.
path
==
toMyInfo
||
to
.
path
==
toHome
||
to
.
path
==
toActive
||
to
.
path
.
indexOf
(
toActive
)
!=
-
1
)
{
}
else
if
(
to
.
path
==
toBaseLogin
||
to
.
path
==
toBaseRegister
||
to
.
path
==
toBaseReset
||
to
.
path
==
toMyInfo
||
to
.
path
==
toHome
||
to
.
path
==
toActive
||
to
.
path
.
indexOf
(
toActive
)
!=
-
1
)
{
return
next
();
}
else
if
(
to
.
name
==
"
recruit
"
)
{
code
=
to
.
params
.
code
;
...
...
src/views/base/login/Index.vue
View file @
1c0f3c03
<
template
>
<div
class=
"login-index"
>
<Header></Header>
<div
class=
"big-right"
>
<div
class=
"info-box"
>
<router-view
/>
<router-view/>
</div>
</div>
</div>
</
template
>
<
script
>
/* eslint-disable */
import
Cookie
from
"
js-cookie
"
/* eslint-disable */
import
Header
from
"
@/components/base/Header.vue
"
;
export
default
{
name
:
"
loginBase
"
,
data
()
{
return
{
};
},
created
()
{
this
.
$emit
(
"
getStatus
"
,
false
);
},
methods
:
{
toHome
()
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
$router
.
push
(
"
/
"
+
code
);
}
},
};
export
default
{
name
:
"
loginBase
"
,
data
()
{
return
{};
},
components
:
{
Header
,
},
created
()
{
},
methods
:
{},
};
</
script
>
<
style
scoped
lang=
"scss"
>
.login-index
{
position
:
relative
;
min-width
:
1104px
;
background
:
#f8f8f8
;
display
:
flex
;
flex-flow
:
row
;
min-height
:
100%
;
.big-img
{
width
:
(
500
/
1920
*
100%
);
min-width
:
350px
;
min-height
:
100%
;
img
{
width
:
100%
;
min-height
:
100%
;
<
style
lang=
"scss"
scoped
>
@media
(
min-width
:
1024px
)
{
.login-index
.big-right
.info-box
{
width
:
32%
!
important
;
top
:
60%
!
important
;
}
}
.big-right
{
flex
:
1
;
.login-index
{
position
:
relative
;
.info-box
{
width
:
520px
;
height
:
auto
;
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
min-width
:
1104px
;
background
:
#f8f8f8
;
min-height
:
100%
;
width
:
100%
;
.big-right
{
height
:
calc
(
100%
-
80px
);
.info-box
{
width
:
520px
;
height
:
auto
;
position
:
absolute
;
top
:
50%
;
left
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
}
}
}
}
</
style
>
src/views/base/login/Login.vue
View file @
1c0f3c03
<
template
>
<div
class=
"container"
>
<div
class=
"title"
>
账号密码登录
</div>
<div
class=
"line"
></div>
<el-form
:model=
"loginForm"
:rules=
"loginFormRules"
ref=
"loginFormRef"
class=
"demo-ruleForm"
>
<el-form-item
prop=
"phone"
>
<img
class=
"img_l"
src=
"../../../assets/img/login/username.png"
alt=
""
/>
<el-input
v-model=
"loginForm.phone"
placeholder=
"请输入手机号"
maxlength=
"11"
></el-input>
</el-form-item>
<el-form-item
prop=
"password"
>
<img
class=
"img_l"
src=
"../../../assets/img/login/password.png"
alt=
""
/>
<el-input
v-model=
"loginForm.password"
:type=
"isShowPwd ? 'password' : 'text'"
maxlength=
"20"
placeholder=
"请输入密码"
></el-input>
<img
@
click=
"changePwdStatus()"
v-if=
"!isShowPwd"
class=
"img_r"
src=
"../../../assets/img/login/eye01.png"
alt=
""
/>
<img
@
click=
"changePwdStatus()"
v-if=
"isShowPwd"
class=
"img_r"
src=
"../../../assets/img/login/eye01.png"
alt=
""
/>
</el-form-item>
<el-form-item
style=
"margin: 40px 0 0 0"
></el-form-item>
<el-form-item>
<el-button
@
click=
"submitForm()"
>
登 录
</el-button>
</el-form-item>
<div
class=
"box"
>
<div>
<div
class=
"fr"
@
click=
"register()"
>
还没有账号?立即注册
</div>
<div
class=
"fl"
@
click=
"forgetPwd()"
>
忘记密码?
</div>
<div
class=
"title_Login"
>
<div
v-if=
"changeLogin == 1"
>
<div
@
click=
"toCodeLogin"
class=
"title"
>
<div
:class=
"changeLogin == 2 ? 'change_login' : ''"
>
验证码登录
</div>
</div>
<div
@
click=
"toLogin"
class=
"title"
>
<div
:class=
"changeLogin == 1 ? 'change_login' : ''"
>
账号密码登录
</div>
</div>
</div>
<div
v-else-if=
"changeLogin == 2"
>
<div
@
click=
"toLogin"
class=
"title"
>
<div
:class=
"changeLogin == 1 ? 'change_login' : ''"
>
账号密码登录
</div>
</div>
<div
@
click=
"toCodeLogin"
class=
"title"
>
<div
:class=
"changeLogin == 2 ? 'change_login' : ''"
>
验证码登录
</div>
</div>
<!--
<div
class=
"fc"
>
忘记密码请联系管理员邮箱:ydhdservice@163.com
</div>
-->
</div>
</el-form>
</div>
<div>
<el-form
:model=
"loginForm"
:rules=
"loginFormRules"
class=
"demo-ruleForm"
ref=
"loginFormRef"
>
<el-form-item
prop=
"phone"
ref=
"phone"
>
<img
alt=
""
class=
"img_l"
src=
"../../../assets/img/login/username.png"
/>
<el-input
maxlength=
"11"
placeholder=
"请输入手机号"
v-model=
"loginForm.phone"
></el-input>
</el-form-item>
<el-form-item
:prop=
"changeLogin == 1 ? 'password' : ''"
ref=
"password"
v-if=
"changeLogin == 1"
>
<img
alt=
""
class=
"img_l"
src=
"../../../assets/img/login/password.png"
/>
<el-input
:type=
"isShowPwd ? 'password' : 'text'"
maxlength=
"20"
placeholder=
"请输入密码"
v-model=
"loginForm.password"
></el-input>
<img
@
click=
"changePwdStatus()"
alt=
""
class=
"img_r"
src=
"../../../assets/img/login/eye01.png"
v-if=
"!isShowPwd"
/>
<img
@
click=
"changePwdStatus()"
alt=
""
class=
"img_r"
src=
"../../../assets/img/login/eye01.png"
v-if=
"isShowPwd"
/>
</el-form-item>
<el-form-item
:prop=
"changeLogin == 2 ? 'code' : ''"
ref=
"code"
v-else-if=
"changeLogin == 2"
>
<img
alt=
""
class=
"img_l"
src=
"@/assets/img/reset/code.png"
/>
<el-input
maxlength=
"20"
placeholder=
"请输入短信验证码"
v-model=
"loginForm.code"
></el-input>
<!-- 短信验证码 -->
<div
class=
"phoneCode"
>
<span
@
click=
"getCode"
class=
"code"
v-show=
"showCode"
>
获取验证码
</span
>
<span
class=
"count"
v-show=
"!showCode"
>
{{
count
}}
s
</span>
</div>
</el-form-item>
<el-form-item
style=
"margin: 40px 0 0 0"
></el-form-item>
<el-form-item>
<el-button
@
click=
"submitForm()"
>
登 录
</el-button>
</el-form-item>
<div
class=
"box"
v-if=
"changeLogin == 1"
>
<div>
<div
@
click=
"register()"
class=
"fr"
>
还没有账号?立即注册
</div>
<div
@
click=
"forgetPwd()"
class=
"fl"
>
忘记密码?
</div>
</div>
<!--
<div
class=
"fc"
>
忘记密码请联系管理员邮箱:service@campcenter.cn
</div>
-->
</div>
</el-form>
</div>
</div>
</
template
>
<
script
>
/* eslint-disable */
import
Cookie
from
"
js-cookie
"
;
import
{
login
}
from
"
r/base/login
"
;
import
{
mobileCheck
}
from
"
@/common/utils.js
"
;
export
default
{
name
:
"
base-login
"
,
data
()
{
return
{
isShowPwd
:
true
,
// 控制密码显示隐藏
loginForm
:
{
phone
:
""
,
password
:
""
,
},
// 表单验证规则对象
loginFormRules
:
{
// 对手机号进行校验
phone
:
[
{
required
:
true
,
message
:
"
请输入手机号
"
,
trigger
:
"
blur
"
},
{
validator
:
function
(
rule
,
value
,
callback
)
{
if
(
mobileCheck
(
value
)
===
false
)
{
callback
(
new
Error
(
"
请输入正确的手机号
"
));
}
else
{
callback
();
}
/* eslint-disable */
import
{
login
,
loginCode
}
from
"
r/base/login
"
;
import
{
mobileCheck
}
from
"
@/common/utils.js
"
;
import
{
intervalTime
}
from
"
store/time
"
;
export
default
{
name
:
"
base-login
"
,
data
()
{
return
{
isShowPwd
:
true
,
// 控制密码显示隐藏
// 手机验证短信
showCode
:
true
,
count
:
""
,
timer
:
null
,
codeTime
:
""
,
//手机验证码倒计时时间
loginForm
:
{
phone
:
null
,
password
:
null
,
code
:
null
,
},
// 表单验证规则对象
loginFormRules
:
{
// 对手机号进行校验
phone
:
[
{
required
:
true
,
message
:
"
请输入手机号
"
,
trigger
:
"
blur
"
},
{
validator
:
function
(
rule
,
value
,
callback
)
{
if
(
mobileCheck
(
value
)
===
false
)
{
callback
(
new
Error
(
"
请输入正确的手机号
"
));
}
else
{
callback
();
}
},
trigger
:
"
blur
"
,
},
trigger
:
"
blur
"
,
},
],
// 对密码进行校验
password
:
[
{
required
:
true
,
message
:
"
请输入密码
"
,
transform
:
(
value
)
=>
value
,
trigger
:
"
blur
"
,
},
{
type
:
"
string
"
,
message
:
"
请输入不包含空格的字符
"
,
trigger
:
"
blur
"
,
transform
(
value
)
{
if
(
value
&&
value
.
indexOf
(
"
"
)
===
-
1
)
{
return
value
;
}
else
{
return
false
;
}
],
// 对密码进行校验
password
:
[
{
required
:
true
,
message
:
"
请输入密码
"
,
transform
:
(
value
)
=>
value
,
trigger
:
"
blur
"
,
},
},
{
trigger
:
"
blur
"
,
validator
:
(
rule
,
value
,
callback
)
=>
{
var
passwordreg
=
/^
[
a-zA-Z0-9
]{6,12}
$/
;
// /(?=.*\d)(?=.*[a-zA-Z]).{6,12}/;
if
(
!
passwordreg
.
test
(
value
))
{
callback
(
new
Error
(
"
请输入6-12位,包含数字/字母,
"
));
}
else
{
callback
();
}
{
type
:
"
string
"
,
message
:
"
请输入不包含空格的字符
"
,
trigger
:
"
blur
"
,
transform
(
value
)
{
if
(
value
&&
value
.
indexOf
(
"
"
)
===
-
1
)
{
return
value
;
}
else
{
return
false
;
}
}
,
},
},
],
},
};
},
created
()
{
this
.
$emit
(
"
getStatus
"
,
false
);
},
methods
:
{
// 忘记账号/密码
forgetPwd
()
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
$router
.
push
(
"
/reset?code=
"
+
code
);
{
trigger
:
"
blur
"
,
validator
:
(
rule
,
value
,
callback
)
=>
{
var
passwordreg
=
/^
[
a-zA-Z0-9
]{6,12}
$/
;
// /(?=.*\d)(?=.*[a-zA-Z]).{6,12}/;
if
(
!
passwordreg
.
test
(
value
))
{
callback
(
new
Error
(
"
请输入6-12位,包含数字/字母,
"
));
}
else
{
callback
();
}
},
},
],
// 对验证码进行校验
code
:
[
{
required
:
true
,
message
:
"
请输入验证码
"
,
trigger
:
"
blur
"
},
{
min
:
6
,
max
:
20
,
message
:
"
请输入正确的验证码
"
,
trigger
:
"
blur
"
},
],
},
changeLogin
:
2
,
};
},
created
()
{
this
.
$emit
(
"
getStatus
"
,
false
);
const
endTime
=
window
.
localStorage
.
getItem
(
"
login_code_time
"
);
// 去注册
register
()
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
$router
.
push
(
"
/register?code=
"
+
code
);
},
// 改变密码显示状态
changePwdStatus
()
{
this
.
isShowPwd
=
!
this
.
isShowPwd
;
if
(
endTime
&&
Number
(
endTime
)
>
new
Date
().
getTime
())
{
this
.
loginForm
.
phone
=
phone
;
this
.
intervalHandle
(
new
Date
(),
Number
(
endTime
));
}
this
.
commonApi
(
31
)
},
// 登录
submitForm
()
{
this
.
$refs
[
"
loginFormRef
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
return
;
login
({
methods
:
{
// 定时器倒计时
intervalHandle
(
startTime
,
endTime
)
{
// 时间差
const
timeLag
=
intervalTime
(
startTime
,
endTime
);
console
.
log
(
timeLag
);
if
(
!
this
.
timer
)
{
this
.
count
=
timeLag
-
1
;
this
.
showCode
=
false
;
this
.
timer
=
setInterval
(()
=>
{
if
(
this
.
count
>
0
&&
this
.
count
<=
timeLag
)
{
this
.
count
--
;
}
else
{
this
.
showCode
=
true
;
clearInterval
(
this
.
timer
);
this
.
timer
=
null
;
}
},
1000
);
}
},
// 获取手机验证短信
getCode
()
{
if
(
!
this
.
loginForm
.
phone
)
{
return
this
.
$message
.
error
(
"
请输入手机号
"
);
}
// if (!this.codeTime) {
// return this.$message.error("您已经获取验证码,请去邮箱中进行查看");
// }
// 接口获得验证码
loginCode
({
phone
:
this
.
loginForm
.
phone
,
password
:
this
.
loginForm
.
password
,
}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
login
"
);
console
.
log
(
res
,
"
passwordCode
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
// this.$message.success("登录成功");
// 跳转到报名
const
code
=
this
.
$store
.
state
.
indexIdentity
;
// token存储
window
.
localStorage
.
setItem
(
"
index-token
"
+
code
,
res
.
data
.
token
);
window
.
localStorage
.
setItem
(
"
phone
"
+
code
,
this
.
loginForm
.
phone
);
window
.
localStorage
.
setItem
(
"
email
"
+
code
,
res
.
data
.
email
);
// 报名信息
window
.
localStorage
.
setItem
(
"
camp_name
"
+
code
,
res
.
data
.
cam
.
name
);
//获取主题色
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
codeTime
=
res
.
data
.
data
.
now
*
1000
;
// console.log(this.codeTime)
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
system_color
"
+
code
,
res
.
data
.
cam
.
system_color
"
login_code_time
"
,
res
.
data
.
data
.
now
*
1000
);
this
.
$router
.
replace
(
"
/signUp/examInfo?code=
"
+
code
);
this
.
intervalHandle
(
new
Date
(),
res
.
data
.
data
.
now
*
1000
);
});
},
// 忘记账号/密码
forgetPwd
()
{
this
.
$router
.
push
(
"
/baseReset
"
);
},
// 去注册
register
()
{
this
.
$router
.
push
(
"
/baseRegister
"
);
},
// 改变密码显示状态
changePwdStatus
()
{
this
.
isShowPwd
=
!
this
.
isShowPwd
;
},
toLogin
()
{
this
.
loginForm
=
{};
this
.
changeLogin
=
1
;
this
.
$nextTick
(()
=>
{
this
.
$refs
[
"
loginFormRef
"
].
clearValidate
();
});
},
toCodeLogin
()
{
this
.
loginForm
=
{};
this
.
changeLogin
=
2
;
this
.
$nextTick
(()
=>
{
this
.
$refs
[
"
loginFormRef
"
].
clearValidate
();
});
},
// 登录
submitForm
()
{
this
.
$refs
[
"
loginFormRef
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
return
;
let
obj
=
{};
if
(
this
.
changeLogin
==
1
)
{
obj
.
phone
=
this
.
loginForm
.
phone
;
obj
.
password
=
this
.
loginForm
.
password
;
}
else
{
obj
.
phone
=
this
.
loginForm
.
phone
;
obj
.
code
=
this
.
loginForm
.
code
;
}
login
(
obj
).
then
((
res
)
=>
{
console
.
log
(
res
,
"
login
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
// this.$message.success("登录成功");
// 跳转到报名
// token存储
window
.
localStorage
.
setItem
(
"
base-token
"
,
res
.
data
.
token
);
window
.
localStorage
.
setItem
(
"
phone
"
,
this
.
loginForm
.
phone
);
window
.
localStorage
.
setItem
(
"
email
"
,
res
.
data
.
email
);
// 报名信息
this
.
$router
.
replace
(
"
/signUpList
"
);
});
});
}
);
}
,
},
},
};
};
</
script
>
<
style
scoped
lang=
"scss"
>
.container
{
background
:
#ffffff
;
box-shadow
:
0px
1px
18px
0px
rgba
(
0
,
0
,
0
,
0
.06
);
border-radius
:
8px
;
padding
:
40px
60px
;
margin-top
:
0
;
overflow
:
hidden
;
.title
{
margin
:
19px
0
6px
0
;
width
:
132px
;
height
:
20px
;
font-size
:
22px
;
font-weight
:
500
;
color
:
var
(
--
color
);
line-height
:
20px
;
<
style
lang=
"scss"
scoped
>
@media
screen
and
(
max-width
:
1500px
){
.container
{
height
:
300px
!
important
;
padding
:
30px
37px
70px
37px
!
important
;
.title_Login
{
margin
:
0
!
important
;
.title
{
font-size
:
12px
!
important
;
}
.change_login
{
margin-top
:
5px
!
important
;
font-size
:
18px
!
important
;
}
}
::v-deep
.el-form
{
margin-top
:
20px
!
important
;
}
}
}
.line
{
width
:
125px
;
height
:
3px
;
background
:
var
(
--
color
);
border-radius
:
2px
;
.flex
{
display
:
flex
;
}
.el-form
{
margin-top
:
60px
;
.el-form-item
{
.container
{
height
:
440px
;
background
:
#ffffff
;
box-shadow
:
0px
1px
18px
0px
rgba
(
0
,
0
,
0
,
0
.06
);
border-radius
:
8px
;
padding
:
40px
60px
;
margin-top
:
0
;
overflow
:
hidden
;
.title_Login
{
position
:
relative
;
margin-bottom
:
30px
;
&
:last-child
{
margin
:
0
;
}
margin
:
19px
0
0
0
;
text-align
:
center
;
img
.img_l
{
position
:
absolute
;
left
:
25px
;
top
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
z-index
:
1000
;
}
img
.img_r
{
position
:
absolute
;
right
:
15px
;
top
:
50%
;
transform
:
translate
(
0
,
-50%
);
z-index
:
1000
;
}
::v-deep
.el-input__inner
{
height
:
50px
;
line-height
:
50px
;
padding
:
0
10px
0
50px
;
border-radius
:
0
;
color
:
#4d4d4d
;
border
:
0
;
border-bottom
:
2px
solid
#d9d9d9
;
&
:focus
{
border-bottom-color
:
var
(
--
color
);
}
}
::v-deep
.el-form-item__error
{
color
:
#e0823d
;
.title
{
height
:
20px
;
font-size
:
16px
;
font-weight
:
500
;
color
:
var
(
--
color
);
line-height
:
20px
;
text-align
:
right
;
}
.el-button
{
width
:
100%
;
height
:
60px
;
background
:
var
(
--
color
);
border-radius
:
4px
;
opacity
:
0
.8
;
line-height
:
50px
;
.change_login
{
font-size
:
22px
;
margin-top
:
32px
;
color
:
black
;
text-align
:
center
;
color
:
#fff
;
font-size
:
16px
;
padding
:
0
;
margin
:
30px
0
0
0
;
border
:
none
;
}
}
.box
{
height
:
18px
;
// display: block;
display
:
flex
;
flex-direction
:
column
;
.fl
{
float
:
right
;
height
:
18px
;
line-height
:
18px
;
color
:
#999999
;
margin-top
:
-10px
;
cursor
:
pointer
;
&
:hover
{
color
:
var
(
--
color
);
text-decoration
:
underline
;
.el-form
{
margin-top
:
60px
;
.el-form-item
{
position
:
relative
;
margin-bottom
:
30px
;
&
:last-child
{
margin
:
0
;
}
.phoneCode
{
position
:
absolute
;
z-index
:
999
;
top
:
50%
;
right
:
25px
;
transform
:
translate
(
0
,
-50%
);
cursor
:
pointer
;
.code
{
font-size
:
14px
;
font-weight
:
600
;
color
:
var
(
--
color
);
}
}
img
.img_l
{
position
:
absolute
;
left
:
25px
;
top
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
z-index
:
1000
;
}
img
.img_r
{
position
:
absolute
;
right
:
15px
;
top
:
50%
;
transform
:
translate
(
0
,
-50%
);
z-index
:
1000
;
}
::v-deep
.el-input__inner
{
height
:
50px
;
line-height
:
50px
;
padding
:
0
10px
0
50px
;
border-radius
:
0
;
color
:
#4d4d4d
;
border
:
0
;
border-bottom
:
2px
solid
#d9d9d9
;
&
:focus
{
border-bottom-color
:
var
(
--
color
);
}
}
::v-deep
.el-form-item__error
{
color
:
#e0823d
;
}
.el-button
{
width
:
100%
;
height
:
60px
;
background
:
var
(
--
color
);
border-radius
:
4px
;
opacity
:
0
.8
;
line-height
:
50px
;
text-align
:
center
;
color
:
#fff
;
font-size
:
16px
;
padding
:
0
;
margin
:
30px
0
0
0
;
border
:
none
;
}
}
.fr
{
float
:
left
;
.box
{
height
:
18px
;
line-height
:
18px
;
color
:
#999999
;
margin-top
:
-10px
;
cursor
:
pointer
;
&
:hover
{
color
:
var
(
--
color
);
text-decoration
:
underline
;
// display: block;
display
:
flex
;
flex-direction
:
column
;
.fl
{
float
:
right
;
height
:
18px
;
line-height
:
18px
;
color
:
#999999
;
margin-top
:
-10px
;
cursor
:
pointer
;
&
:hover
{
color
:
var
(
--
color
);
text-decoration
:
underline
;
}
}
.fr
{
float
:
left
;
height
:
18px
;
line-height
:
18px
;
color
:
#999999
;
margin-top
:
-10px
;
cursor
:
pointer
;
&
:hover
{
color
:
var
(
--
color
);
text-decoration
:
underline
;
}
}
.fc
{
font-size
:
4px
;
float
:
right
;
// height: 18px;
line-height
:
18px
;
color
:
#999999
;
margin-top
:
10px
;
// cursor: pointer;
// &:hover {
// color: #563279;
// text-decoration: underline;
// }
}
}
.fc
{
font-size
:
4px
;
float
:
right
;
// height: 18px;
line-height
:
18px
;
color
:
#999999
;
margin-top
:
10px
;
// cursor: pointer;
// &:hover {
// color: #563279;
// text-decoration: underline;
// }
}
}
}
}
</
style
>
src/views/base/login/Register.vue
View file @
1c0f3c03
...
...
@@ -16,46 +16,46 @@
v-model=
"registerForm.phone"
placeholder=
"请输入手机号"
maxlength=
"11"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
prop=
"email"
>
<
!--
<
el-form-item
prop=
"email"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/username.png"
alt=
""
/>
<el-input
v-model=
"registerForm.email"
placeholder=
"请输入邮箱"
autocomplete=
"off"
></el-input>
</el-form-item>
<!--
<el-form-item
prop=
"code"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/code.png"
alt=
""
/>
<el-input
v-model=
"registerForm.code"
placeholder=
"请输入短信验证码"
maxlength=
"20"
autocomplete=
"off"
></el-input>
-->
<!-- 短信验证码 -->
<!--
<div
class=
"phoneCode"
>
<span
class=
"code"
v-show=
"show"
@
click=
"getCode"
>
获取验证码
</span
>
<span
v-show=
"!show"
class=
"count"
>
{{
count
}}
s
</span>
</div>
</el-form-item>
-->
<el-form-item
prop=
"code"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/code.png"
alt=
""
/>
<el-input
v-model=
"registerForm.code"
placeholder=
"请输入
邮箱注册
验证码"
maxlength=
"
6
"
autocomplete=
"off"
placeholder=
"请输入
短信
验证码"
maxlength=
"
20
"
></el-input>
<!-- 短信验证码 -->
<!--
<div
class=
"phoneCode"
>
<span
class=
"code"
v-show=
"show"
@
click=
"getCode"
>
获取验证码
</span
>
<span
v-show=
"!show"
class=
"count"
>
{{
count
}}
s
</span>
</div>
</el-form-item>
-->
<!--
<el-form-item
prop=
"code"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/code.png"
alt=
""
/>
<el-input
v-model=
"registerForm.code"
placeholder=
"请输入邮箱注册验证码"
maxlength=
"6"
></el-input>
-->
<!-- 短信验证码 -->
<div
class=
"phoneCode"
>
<span
class=
"code"
v-show=
"showCode"
@
click=
"getCode"
>
获取邮箱
验证码
</span
>
获取
验证码
</span
>
<span
v-show=
"!showCode"
class=
"count"
>
{{
count
}}
s
</span>
</div>
...
...
@@ -89,7 +89,7 @@
v-model=
"registerForm.rq_password"
placeholder=
"请再次输入登录密码"
maxlength=
"20"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
style=
"margin: 40px 0 0 0"
></el-form-item>
...
...
@@ -106,366 +106,357 @@
</
template
>
<
script
>
/* eslint-disable */
// 请求接口
import
{
registerCode
,
setAccountInfo
,
registerEmailCode
,
}
from
"
r/index/register
"
;
import
{
mobileCheck
,
checkStrong
}
from
"
@/common/utils.js
"
;
import
validator
from
"
common/validator
"
;
import
{
intervalTime
}
from
"
store/time
"
;
/* eslint-disable */
import
{
registerCode
,
setAccountInfo
,
registerEmailCode
,
}
from
"
r/base/register
"
;
import
{
mobileCheck
,
checkStrong
}
from
"
@/common/utils.js
"
;
import
validator
from
"
common/validator
"
;
import
{
intervalTime
}
from
"
store/time
"
;
export
default
{
name
:
"
index
-register
"
,
data
()
{
const
pwdCheck
=
async
(
rule
,
value
,
callback
)
=>
{
if
(
value
!==
this
.
registerForm
.
password
)
{
callback
(
new
Error
(
"
两次输入的密码不一致
"
));
}
else
{
callback
();
}
};
export
default
{
name
:
"
base
-register
"
,
data
()
{
const
pwdCheck
=
async
(
rule
,
value
,
callback
)
=>
{
if
(
value
!==
this
.
registerForm
.
password
)
{
callback
(
new
Error
(
"
两次输入的密码不一致
"
));
}
else
{
callback
();
}
};
return
{
inputType
:
""
,
// 手机验证短信
showCode
:
true
,
count
:
""
,
timer
:
null
,
codeTime
:
""
,
//手机验证码倒计时时间
isShowPwd
:
true
,
// 控制密码显示隐藏
registerForm
:
{
phone
:
""
,
email
:
""
,
code
:
""
,
password
:
""
,
rq_password
:
""
,
},
// 表单验证规则对象
registerRules
:
{
// 对手机号进行校验
phone
:
[
{
required
:
true
,
message
:
"
请输入手机号
"
,
trigger
:
"
blur
"
},
{
validator
:
function
(
rule
,
value
,
callback
)
{
if
(
mobileCheck
(
value
)
===
false
)
{
callback
(
new
Error
(
"
请输入正确的手机号
"
));
}
else
{
callback
();
}
return
{
inputType
:
""
,
// 手机验证短信
showCode
:
true
,
count
:
""
,
timer
:
null
,
codeTime
:
""
,
//手机验证码倒计时时间
isShowPwd
:
true
,
// 控制密码显示隐藏
registerForm
:
{
phone
:
""
,
// email: "",
code
:
""
,
password
:
""
,
rq_password
:
""
,
},
// 表单验证规则对象
registerRules
:
{
// 对手机号进行校验
phone
:
[
{
required
:
true
,
message
:
"
请输入手机号
"
,
trigger
:
"
blur
"
},
{
validator
:
function
(
rule
,
value
,
callback
)
{
if
(
mobileCheck
(
value
)
===
false
)
{
callback
(
new
Error
(
"
请输入正确的手机号
"
));
}
else
{
callback
();
}
},
trigger
:
"
blur
"
,
},
trigger
:
"
blur
"
,
},
],
// 对邮箱验证
email
:
[
{
required
:
true
,
message
:
"
请输入邮箱
"
,
trigger
:
"
blur
"
},
{
validator
:
validator
.
validateEmail
,
trigger
:
"
blur
"
,
},
],
// 对验证码进行校验
code
:
[
{
required
:
true
,
message
:
"
请输入验证码
"
,
trigger
:
"
blur
"
},
{
min
:
6
,
max
:
20
,
message
:
"
请输入正确的验证码
"
,
trigger
:
"
blur
"
},
],
// 对密码进行校验
password
:
[
{
required
:
true
,
message
:
"
请输入密码
"
,
transform
:
(
value
)
=>
value
,
trigger
:
"
blur
"
,
},
{
type
:
"
string
"
,
message
:
"
请输入不包含空格的字符
"
,
trigger
:
"
blur
"
,
transform
(
value
)
{
if
(
value
&&
value
.
indexOf
(
"
"
)
===
-
1
)
{
return
value
;
}
else
{
return
false
;
}
],
// 对邮箱验证
// email: [
// { required: true, message: "请输入邮箱", trigger: "blur" },
// {
// validator: validator.validateEmail,
// trigger: "blur",
// },
// ],
// 对验证码进行校验
code
:
[
{
required
:
true
,
message
:
"
请输入验证码
"
,
trigger
:
"
blur
"
},
{
min
:
6
,
max
:
20
,
message
:
"
请输入正确的验证码
"
,
trigger
:
"
blur
"
},
],
// 对密码进行校验
password
:
[
{
required
:
true
,
message
:
"
请输入密码
"
,
transform
:
(
value
)
=>
value
,
trigger
:
"
blur
"
,
},
},
{
trigger
:
"
blur
"
,
validator
:
(
rule
,
value
,
callback
)
=>
{
var
passwordreg
=
/^
[
a-zA-Z0-9
]{6,12}
$/
;
// /(?=.*\d)(?=.*[a-zA-Z]).{6,12}/;
if
(
!
passwordreg
.
test
(
value
))
{
callback
(
new
Error
(
"
请输入6-12位,包含数字/字母,
"
));
}
else
{
callback
();
}
{
type
:
"
string
"
,
message
:
"
请输入不包含空格的字符
"
,
trigger
:
"
blur
"
,
transform
(
value
)
{
if
(
value
&&
value
.
indexOf
(
"
"
)
===
-
1
)
{
return
value
;
}
else
{
return
false
;
}
}
,
},
},
],
// 对密码进行校验
rq_password
:
[
{
required
:
true
,
message
:
"
请输入确认密码
"
,
trigger
:
"
blur
"
},
{
validator
:
pwdCheck
,
trigger
:
"
blur
"
,
},
],
},
};
},
created
()
{
const
code
=
this
.
$store
.
state
.
indexIdentity
;
const
endTime
=
window
.
localStorage
.
getItem
(
"
register_code_time
"
+
code
);
if
(
endTime
&&
Number
(
endTime
)
>
new
Date
().
getTime
())
{
this
.
resetForm
.
phone
=
phone
;
this
.
intervalHandle
(
new
Date
(),
Number
(
endTime
));
}
},
methods
:
{
// 去注册
toLogin
()
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
$router
.
push
(
"
/login?code=
"
+
code
);
},
// 改变密码显示状态
changePwdStatus
()
{
this
.
isShowPwd
=
!
this
.
isShowPwd
;
{
trigger
:
"
blur
"
,
validator
:
(
rule
,
value
,
callback
)
=>
{
var
passwordreg
=
/^
[
a-zA-Z0-9
]{6,12}
$/
;
// /(?=.*\d)(?=.*[a-zA-Z]).{6,12}/;
if
(
!
passwordreg
.
test
(
value
))
{
callback
(
new
Error
(
"
请输入6-12位,包含数字/字母,
"
));
}
else
{
callback
();
}
},
},
],
// 对密码进行校验
rq_password
:
[
{
required
:
true
,
message
:
"
请输入确认密码
"
,
trigger
:
"
blur
"
},
{
validator
:
pwdCheck
,
trigger
:
"
blur
"
,
},
],
},
};
},
// 定时器倒计时
intervalHandle
(
startTime
,
endTime
)
{
// 时间差
const
timeLag
=
intervalTime
(
startTime
,
endTime
);
console
.
log
(
timeLag
);
if
(
!
this
.
timer
)
{
this
.
count
=
timeLag
-
1
;
this
.
showCode
=
false
;
this
.
timer
=
setInterval
(()
=>
{
if
(
this
.
count
>
0
&&
this
.
count
<=
timeLag
)
{
this
.
count
--
;
}
else
{
this
.
showCode
=
true
;
clearInterval
(
this
.
timer
);
this
.
timer
=
null
;
}
},
1000
);
created
()
{
const
endTime
=
window
.
localStorage
.
getItem
(
"
register_code_time
"
);
if
(
endTime
&&
Number
(
endTime
)
>
new
Date
().
getTime
())
{
this
.
resetForm
.
phone
=
phone
;
this
.
intervalHandle
(
new
Date
(),
Number
(
endTime
));
}
this
.
commonApi
(
30
)
},
// 获取手机验证短信
getCode
()
{
if
(
!
this
.
registerForm
.
email
)
{
return
this
.
$message
.
error
(
"
请输入邮箱
"
);
}
// if (!this.codeTime) {
// return this.$message.error("您已经获取验证码,请去邮箱中进行查看");
// }
// 接口获得验证码
registerEmailCode
({
email
:
this
.
registerForm
.
email
,
}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
passwordCode
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
methods
:
{
// 去注册
toLogin
()
{
this
.
$router
.
push
(
"
/baseLogin
"
);
},
// 改变密码显示状态
changePwdStatus
()
{
this
.
isShowPwd
=
!
this
.
isShowPwd
;
},
// 定时器倒计时
intervalHandle
(
startTime
,
endTime
)
{
// 时间差
const
timeLag
=
intervalTime
(
startTime
,
endTime
);
console
.
log
(
timeLag
);
if
(
!
this
.
timer
)
{
this
.
count
=
timeLag
-
1
;
this
.
showCode
=
false
;
this
.
timer
=
setInterval
(()
=>
{
if
(
this
.
count
>
0
&&
this
.
count
<=
timeLag
)
{
this
.
count
--
;
}
else
{
this
.
showCode
=
true
;
clearInterval
(
this
.
timer
);
this
.
timer
=
null
;
}
},
1000
);
}
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
codeTime
=
res
.
data
.
data
.
now
*
1000
;
// console.log(this.codeTime)
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
register_code_time
"
+
code
,
res
.
data
.
data
.
now
*
1000
);
this
.
intervalHandle
(
new
Date
(),
res
.
data
.
data
.
now
*
1000
);
});
},
// 表单验证
submitForm
()
{
this
.
$refs
[
"
registerFormRef
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
return
;
setAccountInfo
({
},
// 获取手机验证短信
getCode
()
{
if
(
!
this
.
registerForm
.
phone
)
{
return
this
.
$message
.
error
(
"
请输入邮箱
"
);
}
// if (!this.codeTime) {
// return this.$message.error("您已经获取验证码,请去邮箱中进行查看");
// }
// 接口获得验证码
registerCode
({
phone
:
this
.
registerForm
.
phone
,
email
:
this
.
registerForm
.
email
,
code
:
this
.
registerForm
.
code
,
password
:
this
.
registerForm
.
password
,
rq_password
:
this
.
registerForm
.
rq_password
,
}).
then
((
res
)
=>
{
console
.
log
(
res
);
console
.
log
(
res
,
"
passwordCode
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
// this.$message.success(res.data.message);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
// token存储
window
.
localStorage
.
setItem
(
"
index-token
"
+
code
,
res
.
data
.
token
);
window
.
localStorage
.
setItem
(
"
phone
"
+
code
,
this
.
registerForm
.
phone
);
window
.
localStorage
.
setItem
(
"
email
"
+
code
,
this
.
registerForm
.
email
);
//邮箱
// 报名信息
window
.
localStorage
.
setItem
(
"
camp_name
"
+
code
,
res
.
data
.
cam
.
name
);
//获取主题色
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
codeTime
=
res
.
data
.
data
.
now
*
1000
;
// console.log(this.codeTime)
window
.
localStorage
.
setItem
(
"
system_color
"
+
code
,
res
.
data
.
cam
.
system_color
"
register_code_time
"
,
res
.
data
.
data
.
now
*
1000
);
this
.
intervalHandle
(
new
Date
(),
res
.
data
.
data
.
now
*
1000
);
});
},
// 跳转到报名
this
.
$router
.
push
(
"
/signUp/examInfo?code=
"
+
code
);
// 表单验证
submitForm
()
{
this
.
$refs
[
"
registerFormRef
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
return
;
setAccountInfo
({
phone
:
this
.
registerForm
.
phone
,
// email: this.registerForm.email,
code
:
this
.
registerForm
.
code
,
password
:
this
.
registerForm
.
password
,
rq_password
:
this
.
registerForm
.
rq_password
,
}).
then
((
res
)
=>
{
console
.
log
(
res
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
// this.$message.success(res.data.message);
// token存储
window
.
localStorage
.
setItem
(
"
index-token
"
,
res
.
data
.
token
);
window
.
localStorage
.
setItem
(
"
phone
"
,
this
.
registerForm
.
phone
);
// window.localStorage.setItem("email" + code, this.registerForm.email);
// 报名信息
window
.
localStorage
.
setItem
(
"
camp_name
"
,
res
.
data
.
cam
.
name
);
//获取主题色
window
.
localStorage
.
setItem
(
"
system_color
"
,
res
.
data
.
cam
.
system_color
);
// 跳转到报名
this
.
$router
.
replace
(
"
/signUpList
"
);
});
});
}
);
}
,
},
},
};
};
</
script
>
<
style
scoped
lang=
"scss"
>
// 注册输入
.container
{
background
:
#ffffff
;
box-shadow
:
0px
1px
18px
0px
rgba
(
0
,
0
,
0
,
0
.06
);
border-radius
:
8px
;
padding
:
40px
60px
;
margin-top
:
0
;
overflow
:
hidden
;
// 注册输入
.container
{
background
:
#ffffff
;
box-shadow
:
0px
1px
18px
0px
rgba
(
0
,
0
,
0
,
0
.06
);
border-radius
:
8px
;
padding
:
40px
60px
;
margin-top
:
0
;
overflow
:
hidden
;
.title
{
margin
:
19px
0
6px
0
;
width
:
132px
;
height
:
20px
;
font-size
:
22px
;
font-weight
:
500
;
color
:
var
(
--
color
);
line-height
:
20px
;
}
.title
{
//
margin: 19px 0 6px 0;
//
width: 132px;
height
:
20px
;
font-size
:
22px
;
font-weight
:
500
;
color
:
var
(
--
color
);
line-height
:
20px
;
}
.line
{
width
:
103px
;
height
:
3px
;
background
:
var
(
--
color
);
border-radius
:
2px
;
}
//
.line {
//
width: 103px;
//
height: 3px;
//
background: var(--color);
//
border-radius: 2px;
//
}
::v-deep
.el-form
{
margin-top
:
60px
;
::v-deep
.el-form
{
margin-top
:
60px
;
.el-form-item
{
position
:
relative
;
margin-bottom
:
30px
;
.el-form-item
{
position
:
relative
;
margin-bottom
:
30px
;
&
:last-child
{
margin
:
0
;
}
&
:last-child
{
margin
:
0
;
}
.el-form-item__content
{
position
:
relative
;
.el-form-item__content
{
position
:
relative
;
.phoneCode
{
position
:
absolute
;
z-index
:
999
;
top
:
50%
;
right
:
25px
;
transform
:
translate
(
0
,
-50%
);
cursor
:
pointer
;
.phoneCode
{
position
:
absolute
;
z-index
:
999
;
top
:
50%
;
right
:
25px
;
transform
:
translate
(
0
,
-50%
);
cursor
:
pointer
;
.code
{
font-size
:
14px
;
font-weight
:
600
;
color
:
var
(
--
color
);
.code
{
font-size
:
14px
;
font-weight
:
600
;
color
:
var
(
--
color
);
}
}
}
img
.img_l
{
position
:
absolute
;
left
:
25px
;
top
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
z-index
:
1000
;
}
img
.img_l
{
position
:
absolute
;
left
:
25px
;
top
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
z-index
:
1000
;
}
img
.img_r
{
position
:
absolute
;
right
:
15px
;
top
:
50%
;
transform
:
translate
(
0
,
-50%
);
z-index
:
1000
;
}
img
.img_r
{
position
:
absolute
;
right
:
15px
;
top
:
50%
;
transform
:
translate
(
0
,
-50%
);
z-index
:
1000
;
}
.el-input__inner
{
height
:
50px
;
line-height
:
50px
;
padding
:
0
10px
0
50px
;
border-radius
:
0
;
color
:
#4d4d4d
;
border
:
0
;
border-bottom
:
2px
solid
#d9d9d9
;
.el-input__inner
{
height
:
50px
;
line-height
:
50px
;
padding
:
0
10px
0
50px
;
border-radius
:
0
;
color
:
#4d4d4d
;
border
:
0
;
border-bottom
:
2px
solid
#d9d9d9
;
&
:focus
{
border-bottom-color
:
var
(
--
color
);
&
:focus
{
border-bottom-color
:
var
(
--
color
);
}
}
}
.el-form-item__error
{
color
:
#e0823d
;
}
.el-form-item__error
{
color
:
#e0823d
;
}
.el-button
{
width
:
100%
;
height
:
60px
;
background
:
var
(
--
color
);
border-radius
:
4px
;
opacity
:
0
.8
;
line-height
:
50px
;
text-align
:
center
;
color
:
#fff
;
font-size
:
16px
;
padding
:
0
;
margin
:
30px
0
0
0
;
border
:
none
;
.el-button
{
width
:
100%
;
height
:
60px
;
background
:
var
(
--
color
);
border-radius
:
4px
;
opacity
:
0
.8
;
line-height
:
50px
;
text-align
:
center
;
color
:
#fff
;
font-size
:
16px
;
padding
:
0
;
margin
:
30px
0
0
0
;
border
:
none
;
}
}
}
}
.box
{
height
:
18px
;
display
:
block
;
.fr
{
// float: left;
text-align
:
center
;
.box
{
height
:
18px
;
line-height
:
18px
;
color
:
#999999
;
margin-top
:
-10px
;
cursor
:
pointer
;
&
:hover
{
color
:
var
(
--
color
);
text-decoration
:
underline
;
display
:
block
;
.fr
{
// float: left;
text-align
:
center
;
height
:
18px
;
line-height
:
18px
;
color
:
#999999
;
margin-top
:
-10px
;
cursor
:
pointer
;
&
:hover
{
color
:
var
(
--
color
);
text-decoration
:
underline
;
}
}
}
}
}
}
@media
screen
and
(
max-width
:
1601px
)
{
.container
{
right
:
18%
;
@media
screen
and
(
max-width
:
1601px
)
{
.container
{
right
:
18%
;
}
}
}
@media
screen
and
(
max-width
:
1501px
)
{
.container
{
right
:
16%
;
@media
screen
and
(
max-width
:
1501px
)
{
.container
{
right
:
16%
;
}
}
}
@media
screen
and
(
max-width
:
1401px
)
{
.container
{
right
:
14%
;
@media
screen
and
(
max-width
:
1401px
)
{
.container
{
right
:
14%
;
}
}
}
</
style
>
src/views/base/login/Reset.vue
View file @
1c0f3c03
...
...
@@ -16,45 +16,43 @@
v-model=
"resetForm.phone"
placeholder=
"请输入手机号"
maxlength=
"11"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
prop=
"email"
>
<
!--
<
el-form-item
prop=
"email"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/username.png"
alt=
""
/>
<el-input
v-model=
"resetForm.email"
placeholder=
"请输入邮箱"
autocomplete=
"off"
></el-input>
</el-form-item>
<
!--
<
el-form-item
prop=
"code"
>
</el-form-item>
-->
<el-form-item
prop=
"code"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/code.png"
alt=
""
/>
<el-input
v-model=
"resetForm.code"
placeholder=
"请输入短信验证码"
maxlength=
"20"
autocomplete=
"off"
></el-input>
-->
<!-- 短信验证码 -->
<!--
<div
class=
"phoneCode"
>
></el-input>
<!-- 短信验证码 -->
<!--
<div
class=
"phoneCode"
>
<span
class=
"code"
v-show=
"showCode"
@
click=
"getCode"
>
获取验证码
</span
>
<span
v-show=
"!showCode"
class=
"count"
>
{{
count
}}
s
</span>
</div>
</el-form-item>
-->
<el-form-item
prop=
"code"
>
<!--
<el-form-item
prop=
"code"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/code.png"
alt=
""
/>
<el-input
v-model=
"resetForm.code"
placeholder=
"请输入邮箱验证码"
maxlength=
"6"
autocomplete=
"off"
></el-input>
></el-input>
-->
<!-- 短信验证码 -->
<div
class=
"phoneCode"
>
<span
class=
"code"
v-show=
"showCode"
@
click=
"getCode"
>
获取邮箱
验证码
</span
>
获取
验证码
</span
>
<span
v-show=
"!showCode"
class=
"count"
>
{{
count
}}
s
</span>
</div>
...
...
@@ -88,7 +86,6 @@
v-model=
"resetForm.rq_password"
placeholder=
"请再次输入新的登录密码"
maxlength=
"20"
autocomplete=
"off"
></el-input>
</el-form-item>
<el-form-item
style=
"margin: 40px 0 0 0"
></el-form-item>
...
...
@@ -105,352 +102,349 @@
</
template
>
<
script
>
/* eslint-disable */
// 请求接口
import
{
passwordEmailCode
}
from
"
r/index
/register
"
;
import
{
changePassCode
}
from
"
r/index
/login
"
;
import
{
mobileCheck
}
from
"
@/common/utils.js
"
;
import
{
intervalTime
}
from
"
store/time
"
;
import
validator
from
"
common/validator
"
;
/* eslint-disable */
// 请求接口
import
{
passwordCode
}
from
"
r/base
/register
"
;
import
{
changePassCode
}
from
"
r/base
/login
"
;
import
{
mobileCheck
}
from
"
@/common/utils.js
"
;
import
{
intervalTime
}
from
"
store/time
"
;
import
validator
from
"
common/validator
"
;
export
default
{
name
:
"
index-reset
"
,
data
()
{
const
pwdCheck
=
async
(
rule
,
value
,
callback
)
=>
{
if
(
value
!==
this
.
resetForm
.
password
)
{
callback
(
new
Error
(
"
两次输入的密码不一致
"
));
}
else
{
callback
();
}
};
return
{
// 手机验证短信
showCode
:
true
,
count
:
""
,
timer
:
null
,
codeTime
:
""
,
//手机验证码倒计时时间
isShowPwd
:
true
,
// 控制密码显示隐藏
resetForm
:
{
phone
:
""
,
email
:
""
,
code
:
""
,
password
:
""
,
rq_password
:
""
,
},
// 表单验证规则对象
resetRules
:
{
// 对手机号进行校验
phone
:
[
{
required
:
true
,
message
:
"
请输入手机号
"
,
trigger
:
"
blur
"
},
{
validator
:
function
(
rule
,
value
,
callback
)
{
if
(
mobileCheck
(
value
)
===
false
)
{
callback
(
new
Error
(
"
请输入正确的手机号
"
));
}
else
{
callback
();
}
export
default
{
name
:
"
base-reset
"
,
data
()
{
const
pwdCheck
=
async
(
rule
,
value
,
callback
)
=>
{
if
(
value
!==
this
.
resetForm
.
password
)
{
callback
(
new
Error
(
"
两次输入的密码不一致
"
));
}
else
{
callback
();
}
};
return
{
// 手机验证短信
showCode
:
true
,
count
:
""
,
timer
:
null
,
codeTime
:
""
,
//手机验证码倒计时时间
isShowPwd
:
true
,
// 控制密码显示隐藏
resetForm
:
{
phone
:
""
,
// email: "",
code
:
""
,
password
:
""
,
rq_password
:
""
,
},
// 表单验证规则对象
resetRules
:
{
// 对手机号进行校验
phone
:
[
{
required
:
true
,
message
:
"
请输入手机号
"
,
trigger
:
"
blur
"
},
{
validator
:
function
(
rule
,
value
,
callback
)
{
if
(
mobileCheck
(
value
)
===
false
)
{
callback
(
new
Error
(
"
请输入正确的手机号
"
));
}
else
{
callback
();
}
},
trigger
:
"
blur
"
,
},
trigger
:
"
blur
"
,
},
],
// 对邮箱验证
email
:
[
{
required
:
true
,
message
:
"
请输入邮箱
"
,
trigger
:
"
blur
"
},
{
validator
:
validator
.
validateEmail
,
trigger
:
"
blur
"
,
},
],
// 对验证码进行校验
code
:
[
{
required
:
true
,
message
:
"
请输入验证码
"
,
trigger
:
"
blur
"
},
{
min
:
6
,
max
:
20
,
message
:
"
请输入正确的验证码
"
,
trigger
:
"
blur
"
},
],
// 对密码进行校验
password
:
[
{
required
:
true
,
message
:
"
请输入密码
"
,
transform
:
(
value
)
=>
value
,
trigger
:
"
blur
"
,
},
{
type
:
"
string
"
,
message
:
"
请输入不包含空格的字符
"
,
trigger
:
"
blur
"
,
transform
(
value
)
{
if
(
value
&&
value
.
indexOf
(
"
"
)
===
-
1
)
{
return
value
;
}
else
{
return
false
;
}
],
// 对邮箱验证
// email: [
// { required: true, message: "请输入邮箱", trigger: "blur" },
// {
// validator: validator.validateEmail,
// trigger: "blur",
// },
// ],
// 对验证码进行校验
code
:
[
{
required
:
true
,
message
:
"
请输入验证码
"
,
trigger
:
"
blur
"
},
{
min
:
6
,
max
:
20
,
message
:
"
请输入正确的验证码
"
,
trigger
:
"
blur
"
},
],
// 对密码进行校验
password
:
[
{
required
:
true
,
message
:
"
请输入密码
"
,
transform
:
(
value
)
=>
value
,
trigger
:
"
blur
"
,
},
},
{
trigger
:
"
blur
"
,
validator
:
(
rule
,
value
,
callback
)
=>
{
var
passwordreg
=
/^
[
a-zA-Z0-9
]{6,12}
$/
;
// /(?=.*\d)(?=.*[a-zA-Z]).{6,12}/;
if
(
!
passwordreg
.
test
(
value
))
{
callback
(
new
Error
(
"
请输入6-12位,包含数字/字母,
"
));
}
else
{
callback
();
}
{
type
:
"
string
"
,
message
:
"
请输入不包含空格的字符
"
,
trigger
:
"
blur
"
,
transform
(
value
)
{
if
(
value
&&
value
.
indexOf
(
"
"
)
===
-
1
)
{
return
value
;
}
else
{
return
false
;
}
}
,
},
},
],
// 对密码进行校验
rq_password
:
[
{
required
:
true
,
message
:
"
请输入确认密码
"
,
trigger
:
"
blur
"
},
{
validator
:
pwdCheck
,
trigger
:
"
blur
"
,
},
],
},
};
},
created
()
{
const
code
=
this
.
$store
.
state
.
indexIdentity
;
const
endTime
=
window
.
localStorage
.
getItem
(
"
restet_code_time
"
+
code
);
const
phone
=
window
.
localStorage
.
getItem
(
"
restet_code_phone
"
+
code
);
if
(
endTime
&&
Number
(
endTime
)
>
new
Date
().
getTime
())
{
this
.
resetForm
.
phone
=
phone
;
this
.
intervalHandle
(
new
Date
(),
Number
(
endTime
));
}
},
methods
:
{
// 去注册
toLogin
()
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
$router
.
push
(
"
/login?code=
"
+
code
);
},
// 改变密码显示状态
changePwdStatus
()
{
this
.
isShowPwd
=
!
this
.
isShowPwd
;
{
trigger
:
"
blur
"
,
validator
:
(
rule
,
value
,
callback
)
=>
{
var
passwordreg
=
/^
[
a-zA-Z0-9
]{6,12}
$/
;
// /(?=.*\d)(?=.*[a-zA-Z]).{6,12}/;
if
(
!
passwordreg
.
test
(
value
))
{
callback
(
new
Error
(
"
请输入6-12位,包含数字/字母,
"
));
}
else
{
callback
();
}
},
},
],
// 对密码进行校验
rq_password
:
[
{
required
:
true
,
message
:
"
请输入确认密码
"
,
trigger
:
"
blur
"
},
{
validator
:
pwdCheck
,
trigger
:
"
blur
"
,
},
],
},
};
},
// 定时器倒计时
intervalHandle
(
startTime
,
endTime
)
{
// 时间差
const
timeLag
=
intervalTime
(
startTime
,
endTime
);
console
.
log
(
timeLag
);
if
(
!
this
.
timer
)
{
this
.
count
=
timeLag
-
1
;
this
.
showCode
=
false
;
this
.
timer
=
setInterval
(()
=>
{
if
(
this
.
count
>
0
&&
this
.
count
<=
timeLag
)
{
this
.
count
--
;
}
else
{
this
.
showCode
=
true
;
clearInterval
(
this
.
timer
);
this
.
timer
=
null
;
}
},
1000
);
created
()
{
const
endTime
=
window
.
localStorage
.
getItem
(
"
restet_code_time
"
);
const
phone
=
window
.
localStorage
.
getItem
(
"
restet_code_phone
"
);
if
(
endTime
&&
Number
(
endTime
)
>
new
Date
().
getTime
())
{
this
.
resetForm
.
phone
=
phone
;
this
.
intervalHandle
(
new
Date
(),
Number
(
endTime
));
}
},
// 获取手机验证短信
getCode
()
{
if
(
!
this
.
resetForm
.
email
)
{
return
this
.
$message
.
error
(
"
请输入邮箱
"
);
}
// if (!this.codeTime) {
// return this.$message.error("您已经获取验证码,请去邮箱中进行查看");
// }
// 接口获得验证码
passwordEmailCode
({
phone
:
this
.
resetForm
.
phone
,
email
:
this
.
resetForm
.
email
,
}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
passwordCode
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
methods
:
{
// 去注册
toLogin
()
{
this
.
$router
.
push
(
"
/baseLogin
"
);
},
// 改变密码显示状态
changePwdStatus
()
{
this
.
isShowPwd
=
!
this
.
isShowPwd
;
},
// 定时器倒计时
intervalHandle
(
startTime
,
endTime
)
{
// 时间差
const
timeLag
=
intervalTime
(
startTime
,
endTime
);
console
.
log
(
timeLag
);
if
(
!
this
.
timer
)
{
this
.
count
=
timeLag
-
1
;
this
.
showCode
=
false
;
this
.
timer
=
setInterval
(()
=>
{
if
(
this
.
count
>
0
&&
this
.
count
<=
timeLag
)
{
this
.
count
--
;
}
else
{
this
.
showCode
=
true
;
clearInterval
(
this
.
timer
);
this
.
timer
=
null
;
}
},
1000
);
}
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
codeTime
=
res
.
data
.
data
.
now
*
1000
;
// console.log(this.codeTime)
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
restet_code_time
"
+
code
,
res
.
data
.
data
.
now
*
1000
);
this
.
intervalHandle
(
new
Date
(),
res
.
data
.
data
.
now
*
1000
);
});
},
// 表单验证
submitForm
()
{
this
.
$refs
[
"
resetFormRef
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
return
;
changePassCode
({
},
// 获取手机验证短信
getCode
()
{
if
(
!
this
.
resetForm
.
phone
)
{
return
this
.
$message
.
error
(
"
请输入手机号
"
);
}
// if (!this.codeTime) {
// return this.$message.error("您已经获取验证码,请去邮箱中进行查看");
// }
// 接口获得验证码
passwordCode
({
phone
:
this
.
resetForm
.
phone
,
email
:
this
.
resetForm
.
email
,
code
:
this
.
resetForm
.
code
,
password
:
this
.
resetForm
.
password
,
rq_password
:
this
.
resetForm
.
rq_password
,
// email: this.resetForm.email,
}).
then
((
res
)
=>
{
console
.
log
(
res
);
console
.
log
(
res
,
"
passwordCode
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
$message
.
success
(
res
.
data
.
message
);
// token存储
let
code
=
this
.
$store
.
state
.
indexIdentity
;
// window.localStorage.setItem("index-token" + code, res.token);
this
.
codeTime
=
res
.
data
.
data
.
now
*
1000
;
// console.log(this.codeTime)
window
.
localStorage
.
setItem
(
"
restet_code_
phone
"
+
code
,
this
.
resetForm
.
phone
"
restet_code_
time
"
,
res
.
data
.
data
.
now
*
1000
);
this
.
$router
.
push
(
"
/login?code=
"
+
code
);
this
.
intervalHandle
(
new
Date
(),
res
.
data
.
data
.
now
*
1000
);
});
},
// 表单验证
submitForm
()
{
this
.
$refs
[
"
resetFormRef
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
return
;
changePassCode
({
phone
:
this
.
resetForm
.
phone
,
email
:
this
.
resetForm
.
email
,
code
:
this
.
resetForm
.
code
,
password
:
this
.
resetForm
.
password
,
rq_password
:
this
.
resetForm
.
rq_password
,
}).
then
((
res
)
=>
{
console
.
log
(
res
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
$message
.
success
(
res
.
data
.
message
);
// token存储
// window.localStorage.setItem("index-token" + code, res.token);
window
.
localStorage
.
setItem
(
"
restet_code_phone
"
,
this
.
resetForm
.
phone
);
this
.
$router
.
replace
(
"
/baseLogin
"
);
});
});
}
);
}
,
},
},
};
};
</
script
>
<
style
scoped
lang=
"scss"
>
// 注册输入
.container
{
background
:
#ffffff
;
box-shadow
:
0px
1px
18px
0px
rgba
(
0
,
0
,
0
,
0
.06
);
border-radius
:
8px
;
padding
:
40px
60px
;
margin-top
:
0
;
overflow
:
hidden
;
// 注册输入
.container
{
background
:
#ffffff
;
box-shadow
:
0px
1px
18px
0px
rgba
(
0
,
0
,
0
,
0
.06
);
border-radius
:
8px
;
padding
:
40px
60px
;
margin-top
:
0
;
overflow
:
hidden
;
.title
{
margin
:
19px
0
6px
0
;
width
:
132px
;
height
:
20px
;
font-size
:
22px
;
font-weight
:
500
;
color
:
var
(
--
color
);
line-height
:
20px
;
}
.title
{
// margin: 19px 0 6px 0;
// width: 132px;
height
:
20px
;
font-size
:
22px
;
font-weight
:
500
;
color
:
var
(
--
color
);
line-height
:
20px
;
text-align
:
center
;
}
.line
{
width
:
83px
;
height
:
3px
;
background
:
var
(
--
color
);
border-radius
:
2px
;
}
//
.line {
//
width: 83px;
//
height: 3px;
//
background: var(--color);
//
border-radius: 2px;
//
}
::v-deep
.el-form
{
margin-top
:
60px
;
::v-deep
.el-form
{
margin-top
:
60px
;
.el-form-item
{
position
:
relative
;
margin-bottom
:
30px
;
.el-form-item
{
position
:
relative
;
margin-bottom
:
30px
;
&
:last-child
{
margin
:
0
;
}
&
:last-child
{
margin
:
0
;
}
.el-form-item__content
{
position
:
relative
;
.el-form-item__content
{
position
:
relative
;
.phoneCode
{
position
:
absolute
;
z-index
:
999
;
top
:
50%
;
right
:
25px
;
transform
:
translate
(
0
,
-50%
);
cursor
:
pointer
;
.phoneCode
{
position
:
absolute
;
z-index
:
999
;
top
:
50%
;
right
:
25px
;
transform
:
translate
(
0
,
-50%
);
cursor
:
pointer
;
.code
{
font-size
:
14px
;
font-weight
:
600
;
color
:
var
(
--
color
);
.code
{
font-size
:
14px
;
font-weight
:
600
;
color
:
var
(
--
color
);
}
}
}
img
.img_l
{
position
:
absolute
;
left
:
25px
;
top
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
z-index
:
1000
;
}
img
.img_l
{
position
:
absolute
;
left
:
25px
;
top
:
50%
;
transform
:
translate
(
-50%
,
-50%
);
z-index
:
1000
;
}
img
.img_r
{
position
:
absolute
;
right
:
15px
;
top
:
50%
;
transform
:
translate
(
0
,
-50%
);
z-index
:
1000
;
}
img
.img_r
{
position
:
absolute
;
right
:
15px
;
top
:
50%
;
transform
:
translate
(
0
,
-50%
);
z-index
:
1000
;
}
.el-input__inner
{
height
:
50px
;
line-height
:
50px
;
padding
:
0
10px
0
50px
;
border-radius
:
0
;
color
:
#4d4d4d
;
border
:
0
;
border-bottom
:
2px
solid
#d9d9d9
;
.el-input__inner
{
height
:
50px
;
line-height
:
50px
;
padding
:
0
10px
0
50px
;
border-radius
:
0
;
color
:
#4d4d4d
;
border
:
0
;
border-bottom
:
2px
solid
#d9d9d9
;
&
:focus
{
border-bottom-color
:
var
(
--
color
);
&
:focus
{
border-bottom-color
:
var
(
--
color
);
}
}
}
.el-form-item__error
{
color
:
#e0823d
;
}
.el-form-item__error
{
color
:
#e0823d
;
}
.el-button
{
width
:
100%
;
height
:
60px
;
background
:
var
(
--
color
);
border-radius
:
4px
;
opacity
:
0
.8
;
line-height
:
50px
;
text-align
:
center
;
color
:
#fff
;
font-size
:
16px
;
padding
:
0
;
margin
:
30px
0
0
0
;
.el-button
{
width
:
100%
;
height
:
60px
;
background
:
var
(
--
color
);
border-radius
:
4px
;
opacity
:
0
.8
;
line-height
:
50px
;
text-align
:
center
;
color
:
#fff
;
font-size
:
16px
;
padding
:
0
;
margin
:
30px
0
0
0
;
}
}
}
}
.box
{
height
:
18px
;
display
:
block
;
.fr
{
// float: left;
text-align
:
center
;
.box
{
height
:
18px
;
line-height
:
18px
;
color
:
#999999
;
margin-top
:
-10px
;
cursor
:
pointer
;
display
:
block
;
.fr
{
// float: left;
text-align
:
center
;
height
:
18px
;
line-height
:
18px
;
color
:
#999999
;
margin-top
:
-10px
;
cursor
:
pointer
;
&
:hover
{
color
:
var
(
--
color
);
text-decoration
:
underline
;
&
:hover
{
color
:
var
(
--
color
);
text-decoration
:
underline
;
}
}
}
}
}
}
@media
screen
and
(
max-width
:
1601px
)
{
.container
{
right
:
18%
;
@media
screen
and
(
max-width
:
1601px
)
{
.container
{
right
:
18%
;
}
}
}
@media
screen
and
(
max-width
:
1501px
)
{
.container
{
right
:
16%
;
@media
screen
and
(
max-width
:
1501px
)
{
.container
{
right
:
16%
;
}
}
}
@media
screen
and
(
max-width
:
1401px
)
{
.container
{
right
:
14%
;
@media
screen
and
(
max-width
:
1401px
)
{
.container
{
right
:
14%
;
}
}
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment