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
6e42c0ed
Commit
6e42c0ed
authored
Sep 08, 2023
by
杨梦雪
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
登录注册
parent
0d002cae
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 @
6e42c0ed
/* 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 @
6e42c0ed
...
...
@@ -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 @
6e42c0ed
...
...
@@ -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 @
6e42c0ed
<
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 @
6e42c0ed
<
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 @
6e42c0ed
...
...
@@ -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 @
6e42c0ed
...
...
@@ -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