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
279944cb
Commit
279944cb
authored
Sep 15, 2023
by
wuwangwolihui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
营地2.0-整合修改
parent
6ddceae6
Changes
31
Hide whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
2690 additions
and
2528 deletions
+2690
-2528
src/components/Header.vue
src/components/Header.vue
+10
-38
src/components/index/Header.vue
src/components/index/Header.vue
+7
-9
src/components/index/Homework/Header.vue
src/components/index/Homework/Header.vue
+1
-3
src/components/index/SignUp/ConfirmSignUp.vue
src/components/index/SignUp/ConfirmSignUp.vue
+264
-263
src/components/index/SignUp/Header.vue
src/components/index/SignUp/Header.vue
+1
-3
src/components/index/SignUp/pass.vue
src/components/index/SignUp/pass.vue
+171
-175
src/components/index/SignUp/paying.vue
src/components/index/SignUp/paying.vue
+865
-862
src/components/index/SignUp/referInfo.vue
src/components/index/SignUp/referInfo.vue
+8
-11
src/request/base/active.js
src/request/base/active.js
+1
-1
src/request/base/login.js
src/request/base/login.js
+1
-1
src/request/base/register.js
src/request/base/register.js
+1
-4
src/request/index/certificate.js
src/request/index/certificate.js
+2
-4
src/request/index/homework.js
src/request/index/homework.js
+2
-4
src/request/index/info.js
src/request/index/info.js
+23
-25
src/request/index/login.js
src/request/index/login.js
+2
-6
src/request/index/network.js
src/request/index/network.js
+6
-65
src/request/index/pay.js
src/request/index/pay.js
+2
-4
src/request/index/register.js
src/request/index/register.js
+2
-4
src/request/index/signUp.js
src/request/index/signUp.js
+2
-4
src/request/network.js
src/request/network.js
+308
-0
src/router/index.js
src/router/index.js
+3
-6
src/store/mutations.js
src/store/mutations.js
+13
-0
src/views/base/login/Register.vue
src/views/base/login/Register.vue
+1
-2
src/views/base/login/Reset.vue
src/views/base/login/Reset.vue
+2
-4
src/views/index/Info/personalInfo.vue
src/views/index/Info/personalInfo.vue
+3
-4
src/views/index/camp/SignUp.vue
src/views/index/camp/SignUp.vue
+7
-14
src/views/index/camp/homework/refer.vue
src/views/index/camp/homework/refer.vue
+12
-53
src/views/index/login/Login.vue
src/views/index/login/Login.vue
+336
-318
src/views/index/login/Register.vue
src/views/index/login/Register.vue
+334
-335
src/views/index/login/Reset.vue
src/views/index/login/Reset.vue
+299
-304
src/views/index/recruit/Index.vue
src/views/index/recruit/Index.vue
+1
-2
No files found.
src/components/Header.vue
View file @
279944cb
...
...
@@ -69,12 +69,12 @@
},
// 下拉菜单操作
handleCommand
(
command
)
{
if
(
command
==
2
)
{
this
.
logout
();
}
if
(
command
==
1
)
{
this
.
toCenter
();
}
if
(
command
==
2
)
{
this
.
logout
();
}
},
// 去个人中心
toCenter
()
{
...
...
@@ -107,42 +107,13 @@
closeOnClickModal
:
false
,
type
:
"
warning
"
,
}).
catch
((
err
)
=>
err
);
if
(
confirmResult
!==
"
confirm
"
)
if
(
confirmResult
!==
"
confirm
"
)
{
return
this
.
$message
.
info
(
"
您取消了退出
"
);
// 清除本地缓存除了大学logo
if
(
this
.
type
==
1
)
{
// 清除所有缓存
window
.
localStorage
.
clear
();
this
.
isLogin
=
false
;
}
else
if
(
this
.
type
==
2
)
{
// this.reload()
}
// 清除本地缓存 除了特殊缓存
this
.
$store
.
commit
(
'
removeLocalStorage
'
);
if
(
this
.
type
==
2
)
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
removeItem
(
"
doubt_code
"
+
code
);
window
.
localStorage
.
removeItem
(
"
doubt_info
"
+
code
);
window
.
localStorage
.
removeItem
(
"
doubt_check
"
+
code
);
window
.
localStorage
.
removeItem
(
"
camp_name
"
+
code
);
window
.
localStorage
.
removeItem
(
"
system_color
"
+
code
);
window
.
localStorage
.
removeItem
(
"
system_logo
"
+
code
);
window
.
localStorage
.
removeItem
(
"
has_amount
"
+
code
);
window
.
localStorage
.
removeItem
(
"
campsite_id
"
+
code
);
window
.
localStorage
.
removeItem
(
"
order_no
"
+
code
);
window
.
localStorage
.
removeItem
(
"
campindex_type
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bk_pic
"
+
code
);
window
.
localStorage
.
removeItem
(
"
examine_status
"
+
code
);
window
.
localStorage
.
removeItem
(
"
examine_reason
"
+
code
);
window
.
localStorage
.
removeItem
(
"
sign_up_file_18355151517
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
);
window
.
localStorage
.
removeItem
(
"
schoolName
"
+
code
);
window
.
localStorage
.
removeItem
(
"
camp_statement
"
+
code
);
window
.
localStorage
.
removeItem
(
"
transfer_account
"
+
code
);
window
.
localStorage
.
removeItem
(
"
payee
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bank_first
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bank_idcard
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bank_info
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
);
window
.
localStorage
.
removeItem
(
"
index-token-all
"
);
window
.
localStorage
.
removeItem
(
"
index-phone-all
"
);
this
.
isLogin
=
false
;
// this.reload()
if
(
this
.
$store
.
state
.
human
==
1
)
{
await
this
.
$router
.
replace
({
path
:
"
/login
"
,
...
...
@@ -154,8 +125,9 @@
await
this
.
$router
.
replace
(
"
/
"
+
code
);
}
}
this
.
isLogin
=
false
;
this
.
$message
.
success
(
"
退出成功
"
);
await
logout
({});
//
await logout({});
},
// 鼠标移入事件
onMouserEnter
(
val
)
{
...
...
src/components/index/Header.vue
View file @
279944cb
...
...
@@ -52,14 +52,12 @@ export default {
"
system_logo
"
+
this
.
$store
.
state
.
indexIdentity
),
isLogin
:
false
,
phone
:
window
.
localStorage
.
getItem
(
"
phone
"
+
this
.
$store
.
state
.
indexIdentity
),
phone
:
window
.
localStorage
.
getItem
(
"
index-phone-all
"
),
};
},
created
()
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
isLogin
=
!!
localStorage
.
getItem
(
"
index-token
"
+
code
);
this
.
isLogin
=
!!
localStorage
.
getItem
(
"
index-token
-all
"
);
},
methods
:
{
toLogin
()
{
...
...
@@ -97,8 +95,8 @@ export default {
window
.
localStorage
.
removeItem
(
"
doubt_code
"
+
code
);
window
.
localStorage
.
removeItem
(
"
doubt_info
"
+
code
);
window
.
localStorage
.
removeItem
(
"
doubt_check
"
+
code
);
window
.
localStorage
.
removeItem
(
"
index-token
"
+
code
);
window
.
localStorage
.
removeItem
(
"
phone
"
+
code
);
window
.
localStorage
.
removeItem
(
"
index-token
-all
"
);
window
.
localStorage
.
removeItem
(
"
index-phone-all
"
);
window
.
localStorage
.
removeItem
(
"
camp_name
"
+
code
);
window
.
localStorage
.
removeItem
(
"
system_color
"
+
code
);
window
.
localStorage
.
removeItem
(
"
system_logo
"
+
code
);
...
...
@@ -110,8 +108,8 @@ export default {
window
.
localStorage
.
removeItem
(
"
examine_status
"
+
code
);
window
.
localStorage
.
removeItem
(
"
examine_reason
"
+
code
);
window
.
localStorage
.
removeItem
(
"
sign_up_file_
18355151517
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
"
sign_up_file_
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
);
window
.
localStorage
.
removeItem
(
"
schoolName
"
+
code
);
...
...
@@ -121,7 +119,7 @@ export default {
window
.
localStorage
.
removeItem
(
"
bank_first
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bank_idcard
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bank_info
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
"
bank_info
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
);
this
.
isLogin
=
false
;
this
.
reload
()
...
...
src/components/index/Homework/Header.vue
View file @
279944cb
...
...
@@ -30,9 +30,7 @@ export default {
name
:
"
Header
"
,
data
()
{
return
{
phone
:
window
.
localStorage
.
getItem
(
"
phone
"
+
this
.
$store
.
state
.
indexIdentity
),
phone
:
window
.
localStorage
.
getItem
(
"
index-phone-all
"
),
system_logo
:
window
.
localStorage
.
getItem
(
"
system_logo
"
+
this
.
$store
.
state
.
indexIdentity
),
...
...
src/components/index/SignUp/ConfirmSignUp.vue
View file @
279944cb
<
template
>
<
template
>
<el-dialog
title=
"微信支付"
:visible.sync=
"dialogVisible"
...
...
@@ -36,286 +36,287 @@
</
template
>
<
script
>
/* eslint-disable */
import
{
getWxConfig
}
from
"
r/index/pay
"
;
import
{
SERVER_WS_URL
}
from
"
config/server
"
;
import
QRCode
from
"
qrcodejs2
"
;
export
default
{
name
:
"
ConfirmSignUp
"
,
props
:
{
confirmSignUpDialogFu
:
Boolean
,
},
data
()
{
return
{
dialogVisible
:
this
.
confirmSignUpDialogFu
,
message
:
""
,
isShowqr
:
0
,
// 展示支付二维码
token
:
""
,
websocket
:
null
,
//websocket连接
lockReconnect
:
false
,
//是否真正建立连接
timeout
:
28
*
1000
,
//30秒一次心跳
timeoutObj
:
null
,
//心跳心跳倒计时
serverTimeoutObj
:
null
,
//心跳倒计时
timeoutnum
:
null
,
//断开 重连倒计时
has_amount
:
""
,
};
},
created
()
{
this
.
token
=
window
.
localStorage
.
getItem
(
"
index-token
"
+
this
.
$store
.
state
.
indexIdentity
);
this
.
has_amount
=
window
.
localStorage
.
getItem
(
"
has_amount
"
+
this
.
$store
.
state
.
indexIdentity
);
},
methods
:
{
async
confirm
()
{
// console.log(SERVER_WS_URL);
let
{
data
:
res
}
=
await
getWxConfig
({
pay_type
:
3
,
});
// console.log(res);
/* eslint-disable */
import
{
getWxConfig
}
from
"
r/index/pay
"
;
import
{
SERVER_WS_URL
}
from
"
config/server
"
;
import
QRCode
from
"
qrcodejs2
"
;
if
(
res
.
code
!==
200
)
{
if
(
res
.
code
==
400801
)
{
return
this
.
cancelBtn
();
}
this
.
isShowqr
=
2
;
this
.
message
=
res
.
message
;
return
;
}
this
.
isShowqr
=
1
;
console
.
log
(
res
.
code_url
);
this
.
createQrCode
(
res
.
code_url
);
//初始化 websocket 链接
this
.
initWebSocket
();
export
default
{
name
:
"
ConfirmSignUp
"
,
props
:
{
confirmSignUpDialogFu
:
Boolean
,
},
updateCode
()
{
this
.
confirm
();
data
()
{
return
{
dialogVisible
:
this
.
confirmSignUpDialogFu
,
message
:
""
,
isShowqr
:
0
,
// 展示支付二维码
token
:
""
,
websocket
:
null
,
//websocket连接
lockReconnect
:
false
,
//是否真正建立连接
timeout
:
28
*
1000
,
//30秒一次心跳
timeoutObj
:
null
,
//心跳心跳倒计时
serverTimeoutObj
:
null
,
//心跳倒计时
timeoutnum
:
null
,
//断开 重连倒计时
has_amount
:
""
,
};
},
createQrCode
(
qrCode
)
{
this
.
removeQr
();
var
qrcode
=
new
QRCode
(
this
.
$refs
.
qrCodeUrl
,
{
text
:
qrCode
,
// 需要转换为二维码的内容
width
:
140
,
height
:
140
,
colorDark
:
"
#000000
"
,
colorLight
:
"
#ffffff
"
,
correctLevel
:
QRCode
.
CorrectLevel
.
H
,
});
created
()
{
this
.
token
=
window
.
localStorage
.
getItem
(
"
index-token-all
"
);
this
.
has_amount
=
window
.
localStorage
.
getItem
(
"
has_amount
"
+
this
.
$store
.
state
.
indexIdentity
);
},
// 删除二维码img标签
removeQr
()
{
if
(
this
.
$refs
.
qrCodeUrl
)
{
// 获取 父 标签下的所有子节点
let
pObjs
=
this
.
$refs
.
qrCodeUrl
.
childNodes
;
// console.log(pObjs);
for
(
var
i
=
pObjs
.
length
-
1
;
i
>=
0
;
i
--
)
{
// 一定要倒序,正序是删不干净的,可自行尝试
this
.
$refs
.
qrCodeUrl
.
removeChild
(
pObjs
[
i
]);
methods
:
{
async
confirm
()
{
// console.log(SERVER_WS_URL);
let
{
data
:
res
}
=
await
getWxConfig
({
pay_type
:
3
,
});
// console.log(res);
if
(
res
.
code
!==
200
)
{
if
(
res
.
code
==
400801
)
{
return
this
.
cancelBtn
();
}
this
.
isShowqr
=
2
;
this
.
message
=
res
.
message
;
return
;
}
}
},
// 确认,关闭弹框,修改父组件的值
cancelBtn
()
{
// 关闭时,删除二维码img标签
this
.
removeQr
();
this
.
closeWebSocket
();
this
.
dialogVisible
=
false
;
this
.
$emit
(
"
closeCFSUDialog
"
,
this
.
dialogVisible
,
false
);
},
// 初始化 webSocket
initWebSocket
()
{
if
(
typeof
WebSocket
==
"
undefined
"
)
{
this
.
$message
({
showClose
:
true
,
message
:
"
您的浏览器不支持WebSocket
"
,
type
:
"
error
"
,
this
.
isShowqr
=
1
;
console
.
log
(
res
.
code_url
);
this
.
createQrCode
(
res
.
code_url
);
//初始化 websocket 链接
this
.
initWebSocket
();
},
updateCode
()
{
this
.
confirm
();
},
createQrCode
(
qrCode
)
{
this
.
removeQr
();
var
qrcode
=
new
QRCode
(
this
.
$refs
.
qrCodeUrl
,
{
text
:
qrCode
,
// 需要转换为二维码的内容
width
:
140
,
height
:
140
,
colorDark
:
"
#000000
"
,
colorLight
:
"
#ffffff
"
,
correctLevel
:
QRCode
.
CorrectLevel
.
H
,
});
}
else
if
(
!
this
.
dialogVisible
)
{
return
;
}
else
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
if
(
!
this
.
token
||
this
.
token
==
""
)
{
this
.
token
=
window
.
localStorage
.
getItem
(
"
index-token
"
+
code
);
},
// 删除二维码img标签
removeQr
()
{
if
(
this
.
$refs
.
qrCodeUrl
)
{
// 获取 父 标签下的所有子节点
let
pObjs
=
this
.
$refs
.
qrCodeUrl
.
childNodes
;
// console.log(pObjs);
for
(
var
i
=
pObjs
.
length
-
1
;
i
>=
0
;
i
--
)
{
// 一定要倒序,正序是删不干净的,可自行尝试
this
.
$refs
.
qrCodeUrl
.
removeChild
(
pObjs
[
i
]);
}
}
let
token
=
this
.
token
;
const
wssURL
=
SERVER_WS_URL
+
"
/order?token=
"
+
token
+
"
&channel=pc
"
;
this
.
websocket
=
new
WebSocket
(
wssURL
);
// console.log(this.websocket)
// 连接发生错误的回调方法
this
.
websocket
.
onerror
=
this
.
websocketOnerror
;
// 连接成功建立的回调方法
this
.
websocket
.
onopen
=
this
.
websocketOnopen
;
// 接收到消息的回调方法
this
.
websocket
.
onmessage
=
this
.
websocketOnmessage
;
// 连接关闭的回调方法
this
.
websocket
.
onclose
=
this
.
websocketOnclose
;
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
this
.
websocket
.
onbeforeunload
=
this
.
websocketOnbeforeunload
;
// this.websocketSend();
// setTimeout(() => {
// this.websocketSend();
// }, 1000);
}
},
reconnect
()
{
//重新连接
let
that
=
this
;
if
(
!
that
.
dialogVisible
)
{
return
;
}
if
(
that
.
lockReconnect
)
{
return
;
}
that
.
lockReconnect
=
true
;
//没连接上会一直重连,设置延迟避免请求过多
that
.
timeoutnum
&&
clearTimeout
(
that
.
timeoutnum
);
that
.
timeoutnum
=
setTimeout
(
function
()
{
//新连接
that
.
initWebSocket
();
that
.
lockReconnect
=
false
;
},
5000
);
},
reset
()
{
//重置心跳
let
that
=
this
;
//清除时间
clearTimeout
(
that
.
timeoutObj
);
clearTimeout
(
that
.
serverTimeoutObj
);
//重启心跳
that
.
start
();
},
start
()
{
//开启心跳
let
self
=
this
;
self
.
timeoutObj
&&
clearTimeout
(
self
.
timeoutObj
);
self
.
serverTimeoutObj
&&
clearTimeout
(
self
.
serverTimeoutObj
);
self
.
timeoutObj
=
setTimeout
(
function
()
{
//这里发送一个心跳,后端收到后,返回一个心跳消息,
if
(
self
.
websocket
.
readyState
==
1
)
{
//如果连接正常
self
.
websocket
.
send
(
"
heartCheck
"
);
},
// 确认,关闭弹框,修改父组件的值
cancelBtn
()
{
// 关闭时,删除二维码img标签
this
.
removeQr
();
this
.
closeWebSocket
();
this
.
dialogVisible
=
false
;
this
.
$emit
(
"
closeCFSUDialog
"
,
this
.
dialogVisible
,
false
);
},
// 初始化 webSocket
initWebSocket
()
{
if
(
typeof
WebSocket
==
"
undefined
"
)
{
this
.
$message
({
showClose
:
true
,
message
:
"
您的浏览器不支持WebSocket
"
,
type
:
"
error
"
,
});
}
else
if
(
!
this
.
dialogVisible
)
{
return
;
}
else
{
//否则重连
self
.
reconnect
();
let
code
=
this
.
$store
.
state
.
indexIdentity
;
if
(
!
this
.
token
||
this
.
token
==
""
)
{
this
.
token
=
window
.
localStorage
.
getItem
(
"
index-token-all
"
);
}
let
token
=
this
.
token
;
const
wssURL
=
SERVER_WS_URL
+
"
/order?token=
"
+
token
+
"
&channel=pc
"
;
this
.
websocket
=
new
WebSocket
(
wssURL
);
// console.log(this.websocket)
// 连接发生错误的回调方法
this
.
websocket
.
onerror
=
this
.
websocketOnerror
;
// 连接成功建立的回调方法
this
.
websocket
.
onopen
=
this
.
websocketOnopen
;
// 接收到消息的回调方法
this
.
websocket
.
onmessage
=
this
.
websocketOnmessage
;
// 连接关闭的回调方法
this
.
websocket
.
onclose
=
this
.
websocketOnclose
;
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
this
.
websocket
.
onbeforeunload
=
this
.
websocketOnbeforeunload
;
// this.websocketSend();
// setTimeout(() => {
// this.websocketSend();
// }, 1000);
}
self
.
serverTimeoutObj
=
setTimeout
(
function
()
{
//超时关闭
self
.
websocket
.
close
();
},
reconnect
()
{
//重新连接
let
that
=
this
;
if
(
!
that
.
dialogVisible
)
{
return
;
}
if
(
that
.
lockReconnect
)
{
return
;
}
that
.
lockReconnect
=
true
;
//没连接上会一直重连,设置延迟避免请求过多
that
.
timeoutnum
&&
clearTimeout
(
that
.
timeoutnum
);
that
.
timeoutnum
=
setTimeout
(
function
()
{
//新连接
that
.
initWebSocket
();
that
.
lockReconnect
=
false
;
},
5000
);
},
reset
()
{
//重置心跳
let
that
=
this
;
//清除时间
clearTimeout
(
that
.
timeoutObj
);
clearTimeout
(
that
.
serverTimeoutObj
);
//重启心跳
that
.
start
();
},
start
()
{
//开启心跳
let
self
=
this
;
self
.
timeoutObj
&&
clearTimeout
(
self
.
timeoutObj
);
self
.
serverTimeoutObj
&&
clearTimeout
(
self
.
serverTimeoutObj
);
self
.
timeoutObj
=
setTimeout
(
function
()
{
//这里发送一个心跳,后端收到后,返回一个心跳消息,
if
(
self
.
websocket
.
readyState
==
1
)
{
//如果连接正常
self
.
websocket
.
send
(
"
heartCheck
"
);
}
else
{
//否则重连
self
.
reconnect
();
}
self
.
serverTimeoutObj
=
setTimeout
(
function
()
{
//超时关闭
self
.
websocket
.
close
();
},
self
.
timeout
);
},
self
.
timeout
);
},
self
.
timeout
);
},
// 连接发生错误的回调方法
websocketOnerror
()
{
this
.
$message
.
error
(
"
WebSocket连接发生错误
"
);
//重连
this
.
reconnect
();
},
// 连接成功建立的回调方法
websocketOnopen
()
{
this
.
websocketSend
();
// console.log("连接成功建立的回调方法");
//开启心跳
this
.
start
();
},
websocketSend
()
{
//数据发送
let
sendData
=
{
order_no
:
window
.
localStorage
.
getItem
(
"
order_no
"
+
this
.
$store
.
state
.
indexIdentity
),
cam_id
:
window
.
localStorage
.
getItem
(
"
campsite_id
"
+
this
.
$store
.
state
.
indexIdentity
),
token
:
this
.
token
,
};
this
.
websocket
.
send
(
JSON
.
stringify
(
sendData
));
},
// 接收到消息的回调方法
websocketOnmessage
(
event
)
{
console
.
log
(
event
,
"
event
"
);
if
(
event
.
data
!==
"
Opened
"
)
{
//const data = JSON.parse(event.data);
// console.log("接收到消息的回调方法", event.data);
if
(
event
.
data
==
1
)
{
this
.
lockReconnect
=
false
;
},
// 连接发生错误的回调方法
websocketOnerror
()
{
this
.
$message
.
error
(
"
WebSocket连接发生错误
"
);
//重连
this
.
reconnect
();
},
// 连接成功建立的回调方法
websocketOnopen
()
{
this
.
websocketSend
();
// console.log("连接成功建立的回调方法");
//开启心跳
this
.
start
();
},
websocketSend
()
{
//数据发送
let
sendData
=
{
order_no
:
window
.
localStorage
.
getItem
(
"
order_no
"
+
this
.
$store
.
state
.
indexIdentity
),
cam_id
:
window
.
localStorage
.
getItem
(
"
campsite_id
"
+
this
.
$store
.
state
.
indexIdentity
),
token
:
this
.
token
,
};
this
.
websocket
.
send
(
JSON
.
stringify
(
sendData
));
},
// 接收到消息的回调方法
websocketOnmessage
(
event
)
{
console
.
log
(
event
,
"
event
"
);
if
(
event
.
data
!==
"
Opened
"
)
{
//const data = JSON.parse(event.data);
// console.log("接收到消息的回调方法", event.data);
if
(
event
.
data
==
1
)
{
this
.
lockReconnect
=
false
;
this
.
closeWebSocket
();
this
.
dialogVisible
=
false
;
this
.
$emit
(
"
closeCFSUDialog
"
,
this
.
dialogVisible
,
true
);
// status=6,跳转到报名成功页面
// this.$emit("getstatus", res.data.status.status);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
$router
.
push
(
"
/signUp/success?code=
"
+
code
);
}
else
{
//收到服务器信息,心跳重置
this
.
reset
();
this
.
closeWebSocket
();
this
.
dialogVisible
=
false
;
this
.
$emit
(
"
closeCFSUDialog
"
,
this
.
dialogVisible
,
true
);
// status=6,跳转到报名成功页面
// this.$emit("getstatus", res.data.status.status);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
$router
.
push
(
"
/signUp/success?code=
"
+
code
);
}
else
{
//收到服务器信息,心跳重置
this
.
reset
();
}
}
}
},
// 连接关闭的回调方法
websocketOnclose
()
{
// console.log("连接关闭的回调方法");
//重连
this
.
reconnect
();
},
// 连接关闭的回调方法
websocketOnclose
()
{
// console.log("连接关闭的回调方法");
//重连
this
.
reconnect
();
},
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常
websocketOnbeforeunload
()
{
this
.
closeWebSocket
();
// console.log('监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常');
},
// 关闭WebSocket连接
closeWebSocket
()
{
this
.
websocket
&&
this
.
websocket
.
close
();
},
},
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常
websocketOnbeforeunload
()
{
this
.
closeWebSocket
();
// console.log('监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常');
// 页面注销时候调用 避免连接错误
// destroyed() {
// this.closeWebSocket();
// },
watch
:
{
confirmSignUpDialogFu
()
{
this
.
dialogVisible
=
this
.
confirmSignUpDialogFu
;
},
},
// 关闭WebSocket连接
closeWebSocket
()
{
this
.
websocket
&&
this
.
websocket
.
close
();
},
},
// 页面注销时候调用 避免连接错误
// destroyed() {
// this.closeWebSocket();
// },
watch
:
{
confirmSignUpDialogFu
()
{
this
.
dialogVisible
=
this
.
confirmSignUpDialogFu
;
},
},
};
};
</
script
>
<
style
scoped
lang=
"scss"
>
.btn
{
text-align
:
center
;
padding-bottom
:
24px
;
}
.el-button
{
width
:
200px
;
height
:
50px
;
background
:
var
(
--
color
);
border-radius
:
4px
;
opacity
:
0
.8
;
line-height
:
50px
;
text-align
:
center
;
color
:
#fff
;
font-size
:
16px
;
padding
:
0
;
}
.pay_code
{
text-align
:
center
;
.btn
{
text-align
:
center
;
padding-bottom
:
24px
;
}
.money
{
font-size
:
20px
;
font-weight
:
500
;
color
:
var
(
--
color
);
line-height
:
24px
;
.el-button
{
width
:
200px
;
height
:
50px
;
background
:
var
(
--
color
);
border-radius
:
4px
;
opacity
:
0
.8
;
line-height
:
50px
;
text-align
:
center
;
color
:
#fff
;
font-size
:
16px
;
padding
:
0
;
}
}
.img_qr
{
width
:
140px
;
height
:
140px
;
padding
:
10px
;
// border: 1px solid #000;
margin
:
0
auto
;
}
.pay_code
{
text-align
:
center
;
.money
{
font-size
:
20px
;
font-weight
:
500
;
color
:
var
(
--
color
);
line-height
:
24px
;
}
}
.img_qr
{
width
:
140px
;
height
:
140px
;
padding
:
10px
;
// border: 1px solid #000;
margin
:
0
auto
;
}
</
style
>
src/components/index/SignUp/Header.vue
View file @
279944cb
...
...
@@ -33,9 +33,7 @@ export default {
name
:
"
Header
"
,
data
()
{
return
{
phone
:
window
.
localStorage
.
getItem
(
"
phone
"
+
this
.
$store
.
state
.
indexIdentity
),
phone
:
window
.
localStorage
.
getItem
(
"
index-phone-all
"
),
system_logo
:
window
.
localStorage
.
getItem
(
"
system_logo
"
+
this
.
$store
.
state
.
indexIdentity
),
...
...
src/components/index/SignUp/pass.vue
View file @
279944cb
...
...
@@ -8,218 +8,214 @@
<!--
{{
!
this
.
examine_status
==
1
}}
-->
<div
v-if=
"!this.examine_status == 1||!this.examine_status == 2"
>
同学你好,你的报名资料已提交
</div>
<div
v-if=
"!this.examine_status == 1||!this.examine_status == 2"
>
请等待工作人员审核,审核结果将于24小时内发布,请留意网站。
请等待工作人员审核,审核结果将于24小时内发布,请留意网站。
</div>
<div
v-if=
"this.examine_status == 1"
>
同学你好,你的材料已经通过审核,请点击“下一步”完成报名
</div>
<div
v-if=
"this.examine_status == 2"
>
同学你好,你的申请材料未能通过审核。原因是:
{{
this
.
examine_reason
}}
</div>
<div
class=
"btn"
v-show=
"this.examine_status == 2"
>
<el-button
@
click=
"Lasting()"
>
上一步
</el-button>
<el-button
@
click=
"Lasting()"
>
上一步
</el-button>
</div>
<div
class=
"btn"
v-show=
"this.examine_status == 1"
>
<el-button
@
click=
"paying()"
>
下一步
</el-button>
<el-button
@
click=
"paying()"
>
下一步
</el-button>
</div>
</div>
</div>
</
template
>
<
script
>
/* eslint-disable */
/* eslint-disable */
import
{
signUpInit
,
signBack
}
from
"
r/index/signUp
"
;
export
default
{
name
:
"
Pass
"
,
data
()
{
return
{
examine_status
:
window
.
localStorage
.
getItem
(
"
examine_status
"
+
this
.
$store
.
state
.
indexIdentity
),
examine_reason
:
window
.
localStorage
.
getItem
(
"
examine_reason
"
+
this
.
$store
.
state
.
indexIdentity
),
signBackStatus
:
""
,
status_val
:
""
,
status
:
""
,
};
},
created
()
{
this
.
signUpInit
(
this
.
status_val
);
},
import
{
signUpInit
,
signBack
}
from
"
r/index/signUp
"
;
watch
:
{},
methods
:
{
Lasting
()
{
signBack
({}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
signBack
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
// console.log(res.data.status, "signBack.status");
this
.
signBackStatus
=
res
.
data
.
status
;
this
.
$emit
(
"
getstatus
"
,
res
.
data
.
status
);
this
.
$message
.
success
(
res
.
data
.
message
);
});
export
default
{
name
:
"
Pass
"
,
data
()
{
return
{
examine_status
:
window
.
localStorage
.
getItem
(
"
examine_status
"
+
this
.
$store
.
state
.
indexIdentity
),
examine_reason
:
window
.
localStorage
.
getItem
(
"
examine_reason
"
+
this
.
$store
.
state
.
indexIdentity
),
signBackStatus
:
""
,
status_val
:
""
,
status
:
""
,
};
},
paying
()
{
this
.
$emit
(
"
is_next
"
,
1
);
// console.log(is_next);
created
()
{
this
.
signUpInit
(
this
.
status_val
);
},
signUpInit
(
status_val
)
{
// console.log(status_val, "11111");
// console.log(isNexts, "2222");
signUpInit
({}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
signUpInit
"
);
if
(
res
.
data
.
code
!=
200
)
{
if
(
res
.
data
.
code
==
400001
)
{
this
.
status
=
6
;
this
.
type
=
"
success
"
;
watch
:
{},
methods
:
{
Lasting
()
{
signBack
({}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
signBack
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
)
;
}
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
status
=
res
.
data
.
status
;
console
.
log
(
this
.
status
,
"
11111
"
);
// 点击下一步传值给status,更新
if
(
status_val
!=
null
)
{
this
.
status
=
status_val
;
}
else
{
this
.
status
=
res
.
data
.
status
;
// console.log(this.status, "11111");
}
//
doubt_code,doubt_info,doubt_check。0为不填写,1为填写
if
(
this
.
status
==
0
)
{
this
.
type
=
"
examInfo
"
;
}
else
if
(
this
.
status
==
1
)
{
// 是否填写邀请码
if
(
this
.
doubt_code
==
0
)
{
this
.
type
=
"
referInfo
"
;
this
.
status
=
2
;
}
else
{
this
.
type
=
"
invitation
"
;
this
.
status
=
1
;
// console.log(res.data.status, "signBack.status"
);
this
.
signBackStatus
=
res
.
data
.
status
;
this
.
$emit
(
"
getstatus
"
,
res
.
data
.
status
)
;
this
.
$message
.
success
(
res
.
data
.
message
);
});
},
paying
()
{
this
.
$emit
(
"
is_next
"
,
1
);
// console.log(is_next)
;
},
signUpInit
(
status_val
)
{
//
console.log(status_val, "11111");
// console.log(isNexts, "2222")
;
signUpInit
({}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
signUpInit
"
);
if
(
res
.
data
.
code
!=
20
0
)
{
if
(
res
.
data
.
code
==
400001
)
{
this
.
status
=
6
;
this
.
type
=
"
success
"
;
}
return
this
.
$message
.
error
(
res
.
data
.
message
)
;
}
}
else
if
(
this
.
status
==
2
)
{
console
.
log
(
this
.
doubt_info
,
"
doubt_info
"
);
// 是否填写个人资料
if
(
this
.
doubt_info
==
0
)
{
this
.
type
=
"
check
"
;
this
.
status
=
3
;
this
.
status
=
res
.
data
.
status
;
console
.
log
(
this
.
status
,
"
11111
"
);
// 点击下一步传值给status,更新
if
(
status_val
!=
null
)
{
this
.
status
=
status_val
;
}
else
{
this
.
type
=
"
referInfo
"
;
this
.
status
=
2
;
this
.
status
=
res
.
data
.
status
;
// console.log(this.status, "11111")
;
}
}
else
if
(
this
.
status
==
3
)
{
// 是否审核个人资料
if
(
this
.
doubt_check
==
0
)
{
this
.
type
=
"
pay
"
;
this
.
status
=
4
;
}
else
{
// doubt_code,doubt_info,doubt_check。0为不填写,1为填写
if
(
this
.
status
==
0
)
{
this
.
type
=
"
examInfo
"
;
}
else
if
(
this
.
status
==
1
)
{
// 是否填写邀请码
if
(
this
.
doubt_code
==
0
)
{
this
.
type
=
"
referInfo
"
;
this
.
status
=
2
;
}
else
{
this
.
type
=
"
invitation
"
;
this
.
status
=
1
;
}
}
else
if
(
this
.
status
==
2
)
{
console
.
log
(
this
.
doubt_info
,
"
doubt_info
"
);
// 是否填写个人资料
if
(
this
.
doubt_info
==
0
)
{
this
.
type
=
"
check
"
;
this
.
status
=
3
;
}
else
{
this
.
type
=
"
referInfo
"
;
this
.
status
=
2
;
}
}
else
if
(
this
.
status
==
3
)
{
// 是否审核个人资料
if
(
this
.
doubt_check
==
0
)
{
this
.
type
=
"
pay
"
;
this
.
status
=
4
;
}
else
{
this
.
type
=
"
check
"
;
this
.
status
=
3
;
}
}
else
if
(
this
.
status
==
4
)
{
this
.
type
=
"
check
"
;
this
.
status
=
3
;
}
}
else
if
(
this
.
status
==
4
)
{
this
.
type
=
"
check
"
;
this
.
status
=
3
;
// console.log(this.status, "this.status ");
// console.log(this.isNexts ,'this.isNexts ')
// console.log(this.status, "this.status ");
// console.log(this.isNexts ,'this.isNexts ')
if
(
this
.
isNexts
==
1
)
{
// console.log(11111);
if
(
res
.
data
.
examine_status
==
1
)
{
console
.
log
(
333
);
this
.
type
=
"
pay
"
;
this
.
status
=
4
;
}
else
if
(
res
.
data
.
examine_status
==
2
)
{
this
.
type
=
"
referInfo
"
;
this
.
status
=
2
;
// return this.$message.error(res.data.examine_reason);
if
(
this
.
isNexts
==
1
)
{
// console.log(11111);
if
(
res
.
data
.
examine_status
==
1
)
{
console
.
log
(
333
);
this
.
type
=
"
pay
"
;
this
.
status
=
4
;
}
else
if
(
res
.
data
.
examine_status
==
2
)
{
this
.
type
=
"
referInfo
"
;
this
.
status
=
2
;
// return this.$message.error(res.data.examine_reason);
}
}
}
else
if
(
this
.
status
==
5
)
{
this
.
type
=
"
pay
"
;
}
else
if
(
this
.
status
==
6
)
{
this
.
type
=
"
success
"
;
}
}
else
if
(
this
.
status
==
5
)
{
this
.
type
=
"
pay
"
;
}
else
if
(
this
.
status
==
6
)
{
this
.
type
=
"
success
"
;
}
this
.
$emit
(
"
getStatus
"
,
this
.
type
);
this
.
$emit
(
"
getStatus
"
,
this
.
type
);
const
code
=
this
.
$store
.
state
.
indexIdentity
;
//订单支付金额
window
.
localStorage
.
setItem
(
"
has_amount
"
+
code
,
res
.
data
.
has_amount
);
window
.
localStorage
.
setItem
(
"
campsite_id
"
+
code
,
res
.
data
.
campsite_id
);
window
.
localStorage
.
setItem
(
"
order_no
"
+
code
,
res
.
data
.
order_no
);
this
.
examine_status
=
res
.
data
.
examine_status
;
window
.
localStorage
.
setItem
(
"
examine_status
"
+
code
,
res
.
data
.
examine_status
);
//返回错误原因
window
.
localStorage
.
setItem
(
"
examine_reason
"
+
code
,
res
.
data
.
examine_reason
);
//资料审核状态
// window.localStorage.setItem("achievement_path", res.data.achievement_path); //上传的图片
const
aPath
=
res
.
data
.
achievement_path
;
if
(
aPath
)
{
let
arr
=
aPath
.
split
(
"
,
"
);
let
fileList
=
[];
fileList
=
arr
.
map
((
item
)
=>
{
let
obj
=
{
url
:
item
,
};
return
obj
;
});
const
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
sign_up_file_
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
),
JSON
.
stringify
(
fileList
)
);
//上传的图片
}
});
//订单支付金额
window
.
localStorage
.
setItem
(
"
has_amount
"
+
code
,
res
.
data
.
has_amount
);
window
.
localStorage
.
setItem
(
"
campsite_id
"
+
code
,
res
.
data
.
campsite_id
);
window
.
localStorage
.
setItem
(
"
order_no
"
+
code
,
res
.
data
.
order_no
);
this
.
examine_status
=
res
.
data
.
examine_status
;
window
.
localStorage
.
setItem
(
"
examine_status
"
+
code
,
res
.
data
.
examine_status
);
//返回错误原因
window
.
localStorage
.
setItem
(
"
examine_reason
"
+
code
,
res
.
data
.
examine_reason
);
//资料审核状态
const
aPath
=
res
.
data
.
achievement_path
;
if
(
aPath
)
{
let
arr
=
aPath
.
split
(
"
,
"
);
let
fileList
=
[];
fileList
=
arr
.
map
((
item
)
=>
{
let
obj
=
{
url
:
item
,
};
return
obj
;
});
const
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
sign_up_file_
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
),
JSON
.
stringify
(
fileList
));
//上传的图片
}
});
},
},
},
};
};
</
script
>
<
style
lang=
"scss"
scoped
>
@import
"a/scss/btn"
;
@import
"a/scss/index"
;
@import
"a/style"
;
@font-face
{
font-family
:
"icomoon"
;
src
:
url("../../../assets/fonts/icomoon.eot?dcunb6")
;
src
:
url("../../../assets/fonts/icomoon.eot?dcunb6#iefix")
format
(
"embedded-opentype"
)
,
<
style
lang=
"scss"
scoped
>
@import
"a/scss/btn"
;
@import
"a/scss/index"
;
@import
"a/style"
;
@font-face
{
font-family
:
"icomoon"
;
src
:
url("../../../assets/fonts/icomoon.eot?dcunb6")
;
src
:
url("../../../assets/fonts/icomoon.eot?dcunb6#iefix")
format
(
"embedded-opentype"
)
,
url("../../../assets/fonts/icomoon.ttf?dcunb6")
format
(
"truetype"
)
,
url("../../../assets/fonts/icomoon.woff?dcunb6")
format
(
"woff"
)
,
url("../../../assets/fonts/icomoon.svg?dcunb6#icomoon")
format
(
"svg"
);
font-weight
:
normal
;
font-style
:
normal
;
font-display
:
block
;
}
font-weight
:
normal
;
font-style
:
normal
;
font-display
:
block
;
}
.btn
{
padding-bottom
:
0
!
important
;
}
.pass
{
padding
:
0
56px
65px
56px
;
.p_content
{
i
{
font-size
:
100px
;
color
:
var
(
--
color
);
}
div
{
text-align
:
center
;
font-size
:
16px
;
font-weight
:
500
;
color
:
#666666
;
line-height
:
18px
;
}
:nth-child
(
2
)
{
margin
:
24px
0
;
}
:nth-child
(
3
)
{
margin
:
0
0
50px
0
;
.btn
{
padding-bottom
:
0
!
important
;
}
.pass
{
padding
:
0
56px
65px
56px
;
.p_content
{
i
{
font-size
:
100px
;
color
:
var
(
--
color
);
}
div
{
text-align
:
center
;
font-size
:
16px
;
font-weight
:
500
;
color
:
#666666
;
line-height
:
18px
;
}
:nth-child
(
2
)
{
margin
:
24px
0
;
}
:nth-child
(
3
)
{
margin
:
0
0
50px
0
;
}
}
}
}
</
style
>
src/components/index/SignUp/paying.vue
View file @
279944cb
<
template
>
<div
class=
"paying"
>
<div>
<span
class=
"pay_titile"
>
报名信息
</span>
<div
class=
"pay_top"
>
<div>
营地名称:
{{
camp_name
}}
</div>
<div>
真实姓名:
{{
personalInfo
.
name
}}
</div>
<div>
身份证号:
{{
personalInfo
.
id_card
}}
</div>
<!--
<div>
缴费时间:
{{
personalInfo
.
create_time
}}
</div>
-->
<div>
报名费用:
{{
has_amount
}}
元
</div>
</div>
<div
class=
"line"
></div>
<div
class=
"pay-money flex"
>
<div
class=
"paying"
>
<div>
报名费用 :
<span>
¥
{{
has_amount
}}
</span>
</div>
<div
class=
"btn"
>
<el-button
v-if=
"$store.state.human == 1"
@
click=
"paying()"
>
上传缴费截图
</el-button>
<el-button
v-else
@
click=
"paying()"
>
立即支付
</el-button>
</div>
</div>
<span
class=
"pay_titile"
>
报名信息
</span>
<div
class=
"pay_top"
>
<div>
营地名称:
{{
camp_name
}}
</div>
<div>
真实姓名:
{{
personalInfo
.
name
}}
</div>
<div>
身份证号:
{{
personalInfo
.
id_card
}}
</div>
<!--
<div>
缴费时间:
{{
personalInfo
.
create_time
}}
</div>
-->
<div>
报名费用:
{{
has_amount
}}
元
</div>
</div>
<div
class=
"line"
></div>
<div
class=
"pay-money flex"
>
<div>
报名费用 :
<span>
¥
{{
has_amount
}}
</span>
</div>
<div
class=
"btn"
>
<el-button
v-if=
"$store.state.human == 1"
@
click=
"paying()"
>
上传缴费截图
</el-button>
<el-button
v-else
@
click=
"paying()"
>
立即支付
</el-button>
</div>
</div>
<div>
<!-- 清华大学人文学院 “中国现当代文学经典研读”学分课程 -->
<div
class=
"pay_bottom"
v-if=
"
<div>
<!-- 清华大学人文学院 “中国现当代文学经典研读”学分课程 -->
<div
class=
"pay_bottom"
v-if=
"
$store.state.human == 1 &&
$store.state.indexIdentity == '6c6884d1c83040ee8ca17736a8d67b93'
"
>
<div
class=
"cc"
><span
class=
"starIcon"
>
*
</span>
注意事项:
</div>
<div>
请参照清华大学人文学院“中国现当代文学经典研读”学分课程简章中缴费方式。
<span
class=
"cc"
>
汇款或扫码支付后请务必保留付款截图
</span>
。
</div>
<div>
1、银行转账汇款时,请在附言/用途栏中注明 "21069363022 +学员姓名"。
</div>
<div>
2、扫码支付时,请在备注栏中注明“学员姓名”。
</div>
<div>
3、未满18岁的学员,缴费请由家长支付。
</div>
</div>
<!-- 清华历史课“中国历史通解”(第二期)学分课程 -->
<div
class=
"pay_bottom"
v-else-if=
"
>
<div
class=
"cc"
><span
class=
"starIcon"
>
*
</span>
注意事项:
</div>
<div>
请参照清华大学人文学院“中国现当代文学经典研读”学分课程简章中缴费方式。
<span
class=
"cc"
>
汇款或扫码支付后请务必保留付款截图
</span>
。
</div>
<div>
1、银行转账汇款时,请在附言/用途栏中注明 "21069363022 +学员姓名"。
</div>
<div>
2、扫码支付时,请在备注栏中注明“学员姓名”。
</div>
<div>
3、未满18岁的学员,缴费请由家长支付。
</div>
</div>
<!-- 清华历史课“中国历史通解”(第二期)学分课程 -->
<div
class=
"pay_bottom"
v-else-if=
"
$store.state.human == 1 &&
$store.state.indexIdentity == '479205eb2dbf48fcbbeaee710a9b9d24'
"
>
<div
class=
"cc"
><span
class=
"starIcon"
>
*
</span>
注意事项:
</div>
<div>
1、支付成功后请务必保留付款截图。
</div>
<div>
2、银行转账汇款时,请在附言/用途栏中注明“22069363005+学员姓名”。
</div>
<div>
3、未满18岁的学员,缴费请由家长支付。
</div>
<div
class=
"cc"
style=
"margin-top: 10px"
>
<span
class=
"starIcon"
>
*
</span>
汇款信息:
</div>
<div>
收款单位:清华大学
</div>
<div>
帐号:0200004509089131550
</div>
<div>
开户行:工行北京分行海淀西区支行
</div>
<div>
附言/用途:请在附言栏中注明“22069363005+学员姓名”
</div>
>
<div
class=
"cc"
><span
class=
"starIcon"
>
*
</span>
注意事项:
</div>
<div>
1、支付成功后请务必保留付款截图。
</div>
<div>
2、银行转账汇款时,请在附言/用途栏中注明“22069363005+学员姓名”。
</div>
<div>
3、未满18岁的学员,缴费请由家长支付。
</div>
<div
class=
"cc"
style=
"margin-top: 10px"
>
<span
class=
"starIcon"
>
*
</span>
汇款信息:
</div>
<div>
收款单位:清华大学
</div>
<div>
帐号:0200004509089131550
</div>
<div>
开户行:工行北京分行海淀西区支行
</div>
<div>
附言/用途:请在附言栏中注明“22069363005+学员姓名”
</div>
</div>
<div
v-else
class=
"pay_bottom"
>
<div
class=
"cc"
><span
class=
"starIcon"
>
*
</span>
注意事项:
</div>
<div>
1、学生支付完成后请不要立即关闭浏览器,等待支付完成返回本页面,以确认支付完成。
</div>
<div>
2、支付确认后,将不能再修改姓名和身份证号,请在支付前核对信息。
</div>
<div>
3、如果在完成支付后,状态许久未更新为“报名成功”,请仔细核查自己支付账号是否已扣费。
</div>
<div>
4、对于多次缴费的学生,除生效一笔之外其他重复支付的费用会在缴费结束阶段统一退费。
</div>
<!--
<div>
5、网上缴费如有问题,请致电项目组工作人员:XXX-XXXXXXXXX。
</div>
-->
</div>
</div>
</div>
<div
v-else
class=
"pay_bottom"
>
<div
class=
"cc"
><span
class=
"starIcon"
>
*
</span>
注意事项:
</div>
<div>
1、学生支付完成后请不要立即关闭浏览器,等待支付完成返回本页面,以确认支付完成。
</div>
<div>
2、支付确认后,将不能再修改姓名和身份证号,请在支付前核对信息。
</div>
<div>
3、如果在完成支付后,状态许久未更新为“报名成功”,请仔细核查自己支付账号是否已扣费。
</div>
<div>
4、对于多次缴费的学生,除生效一笔之外其他重复支付的费用会在缴费结束阶段统一退费。
<!-- 支付扫码框 -->
<!--
<el-dialog
title=
"微信支付"
:visible.sync=
"dialogVisible"
width=
"20%"
>
<div
class=
"pay_code"
>
<div
class=
"pay_time"
>
支付剩余时间
<span>
15分30秒
</span></div>
<div>
¥150
</div>
<div
class=
"pay_img"
>
<div
class=
"qrcode"
ref=
"qrCodeUrl"
></div>
</div>
<div>
请使用
<span>
微信
</span>
扫一扫,扫描二维码支付
</div>
<div>
手机完成支付后,请等待系统处理,在此之前请勿关闭窗口
</div>
</div>
<!--
<div>
5、网上缴费如有问题,请致电项目组工作人员:XXX-XXXXXXXXX。
</div>
-->
</div>
</div>
</div>
<!-- 支付扫码框 -->
<!--
<el-dialog
title=
"微信支付"
:visible.sync=
"dialogVisible"
width=
"20%"
>
<div
class=
"pay_code"
>
<div
class=
"pay_time"
>
支付剩余时间
<span>
15分30秒
</span></div>
<div>
¥150
</div>
<div
class=
"pay_img"
>
<div
class=
"qrcode"
ref=
"qrCodeUrl"
></div>
</div>
<div>
请使用
<span>
微信
</span>
扫一扫,扫描二维码支付
</div>
<div>
手机完成支付后,请等待系统处理,在此之前请勿关闭窗口
</div>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<div
class=
"btn"
>
<el-button
@
click=
"dialogVisible = false"
>
刷新二维码
</el-button>
</div>
</span>
</el-dialog>
-->
<!-- 提示:打开电脑端后不能切换手机端 -->
<el-dialog
title=
"提示"
:visible.sync=
"dialogPayingVisible"
width=
"30%"
:before-close=
"handleClose"
>
<div
class=
"margin1"
>
如您使用手机报名:点击“确认”后将直接发起微信支付,按照指引完成支付即可。
</div>
<div
class=
"margin1"
>
如您使用电脑报名:点击“确认”后系统将出现支付二维码,使用手机微信或支付宝扫码,按照指引完成支付即可。
</div>
<div>
<div>
为保障支付顺利,请注意:
</div>
<div>
1、请确保支付账户余额充足。
</div>
<div>
2、如因支付失败需再次支付时,务必使用和第一次支付时相同的微信或支付宝账号进行操作。
</div>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
<div
class=
"btn"
>
<el-button
@
click=
"dialogVisible = false"
>
刷新二维码
</el-button>
</div>
</span>
</el-dialog>
-->
<!-- 提示:打开电脑端后不能切换手机端 -->
<el-dialog
title=
"提示"
:visible.sync=
"dialogPayingVisible"
width=
"30%"
:before-close=
"handleClose"
>
<div
class=
"margin1"
>
如您使用手机报名:点击“确认”后将直接发起微信支付,按照指引完成支付即可。
</div>
<div
class=
"margin1"
>
如您使用电脑报名:点击“确认”后系统将出现支付二维码,使用手机微信或支付宝扫码,按照指引完成支付即可。
</div>
<div>
<div>
为保障支付顺利,请注意:
</div>
<div>
1、请确保支付账户余额充足。
</div>
<div>
2、如因支付失败需再次支付时,务必使用和第一次支付时相同的微信或支付宝账号进行操作。
</div>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogPayingVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"toPaying"
>
确 定
</el-button>
</span>
</el-dialog>
<!-- 微信支付宝2选1 -->
<el-dialog
title=
"支付方式"
:visible.sync=
"dialogChoose"
width=
"600px"
:before-close=
"handleClose"
>
<div
class=
"choose"
>
<div
class=
"flex img_choose"
>
<img
src=
"../../../assets/img/paying/weichat.png"
alt=
""
@
click=
"toWeichat"
/>
<img
src=
"../../../assets/img/paying/paybao.png"
alt=
""
@
click=
"toPaybao"
/>
</div>
<div
class=
"text_choose"
>
请选择支付方式
</div>
</div>
</el-dialog>
<!-- 微信支付 -->
<confirm-sign-up
:confirmSignUpDialogFu=
"confirmSignUpDialogFu"
@
closeCFSUDialog=
"closeCFSUDialog"
></confirm-sign-up>
<!-- 上传付款材料 -->
<el-dialog
title=
"银行卡支付"
:visible.sync=
"bankDialogVisible"
width=
"30%"
:before-close=
"handleClose"
>
<div>
收款单位:
{{
payee
}}
</div>
<div>
账号:
{{
bank_idcard
}}
</div>
<div>
开户行:
{{
bank_first
}}
</div>
<div>
上传转账截图
</div>
<div
class=
"image_add"
>
<div
class=
"image_in"
>
<el-upload
:class=
"
{ hide: hideUpload }"
ref="imgUrl"
name="multipartFile"
list-type="picture-card"
:disabled="isUploading || fileList.length >= 1"
action="#"
accept=".jpg,.jpeg,.png"
:limit="1"
:file-list="fileList"
:before-upload="beforeAvatarUpload"
:on-progress="handleUploadProgress"
:on-success="uploadSuccess"
:http-request="uploadPicture"
>
<div
slot=
"file"
slot-scope=
"
{ file }">
<div
v-for=
"(item, idx) in fileList"
:key=
"idx"
>
<img
class=
"el-upload-list__item-thumbnail"
:src=
"file.url"
alt=
""
/>
<span
class=
"el-upload-list__item-actions"
>
</el-dialog>
<!-- 微信支付宝2选1 -->
<el-dialog
title=
"支付方式"
:visible.sync=
"dialogChoose"
width=
"600px"
:before-close=
"handleClose"
>
<div
class=
"choose"
>
<div
class=
"flex img_choose"
>
<img
src=
"../../../assets/img/paying/weichat.png"
alt=
""
@
click=
"toWeichat"
/>
<img
src=
"../../../assets/img/paying/paybao.png"
alt=
""
@
click=
"toPaybao"
/>
</div>
<div
class=
"text_choose"
>
请选择支付方式
</div>
</div>
</el-dialog>
<!-- 微信支付 -->
<confirm-sign-up
:confirmSignUpDialogFu=
"confirmSignUpDialogFu"
@
closeCFSUDialog=
"closeCFSUDialog"
></confirm-sign-up>
<!-- 上传付款材料 -->
<el-dialog
title=
"银行卡支付"
:visible.sync=
"bankDialogVisible"
width=
"30%"
:before-close=
"handleClose"
>
<div>
收款单位:
{{
payee
}}
</div>
<div>
账号:
{{
bank_idcard
}}
</div>
<div>
开户行:
{{
bank_first
}}
</div>
<div>
上传转账截图
</div>
<div
class=
"image_add"
>
<div
class=
"image_in"
>
<el-upload
:class=
"
{ hide: hideUpload }"
ref="imgUrl"
name="multipartFile"
list-type="picture-card"
:disabled="isUploading || fileList.length >= 1"
action="#"
accept=".jpg,.jpeg,.png"
:limit="1"
:file-list="fileList"
:before-upload="beforeAvatarUpload"
:on-progress="handleUploadProgress"
:on-success="uploadSuccess"
:http-request="uploadPicture"
>
<div
slot=
"file"
slot-scope=
"
{ file }">
<div
v-for=
"(item, idx) in fileList"
:key=
"idx"
>
<img
class=
"el-upload-list__item-thumbnail"
:src=
"file.url"
alt=
""
/>
<span
class=
"el-upload-list__item-actions"
>
<span
class=
"el-upload-list__item-preview"
@
click=
"handlePictureCardPreview(file)"
class=
"el-upload-list__item-preview"
@
click=
"handlePictureCardPreview(file)"
>
<i
class=
"el-icon-zoom-in"
></i>
</span>
<span
v-if=
"!disabled"
class=
"el-upload-list__item-delete"
@
click=
"handleDownload(file)"
v-if=
"!disabled"
class=
"el-upload-list__item-delete"
@
click=
"handleDownload(file)"
>
<i
class=
"el-icon-download"
></i>
</span>
<span
v-if=
"!disabled"
class=
"el-upload-list__item-delete"
@
click=
"handleRemove(file)"
v-if=
"!disabled"
class=
"el-upload-list__item-delete"
@
click=
"handleRemove(file)"
>
<i
class=
"el-icon-delete"
></i>
</span>
</span>
</div>
</div>
<i
style=
"font-size: 44px"
class=
"el-icon-circle-plus"
>
</i>
</el-upload>
</div>
</div>
</div>
<i
style=
"font-size: 44px"
class=
"el-icon-circle-plus"
>
</i>
</el-upload>
</div>
<el-dialog
:visible.sync=
"dialogVisible"
>
<img
width=
"100%"
:src=
"resultPicture"
alt=
""
/>
</el-dialog>
</div>
<el-dialog
:visible.sync=
"dialogVisible"
>
<img
width=
"100%"
:src=
"resultPicture"
alt=
""
/>
</el-dialog>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"bankDialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"uploadConfirm"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</el-dialog>
</div>
</
template
>
<
script
>
/* eslint-disable */
import
ConfirmSignUp
from
"
c/index/SignUp/ConfirmSignUp
"
;
import
{
SERVER_WS_URL
}
from
"
@/config/server
"
;
import
{
signUpInit
,
getAccount
,
getBankInfoOss
,
delPayingPic
,
}
from
"
r/index/signUp
"
;
import
{
getWxConfig
}
from
"
r/index/pay
"
;
import
{
upload
}
from
"
r/index/network
"
;
export
default
{
name
:
"
Paying
"
,
components
:
{
ConfirmSignUp
,
},
data
()
{
return
{
dialogPayingVisible
:
false
,
//支付时候tip
dialogChoose
:
false
,
//付款方式选择
confirmSignUpDialogFu
:
false
,
// 控制确认报名弹框的显示与隐藏
bankDialogVisible
:
false
,
//上传银行截图弹框的显示与隐藏
personalInfo
:
{},
camp_name
:
""
,
//营地名称
has_amount
:
""
,
//支付金额
status
:
""
,
//状态
status_wx
:
""
,
//状态
type
:
""
,
//状态
//支付状态判断
transfer_account
:
window
.
localStorage
.
getItem
(
"
transfer_account
"
+
this
.
$store
.
state
.
indexIdentity
),
payee
:
window
.
localStorage
.
getItem
(
"
payee
"
+
this
.
$store
.
state
.
indexIdentity
),
bank_first
:
window
.
localStorage
.
getItem
(
"
bank_first
"
+
this
.
$store
.
state
.
indexIdentity
),
bank_idcard
:
window
.
localStorage
.
getItem
(
"
bank_idcard
"
+
this
.
$store
.
state
.
indexIdentity
),
isUploading
:
false
,
// 图片上传蒙层
dialogVisible
:
false
,
fileList
:
[],
file
:
""
,
file_image
:
{},
resultPicture
:
""
,
disabled
:
false
,
//限制输入框
hideUpload
:
false
,
limitCount
:
1
,
isBank_infoFile
:
false
,
/* eslint-disable */
import
ConfirmSignUp
from
"
c/index/SignUp/ConfirmSignUp
"
;
import
{
SERVER_WS_URL
}
from
"
@/config/server
"
;
import
{
signUpInit
,
getAccount
,
getBankInfoOss
,
delPayingPic
,
}
from
"
r/index/signUp
"
;
import
{
getWxConfig
}
from
"
r/index/pay
"
;
import
{
upload
}
from
"
r/index/network
"
;
export
default
{
name
:
"
Paying
"
,
components
:
{
ConfirmSignUp
,
},
data
()
{
return
{
dialogPayingVisible
:
false
,
//支付时候tip
dialogChoose
:
false
,
//付款方式选择
confirmSignUpDialogFu
:
false
,
// 控制确认报名弹框的显示与隐藏
bankDialogVisible
:
false
,
//上传银行截图弹框的显示与隐藏
personalInfo
:
{},
camp_name
:
""
,
//营地名称
has_amount
:
""
,
//支付金额
status
:
""
,
//状态
status_wx
:
""
,
//状态
type
:
""
,
//状态
//支付状态判断
transfer_account
:
window
.
localStorage
.
getItem
(
"
transfer_account
"
+
this
.
$store
.
state
.
indexIdentity
),
payee
:
window
.
localStorage
.
getItem
(
"
payee
"
+
this
.
$store
.
state
.
indexIdentity
),
bank_first
:
window
.
localStorage
.
getItem
(
"
bank_first
"
+
this
.
$store
.
state
.
indexIdentity
),
bank_idcard
:
window
.
localStorage
.
getItem
(
"
bank_idcard
"
+
this
.
$store
.
state
.
indexIdentity
),
isUploading
:
false
,
// 图片上传蒙层
dialogVisible
:
false
,
fileList
:
[],
file
:
""
,
file_image
:
{},
resultPicture
:
""
,
disabled
:
false
,
//限制输入框
hideUpload
:
false
,
limitCount
:
1
,
isBank_infoFile
:
false
,
};
},
created
()
{
const
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
camp_name
=
window
.
localStorage
.
getItem
(
"
camp_name
"
+
code
);
this
.
has_amount
=
window
.
localStorage
.
getItem
(
"
has_amount
"
+
code
);
// 已上传的银行付款图片
let
bank_infoFile
=
window
.
localStorage
.
getItem
(
"
bank_info
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
);
JSON
.
parse
(
bank_infoFile
).
map
((
i
)
=>
{
if
(
i
.
url
!=
''
)
{
this
.
isBank_infoFile
=
true
}
})
if
(
bank_infoFile
&&
this
.
isBank_infoFile
==
true
&&
JSON
.
parse
(
bank_infoFile
).
length
>
0
)
{
console
.
log
(
JSON
.
parse
(
bank_infoFile
));
this
.
fileList
=
JSON
.
parse
(
bank_infoFile
);
}
this
.
getAccount
();
this
.
commonApi
(
33
)
},
methods
:
{
handleClose
(
done
)
{
this
.
$confirm
(
"
确认关闭?
"
)
.
then
((
_
)
=>
{
done
();
})
.
catch
((
_
)
=>
{
});
},
// 子组件触发,关闭确认报名弹框
closeCFSUDialog
(
val
)
{
console
.
log
(
val
,
"
val
"
);
this
.
confirmSignUpDialogFu
=
val
;
},
toWeichat
()
{
// this.dialogChoose = false;
this
.
confirmSignUpDialogFu
=
true
;
},
toPaybao
()
{
getWxConfig
({
pay_type
:
2
,
}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
getWxConfig
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
/* 此处form就是后台返回接收到的数据 */
let
form
=
res
.
data
.
data
;
console
.
log
(
form
);
// return
let
div
=
document
.
createElement
(
"
div
"
);
div
.
innerHTML
=
form
;
document
.
body
.
appendChild
(
div
);
document
.
forms
[
0
].
acceptCharset
=
"
GBK
"
;
//保持与支付宝默认编码格式一致,如果不一致将会出现:调试错误,请回到请求来源地.
// 重新发起请求,错误代码 invalid-signature 错误原因: 验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配
document
.
forms
[
0
].
submit
();
//
let
alipay_submit
=
document
.
getElementById
(
"
alipay_submit
"
);
div
.
removeChild
(
alipay_submit
);
//初始化 websocket 链接
this
.
initWebSocket
();
});
},
// 初始化 webSocket
initWebSocket
()
{
if
(
typeof
WebSocket
==
"
undefined
"
)
{
this
.
$message
({
showClose
:
true
,
message
:
"
您的浏览器不支持WebSocket
"
,
type
:
"
error
"
,
});
}
else
if
(
!
this
.
dialogChoose
)
{
return
;
}
else
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
if
(
!
this
.
token
||
this
.
token
==
""
)
{
this
.
token
=
window
.
localStorage
.
getItem
(
"
index-token-all
"
);
}
let
token
=
this
.
token
;
var
wssURL
=
SERVER_WS_URL
+
"
/order?token=
"
+
token
+
"
&channel=pc
"
;
console
.
log
(
wssURL
);
this
.
websocket
=
new
WebSocket
(
wssURL
);
console
.
log
(
this
.
websocket
);
// 连接发生错误的回调方法
this
.
websocket
.
onerror
=
this
.
websocketOnerror
;
// 连接成功建立的回调方法
this
.
websocket
.
onopen
=
this
.
websocketOnopen
;
// 接收到消息的回调方法
this
.
websocket
.
onmessage
=
this
.
websocketOnmessage
;
// 连接关闭的回调方法
this
.
websocket
.
onclose
=
this
.
websocketOnclose
;
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
this
.
websocket
.
onbeforeunload
=
this
.
websocketOnbeforeunload
;
// this.websocketSend();
// setTimeout(() => {
// this.websocketSend();
// }, 1000);
}
},
reconnect
()
{
//重新连接
let
that
=
this
;
if
(
!
that
.
dialogChoose
)
{
return
;
}
if
(
that
.
lockReconnect
)
{
return
;
}
that
.
lockReconnect
=
true
;
//没连接上会一直重连,设置延迟避免请求过多
that
.
timeoutnum
&&
clearTimeout
(
that
.
timeoutnum
);
that
.
timeoutnum
=
setTimeout
(
function
()
{
//新连接
that
.
initWebSocket
();
that
.
lockReconnect
=
false
;
},
5000
);
},
reset
()
{
//重置心跳
let
that
=
this
;
//清除时间
clearTimeout
(
that
.
timeoutObj
);
clearTimeout
(
that
.
serverTimeoutObj
);
//重启心跳
that
.
start
();
},
start
()
{
//开启心跳
let
self
=
this
;
self
.
timeoutObj
&&
clearTimeout
(
self
.
timeoutObj
);
self
.
serverTimeoutObj
&&
clearTimeout
(
self
.
serverTimeoutObj
);
self
.
timeoutObj
=
setTimeout
(
function
()
{
//这里发送一个心跳,后端收到后,返回一个心跳消息,
if
(
self
.
websocket
.
readyState
==
1
)
{
//如果连接正常
self
.
websocket
.
send
(
"
heartCheck
"
);
}
else
{
//否则重连
self
.
reconnect
();
}
self
.
serverTimeoutObj
=
setTimeout
(
function
()
{
//超时关闭
self
.
websocket
.
close
();
},
self
.
timeout
);
},
self
.
timeout
);
},
// 连接发生错误的回调方法
websocketOnerror
()
{
this
.
$message
.
error
(
"
WebSocket连接发生错误
"
);
//重连
this
.
reconnect
();
},
// 连接成功建立的回调方法
websocketOnopen
()
{
this
.
websocketSend
();
// console.log("连接成功建立的回调方法");
//开启心跳
this
.
start
();
},
websocketSend
()
{
//数据发送
let
sendData
=
{
order_no
:
window
.
localStorage
.
getItem
(
"
order_no
"
+
this
.
$store
.
state
.
indexIdentity
),
cam_id
:
window
.
localStorage
.
getItem
(
"
campsite_id
"
+
this
.
$store
.
state
.
indexIdentity
),
token
:
this
.
token
,
};
this
.
websocket
.
send
(
JSON
.
stringify
(
sendData
));
},
// 接收到消息的回调方法
websocketOnmessage
(
event
)
{
console
.
log
(
event
,
"
event
"
);
if
(
event
.
data
!==
"
Opened
"
)
{
//const data = JSON.parse(event.data);
// console.log("接收到消息的回调方法", event.data);
if
(
event
.
data
==
1
)
{
this
.
lockReconnect
=
false
;
this
.
closeWebSocket
();
// this.dialogVisible = false;
// this.$emit("closeCFSUDialog", this.dialogVisible, true);
}
else
{
//收到服务器信息,心跳重置
this
.
reset
();
}
}
},
// 连接关闭的回调方法
websocketOnclose
()
{
// console.log("连接关闭的回调方法");
//重连
this
.
reconnect
();
},
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常
websocketOnbeforeunload
()
{
this
.
closeWebSocket
();
// console.log('监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常');
},
// 关闭WebSocket连接
closeWebSocket
()
{
this
.
websocket
&&
this
.
websocket
.
close
();
},
// 立即支付-按钮
paying
()
{
console
.
log
(
this
.
$store
.
state
);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
console
.
log
(
code
==
"
3c7e84455750447799e4b70bda5f4493
"
)
if
(
code
==
"
3c7e84455750447799e4b70bda5f4493
"
)
{
console
.
log
(
'
1111
'
)
this
.
toPaying
();
}
else
{
this
.
dialogPayingVisible
=
true
;
}
},
toPaying
()
{
this
.
commonApi
(
34
)
this
.
dialogPayingVisible
=
false
;
if
(
this
.
has_amount
==
0
)
{
getWxConfig
({
pay_type
:
3
}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
signUpInit
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
$message
.
success
(
res
.
data
.
err_msg
);
});
this
.
$emit
(
"
getstatus
"
,
6
);
}
else
{
// transfer_account 判断微信支付宝或者银行卡支付
if
(
this
.
transfer_account
==
0
)
{
this
.
dialogChoose
=
true
;
}
else
{
this
.
bankDialogVisible
=
true
;
console
.
log
(
this
.
fileList
);
console
.
log
(
this
.
fileList
!=
[]);
if
(
this
.
fileList
.
length
>=
1
)
{
this
.
hideUpload
=
true
;
}
}
}
// setTimeout(this.signUpInit(this.status_wx), 1000);
},
signUpInit
()
{
signUpInit
({}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
signUpInit
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
status
=
res
.
data
.
status
;
// return;
// 点击下一步传值给status,更新
if
(
this
.
status
==
4
)
{
this
.
type
=
"
check
"
;
this
.
status
=
3
;
if
(
this
.
isNexts
==
1
)
{
if
(
res
.
data
.
examine_status
==
1
)
{
console
.
log
(
333
);
this
.
type
=
"
pay
"
;
this
.
status
=
4
;
}
else
if
(
res
.
data
.
examine_status
==
2
)
{
this
.
type
=
"
referInfo
"
;
this
.
status
=
2
;
}
}
if
(
res
.
data
.
pay_amount
==
0
)
{
getWxConfig
({
pay_type
:
3
}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
signUpInit
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
$message
.
success
(
res
.
data
.
err_msg
);
});
}
// pay_amount支付金额等于0,直接跳到成功页面
}
else
if
(
this
.
status
==
5
)
{
this
.
type
=
"
pay
"
;
// pay_amount支付金额等于0,直接跳到成功页面
if
(
res
.
data
.
pay_amount
==
0
)
{
this
.
type
=
"
success
"
;
this
.
$emit
(
"
getstatus
"
,
6
);
}
else
{
// transfer_account 判断微信支付宝或者银行卡支付
if
(
this
.
transfer_account
==
0
)
{
this
.
dialogChoose
=
true
;
}
else
{
this
.
bankDialogVisible
=
true
;
console
.
log
(
this
.
fileList
);
console
.
log
(
this
.
fileList
!=
[]);
if
(
this
.
fileList
.
length
>=
1
)
{
this
.
hideUpload
=
true
;
}
}
}
}
// else if (this.status == 6) {
// this.type = "success";
// }
this
.
$emit
(
"
getstatus
"
,
res
.
data
.
status
);
});
},
getAccount
()
{
getAccount
({}).
then
((
res
)
=>
{
// console.log(res, "getAccount");
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
personalInfo
=
res
.
data
.
info
;
// this.personalInfo.create_time = parseTime(res.data.info.create_time);
});
},
// 图片上传成功前钩子
beforeAvatarUpload
(
file
)
{
// console.log(file, "beforeImage");
const
isJPG
=
file
.
type
===
"
image/jpg
"
;
const
isPng
=
file
.
type
===
"
image/png
"
;
const
isJPEG
=
file
.
type
===
"
image/jpeg
"
;
const
isLt10M
=
file
.
size
/
1024
/
1024
<
10
;
// console.log(isLt10M)
if
(
!
isJPG
&&
!
isPng
&&
!
isJPEG
)
{
this
.
$message
.
info
(
"
上传图片只能是 JPG,JPEG或png 格式!
"
);
}
if
(
!
isLt10M
)
{
this
.
$message
.
info
(
"
上传图片大小不能超过 10MB!
"
);
}
return
(
isJPG
||
isPng
||
isJPEG
)
&&
isLt10M
;
},
handlePictureCardPreview
(
file
)
{
console
.
log
(
file
,
"
11111111
"
);
this
.
resultPicture
=
file
.
url
;
this
.
dialogVisible
=
true
;
},
// 文件上传中处理
handleUploadProgress
(
event
,
file
,
fileList
)
{
// console.log(fileList);
this
.
isUploading
=
true
;
if
(
this
.
fileList
.
length
<
1
)
{
return
this
.
$message
.
info
(
"
超过上传数量
"
);
}
},
uploadSuccess
(
res
,
file
,
fileList
)
{
// console.log(res, "res");
// console.log(file, "file");
// console.log(fileList, "fileList");
this
.
referForm
.
achievementPath
=
res
;
this
.
fileList
=
{
name
:
file
.
name
,
url
:
res
,
};
this
.
$refs
[
"
imgUrl
"
].
clearFiles
();
//上传成功之后清除历史记录
},
uploadPicture
(
params
)
{
// console.log("已经准备好上传图片", params);
this
.
file
=
params
.
file
;
let
raw
=
params
.
file
;
let
image
=
{
name
:
raw
.
name
,
size
:
raw
.
size
,
type
:
raw
.
type
,
};
this
.
file_image
=
image
;
this
.
getOssConfigs
(
this
.
file_image
,
params
.
file
);
},
// 上传截图
uploadConfirm
()
{
this
.
bankDialogVisible
=
false
;
// this.$message.success("你的支付信息已提交,请留意短信通知。");
// this.getOssConfigs(this.file_image, this.file);
},
async
changeStatus
()
{
// console.log(SERVER_WS_URL);
let
{
data
:
res
}
=
await
getWxConfig
({
pay_type
:
4
,
});
},
async
getOssConfigs
(
image
,
file
)
{
let
obj
=
{
url
:
""
,
savefile
:
""
,
};
await
getBankInfoOss
({
image
:
image
})
.
then
((
res
)
=>
{
console
.
log
(
res
,
"
开始上传图片
"
);
if
(
res
.
data
.
code
===
200
)
{
let
oss_url
=
res
.
data
.
config
.
host
;
let
filename
=
res
.
data
.
config
.
file
;
let
formData
=
new
FormData
();
formData
.
append
(
"
OSSAccessKeyId
"
,
res
.
data
.
config
.
accessid
);
formData
.
append
(
"
policy
"
,
res
.
data
.
config
.
policy
);
formData
.
append
(
"
signature
"
,
res
.
data
.
config
.
signature
);
formData
.
append
(
"
filename
"
,
res
.
data
.
config
.
file
);
formData
.
append
(
"
key
"
,
res
.
data
.
config
.
savefile
);
formData
.
append
(
"
callback
"
,
res
.
data
.
config
.
callback
);
formData
.
append
(
"
success_action_status
"
,
200
);
formData
.
append
(
"
file
"
,
file
);
// console.log(formData);
upload
(
oss_url
,
formData
)
.
then
((
ress
)
=>
{
console
.
log
(
555555555
);
console
.
log
(
ress
,
"
ress
"
);
if
(
ress
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
ress
.
data
.
message
);
}
this
.
resultPicture
=
filename
+
"
?t=
"
+
Date
.
parse
(
new
Date
());
// this.$forceUpdate();
obj
=
{
url
:
ress
.
data
.
picture_path
,
savefile
:
res
.
data
.
config
.
savefile
,
};
this
.
fileList
.
push
(
obj
);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
sign_up_payfile_
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
,
JSON
.
stringify
(
this
.
fileList
));
this
.
$message
.
success
({
message
:
"
您已上传成功,等待短信通知,审核通过后登录报名网址。
"
,
duration
:
5000
,
});
this
.
changeStatus
();
this
.
hideUpload
=
this
.
fileList
.
length
>=
this
.
limitCount
;
})
.
catch
((
err
)
=>
{
this
.
$message
.
error
(
err
);
});
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
})
.
catch
((
err
)
=>
{
// console.log(err);
});
},
// 下载证明资料图片
handleDownload
(
file
)
{
// console.log(file,'file22');
window
.
location
.
href
=
file
.
url
;
},
//删除图片
handleRemove
(
file
)
{
console
.
log
(
file
,
"
file
"
);
this
.
$confirm
(
"
此操作将永久删除该文件, 是否继续?
"
,
"
提示
"
,
{
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
type
:
"
warning
"
,
})
.
then
(()
=>
{
let
getfile
=
file
.
url
;
// console.log(savefile.match(/^(?:[^\/]|\/\/)*/),'222222');//获取域名
let
str
=
getfile
.
split
(
"
https://yingdi-bank-info.oss-cn-beijing.aliyuncs.com/
"
);
//https://yingdi-achievement.oss-cn-beijing.aliyuncs.com/进行分割,
let
savefile
=
str
[
1
];
delPayingPic
({
object
:
savefile
}).
then
((
res
)
=>
{
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
fileList
.
forEach
((
item
,
idx
)
=>
{
if
(
item
.
url
==
file
.
url
)
{
this
.
fileList
.
splice
(
idx
,
1
);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
sign_up_payfile_
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
,
JSON
.
stringify
(
this
.
fileList
));
this
.
$message
.
success
(
"
删除成功
"
);
this
.
hideUpload
=
this
.
fileList
.
length
>=
this
.
limitCount
;
window
.
localStorage
.
removeItem
(
"
bank_info
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
);
}
});
// console.log(this.fileList);
});
})
.
catch
((
err
)
=>
{
this
.
$message
({
type
:
"
info
"
,
message
:
"
取消删除
"
,
});
});
},
},
};
},
created
()
{
const
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
camp_name
=
window
.
localStorage
.
getItem
(
"
camp_name
"
+
code
);
this
.
has_amount
=
window
.
localStorage
.
getItem
(
"
has_amount
"
+
code
);
// 已上传的银行付款图片
let
bank_infoFile
=
window
.
localStorage
.
getItem
(
"
bank_info
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
);
JSON
.
parse
(
bank_infoFile
).
map
((
i
)
=>
{
if
(
i
.
url
!=
''
){
this
.
isBank_infoFile
=
true
}
})
if
(
bank_infoFile
&&
this
.
isBank_infoFile
==
true
&&
JSON
.
parse
(
bank_infoFile
).
length
>
0
)
{
console
.
log
(
JSON
.
parse
(
bank_infoFile
));
this
.
fileList
=
JSON
.
parse
(
bank_infoFile
);
</
script
>
<
style
lang=
"scss"
scoped
>
@import
"a/scss/btn"
;
.btn
{
padding-bottom
:
0
!
important
;
}
.flex
{
display
:
flex
;
}
.margin1
{
margin-bottom
:
1rem
;
}
this
.
getAccount
();
this
.
commonApi
(
33
)
},
methods
:
{
handleClose
(
done
)
{
this
.
$confirm
(
"
确认关闭?
"
)
.
then
((
_
)
=>
{
done
();
})
.
catch
((
_
)
=>
{});
},
// 子组件触发,关闭确认报名弹框
closeCFSUDialog
(
val
)
{
console
.
log
(
val
,
"
val
"
);
this
.
confirmSignUpDialogFu
=
val
;
},
toWeichat
()
{
// this.dialogChoose = false;
this
.
confirmSignUpDialogFu
=
true
;
},
toPaybao
()
{
getWxConfig
({
pay_type
:
2
,
}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
getWxConfig
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
::v-deep
.hide
{
.el-upload--picture-card
{
display
:
none
;
}
/* 此处form就是后台返回接收到的数据 */
let
form
=
res
.
data
.
data
;
console
.
log
(
form
);
// return
let
div
=
document
.
createElement
(
"
div
"
);
div
.
innerHTML
=
form
;
document
.
body
.
appendChild
(
div
);
document
.
forms
[
0
].
acceptCharset
=
"
GBK
"
;
//保持与支付宝默认编码格式一致,如果不一致将会出现:调试错误,请回到请求来源地.
// 重新发起请求,错误代码 invalid-signature 错误原因: 验签出错,建议检查签名字符串或签名私钥与应用公钥是否匹配
document
.
forms
[
0
].
submit
();
//
let
alipay_submit
=
document
.
getElementById
(
"
alipay_submit
"
);
div
.
removeChild
(
alipay_submit
);
//初始化 websocket 链接
this
.
initWebSocket
();
});
},
// 初始化 webSocket
initWebSocket
()
{
if
(
typeof
WebSocket
==
"
undefined
"
)
{
this
.
$message
({
showClose
:
true
,
message
:
"
您的浏览器不支持WebSocket
"
,
type
:
"
error
"
,
});
}
else
if
(
!
this
.
dialogChoose
)
{
return
;
}
else
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
if
(
!
this
.
token
||
this
.
token
==
""
)
{
this
.
token
=
window
.
localStorage
.
getItem
(
"
index-token
"
+
code
);
.el-upload-list__item
div
{
height
:
100%
;
}
let
token
=
this
.
token
;
var
wssURL
=
SERVER_WS_URL
+
"
/order?token=
"
+
token
+
"
&channel=pc
"
;
console
.
log
(
wssURL
);
this
.
websocket
=
new
WebSocket
(
wssURL
);
console
.
log
(
this
.
websocket
);
// 连接发生错误的回调方法
this
.
websocket
.
onerror
=
this
.
websocketOnerror
;
// 连接成功建立的回调方法
this
.
websocket
.
onopen
=
this
.
websocketOnopen
;
// 接收到消息的回调方法
this
.
websocket
.
onmessage
=
this
.
websocketOnmessage
;
// 连接关闭的回调方法
this
.
websocket
.
onclose
=
this
.
websocketOnclose
;
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常。
this
.
websocket
.
onbeforeunload
=
this
.
websocketOnbeforeunload
;
// this.websocketSend();
// setTimeout(() => {
// this.websocketSend();
// }, 1000);
}
},
reconnect
()
{
//重新连接
let
that
=
this
;
if
(
!
that
.
dialogChoose
)
{
return
;
}
if
(
that
.
lockReconnect
)
{
return
;
}
that
.
lockReconnect
=
true
;
//没连接上会一直重连,设置延迟避免请求过多
that
.
timeoutnum
&&
clearTimeout
(
that
.
timeoutnum
);
that
.
timeoutnum
=
setTimeout
(
function
()
{
//新连接
that
.
initWebSocket
();
that
.
lockReconnect
=
false
;
},
5000
);
},
reset
()
{
//重置心跳
let
that
=
this
;
//清除时间
clearTimeout
(
that
.
timeoutObj
);
clearTimeout
(
that
.
serverTimeoutObj
);
//重启心跳
that
.
start
();
},
start
()
{
//开启心跳
let
self
=
this
;
self
.
timeoutObj
&&
clearTimeout
(
self
.
timeoutObj
);
self
.
serverTimeoutObj
&&
clearTimeout
(
self
.
serverTimeoutObj
);
self
.
timeoutObj
=
setTimeout
(
function
()
{
//这里发送一个心跳,后端收到后,返回一个心跳消息,
if
(
self
.
websocket
.
readyState
==
1
)
{
//如果连接正常
self
.
websocket
.
send
(
"
heartCheck
"
);
}
else
{
//否则重连
self
.
reconnect
();
}
.paying
{
padding
:
0
56px
65px
56px
;
.pay_titile
{
font-size
:
18px
;
font-weight
:
500
;
color
:
#12141c
;
line-height
:
18px
;
}
self
.
serverTimeoutObj
=
setTimeout
(
function
()
{
//超时关闭
self
.
websocket
.
close
();
},
self
.
timeout
);
},
self
.
timeout
);
},
// 连接发生错误的回调方法
websocketOnerror
()
{
this
.
$message
.
error
(
"
WebSocket连接发生错误
"
);
//重连
this
.
reconnect
();
},
// 连接成功建立的回调方法
websocketOnopen
()
{
this
.
websocketSend
();
// console.log("连接成功建立的回调方法");
//开启心跳
this
.
start
();
},
websocketSend
()
{
//数据发送
let
sendData
=
{
order_no
:
window
.
localStorage
.
getItem
(
"
order_no
"
+
this
.
$store
.
state
.
indexIdentity
),
cam_id
:
window
.
localStorage
.
getItem
(
"
campsite_id
"
+
this
.
$store
.
state
.
indexIdentity
),
token
:
this
.
token
,
};
this
.
websocket
.
send
(
JSON
.
stringify
(
sendData
));
},
// 接收到消息的回调方法
websocketOnmessage
(
event
)
{
console
.
log
(
event
,
"
event
"
);
if
(
event
.
data
!==
"
Opened
"
)
{
//const data = JSON.parse(event.data);
// console.log("接收到消息的回调方法", event.data);
if
(
event
.
data
==
1
)
{
this
.
lockReconnect
=
false
;
this
.
closeWebSocket
();
// this.dialogVisible = false;
// this.$emit("closeCFSUDialog", this.dialogVisible, true);
}
else
{
//收到服务器信息,心跳重置
this
.
reset
();
.pay_top
{
margin
:
24px
0
;
div
{
font-size
:
14px
;
font-weight
:
500
;
color
:
#12141c
;
line-height
:
32px
;
}
}
}
},
// 连接关闭的回调方法
websocketOnclose
()
{
// console.log("连接关闭的回调方法");
//重连
this
.
reconnect
();
},
// 监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常
websocketOnbeforeunload
()
{
this
.
closeWebSocket
();
// console.log('监听窗口关闭事件,当窗口关闭时,主动去关闭websocket连接,防止连接还没断开就关闭窗口,server端会抛异常');
},
// 关闭WebSocket连接
closeWebSocket
()
{
this
.
websocket
&&
this
.
websocket
.
close
();
},
// 立即支付-按钮
paying
()
{
console
.
log
(
this
.
$store
.
state
);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
console
.
log
(
code
==
"
3c7e84455750447799e4b70bda5f4493
"
)
if
(
code
==
"
3c7e84455750447799e4b70bda5f4493
"
)
{
console
.
log
(
'
1111
'
)
this
.
toPaying
();
}
else
{
this
.
dialogPayingVisible
=
true
;
}
},
toPaying
()
{
this
.
commonApi
(
34
)
this
.
dialogPayingVisible
=
false
;
if
(
this
.
has_amount
==
0
)
{
getWxConfig
({
pay_type
:
3
}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
signUpInit
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
$message
.
success
(
res
.
data
.
err_msg
);
});
this
.
$emit
(
"
getstatus
"
,
6
);
}
else
{
// transfer_account 判断微信支付宝或者银行卡支付
if
(
this
.
transfer_account
==
0
)
{
this
.
dialogChoose
=
true
;
}
else
{
this
.
bankDialogVisible
=
true
;
console
.
log
(
this
.
fileList
);
console
.
log
(
this
.
fileList
!=
[]);
if
(
this
.
fileList
.
length
>=
1
)
{
this
.
hideUpload
=
true
;
}
.line
{
height
:
1px
;
border-bottom
:
1px
solid
#d1d1d1
;
}
}
// setTimeout(this.signUpInit(this.status_wx), 1000);
},
signUpInit
()
{
signUpInit
({}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
signUpInit
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
.pay-money
{
font-size
:
18px
;
font-weight
:
500
;
color
:
#12141c
;
line-height
:
24px
;
justify-content
:
space-between
;
margin
:
43px
0
0
0
;
span
{
color
:
#60194a
;
}
}
this
.
status
=
res
.
data
.
status
;
// return;
// 点击下一步传值给status,更新
if
(
this
.
status
==
4
)
{
this
.
type
=
"
check
"
;
this
.
status
=
3
;
if
(
this
.
isNexts
==
1
)
{
if
(
res
.
data
.
examine_status
==
1
)
{
console
.
log
(
333
);
this
.
type
=
"
pay
"
;
this
.
status
=
4
;
}
else
if
(
res
.
data
.
examine_status
==
2
)
{
this
.
type
=
"
referInfo
"
;
this
.
status
=
2
;
.pay_bottom
{
font-size
:
12px
;
font-weight
:
500
;
color
:
#999999
;
line-height
:
21px
;
.cc
{
font-weight
:
600
;
color
:
black
;
}
}
if
(
res
.
data
.
pay_amount
==
0
)
{
getWxConfig
({
pay_type
:
3
}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
signUpInit
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
$message
.
success
(
res
.
data
.
err_msg
);
});
}
// pay_amount支付金额等于0,直接跳到成功页面
}
else
if
(
this
.
status
==
5
)
{
this
.
type
=
"
pay
"
;
// pay_amount支付金额等于0,直接跳到成功页面
if
(
res
.
data
.
pay_amount
==
0
)
{
this
.
type
=
"
success
"
;
this
.
$emit
(
"
getstatus
"
,
6
);
}
else
{
// transfer_account 判断微信支付宝或者银行卡支付
if
(
this
.
transfer_account
==
0
)
{
this
.
dialogChoose
=
true
;
}
else
{
this
.
bankDialogVisible
=
true
;
console
.
log
(
this
.
fileList
);
console
.
log
(
this
.
fileList
!=
[]);
if
(
this
.
fileList
.
length
>=
1
)
{
this
.
hideUpload
=
true
;
}
.starIcon
{
color
:
red
;
}
}
}
// else if (this.status == 6) {
// this.type = "success";
// }
this
.
$emit
(
"
getstatus
"
,
res
.
data
.
status
);
});
},
getAccount
()
{
getAccount
({}).
then
((
res
)
=>
{
// console.log(res, "getAccount");
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
personalInfo
=
res
.
data
.
info
;
// this.personalInfo.create_time = parseTime(res.data.info.create_time);
});
},
// 图片上传成功前钩子
beforeAvatarUpload
(
file
)
{
// console.log(file, "beforeImage");
const
isJPG
=
file
.
type
===
"
image/jpg
"
;
const
isPng
=
file
.
type
===
"
image/png
"
;
const
isJPEG
=
file
.
type
===
"
image/jpeg
"
;
const
isLt10M
=
file
.
size
/
1024
/
1024
<
10
;
// console.log(isLt10M)
if
(
!
isJPG
&&
!
isPng
&&
!
isJPEG
)
{
this
.
$message
.
info
(
"
上传图片只能是 JPG,JPEG或png 格式!
"
);
}
if
(
!
isLt10M
)
{
this
.
$message
.
info
(
"
上传图片大小不能超过 10MB!
"
);
}
return
(
isJPG
||
isPng
||
isJPEG
)
&&
isLt10M
;
},
handlePictureCardPreview
(
file
)
{
console
.
log
(
file
,
"
11111111
"
);
this
.
resultPicture
=
file
.
url
;
this
.
dialogVisible
=
true
;
},
// 文件上传中处理
handleUploadProgress
(
event
,
file
,
fileList
)
{
// console.log(fileList);
this
.
isUploading
=
true
;
if
(
this
.
fileList
.
length
<
1
)
{
return
this
.
$message
.
info
(
"
超过上传数量
"
);
}
},
uploadSuccess
(
res
,
file
,
fileList
)
{
// console.log(res, "res");
// console.log(file, "file");
// console.log(fileList, "fileList");
this
.
referForm
.
achievementPath
=
res
;
this
.
fileList
=
{
name
:
file
.
name
,
url
:
res
,
};
this
.
$refs
[
"
imgUrl
"
].
clearFiles
();
//上传成功之后清除历史记录
},
uploadPicture
(
params
)
{
// console.log("已经准备好上传图片", params);
this
.
file
=
params
.
file
;
let
raw
=
params
.
file
;
let
image
=
{
name
:
raw
.
name
,
size
:
raw
.
size
,
type
:
raw
.
type
,
};
this
.
file_image
=
image
;
this
.
getOssConfigs
(
this
.
file_image
,
params
.
file
);
},
// 上传截图
uploadConfirm
()
{
this
.
bankDialogVisible
=
false
;
// this.$message.success("你的支付信息已提交,请留意短信通知。");
// this.getOssConfigs(this.file_image, this.file);
},
async
changeStatus
()
{
// console.log(SERVER_WS_URL);
let
{
data
:
res
}
=
await
getWxConfig
({
pay_type
:
4
,
});
},
async
getOssConfigs
(
image
,
file
)
{
let
obj
=
{
url
:
""
,
savefile
:
""
,
};
await
getBankInfoOss
({
image
:
image
})
.
then
((
res
)
=>
{
console
.
log
(
res
,
"
开始上传图片
"
);
if
(
res
.
data
.
code
===
200
)
{
let
oss_url
=
res
.
data
.
config
.
host
;
let
filename
=
res
.
data
.
config
.
file
;
let
formData
=
new
FormData
();
formData
.
append
(
"
OSSAccessKeyId
"
,
res
.
data
.
config
.
accessid
);
formData
.
append
(
"
policy
"
,
res
.
data
.
config
.
policy
);
formData
.
append
(
"
signature
"
,
res
.
data
.
config
.
signature
);
formData
.
append
(
"
filename
"
,
res
.
data
.
config
.
file
);
formData
.
append
(
"
key
"
,
res
.
data
.
config
.
savefile
);
formData
.
append
(
"
callback
"
,
res
.
data
.
config
.
callback
);
formData
.
append
(
"
success_action_status
"
,
200
);
formData
.
append
(
"
file
"
,
file
);
// console.log(formData);
upload
(
oss_url
,
formData
)
.
then
((
ress
)
=>
{
console
.
log
(
555555555
);
console
.
log
(
ress
,
"
ress
"
);
if
(
ress
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
ress
.
data
.
message
);
}
this
.
resultPicture
=
filename
+
"
?t=
"
+
Date
.
parse
(
new
Date
());
// this.$forceUpdate();
obj
=
{
url
:
ress
.
data
.
picture_path
,
savefile
:
res
.
data
.
config
.
savefile
,
};
this
.
fileList
.
push
(
obj
);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
sign_up_payfile_
"
+
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
,
JSON
.
stringify
(
this
.
fileList
)
);
this
.
$message
.
success
({
message
:
"
您已上传成功,等待短信通知,审核通过后登录报名网址。
"
,
duration
:
5000
,
});
this
.
changeStatus
();
this
.
hideUpload
=
this
.
fileList
.
length
>=
this
.
limitCount
;
})
.
catch
((
err
)
=>
{
this
.
$message
.
error
(
err
);
});
}
else
{
this
.
$message
.
error
(
res
.
data
.
message
);
}
})
.
catch
((
err
)
=>
{
// console.log(err);
});
},
// 下载证明资料图片
handleDownload
(
file
)
{
// console.log(file,'file22');
window
.
location
.
href
=
file
.
url
;
},
//删除图片
handleRemove
(
file
)
{
console
.
log
(
file
,
"
file
"
);
this
.
$confirm
(
"
此操作将永久删除该文件, 是否继续?
"
,
"
提示
"
,
{
confirmButtonText
:
"
确定
"
,
cancelButtonText
:
"
取消
"
,
type
:
"
warning
"
,
})
.
then
(()
=>
{
let
getfile
=
file
.
url
;
// console.log(savefile.match(/^(?:[^\/]|\/\/)*/),'222222');//获取域名
let
str
=
getfile
.
split
(
"
https://yingdi-bank-info.oss-cn-beijing.aliyuncs.com/
"
);
//https://yingdi-achievement.oss-cn-beijing.aliyuncs.com/进行分割,
// console.log(str, "str");
let
savefile
=
str
[
1
];
// console.log(savefile, "savefile");
delPayingPic
({
object
:
savefile
}).
then
((
res
)
=>
{
// console.log(res, "delpic");
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
.choose
{
text-align
:
center
;
.img_choose
{
justify-content
:
space-around
;
img
{
width
:
38%
;
cursor
:
pointer
;
}
this
.
fileList
.
forEach
((
item
,
idx
)
=>
{
// console.log(item.url == file.url);
if
(
item
.
url
==
file
.
url
)
{
this
.
fileList
.
splice
(
idx
,
1
);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
sign_up_payfile_
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
,
JSON
.
stringify
(
this
.
fileList
)
);
this
.
$message
.
success
(
"
删除成功
"
);
this
.
hideUpload
=
this
.
fileList
.
length
>=
this
.
limitCount
;
window
.
localStorage
.
removeItem
(
"
bank_info
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
);
}
});
// console.log(this.fileList);
});
})
.
catch
((
err
)
=>
{
this
.
$message
({
type
:
"
info
"
,
message
:
"
取消删除
"
,
});
});
},
},
};
</
script
>
}
<
style
lang=
"scss"
scoped
>
@import
"a/scss/btn"
;
.btn
{
padding-bottom
:
0
!
important
;
}
.flex
{
display
:
flex
;
}
.margin1
{
margin-bottom
:
1rem
;
}
::v-deep
.hide
{
.el-upload--picture-card
{
display
:
none
;
}
.el-upload-list__item
div
{
height
:
100%
;
}
}
.paying
{
padding
:
0
56px
65px
56px
;
.pay_titile
{
font-size
:
18px
;
font-weight
:
500
;
color
:
#12141c
;
line-height
:
18px
;
}
.pay_top
{
margin
:
24px
0
;
div
{
font-size
:
14px
;
font-weight
:
500
;
color
:
#12141c
;
line-height
:
32px
;
}
}
.line
{
height
:
1px
;
border-bottom
:
1px
solid
#d1d1d1
;
}
.pay-money
{
font-size
:
18px
;
font-weight
:
500
;
color
:
#12141c
;
line-height
:
24px
;
justify-content
:
space-between
;
margin
:
43px
0
0
0
;
span
{
color
:
#60194a
;
}
}
.pay_bottom
{
font-size
:
12px
;
font-weight
:
500
;
color
:
#999999
;
line-height
:
21px
;
.cc
{
font-weight
:
600
;
color
:
black
;
}
.starIcon
{
color
:
red
;
}
}
}
.choose
{
text-align
:
center
;
.img_choose
{
justify-content
:
space-around
;
img
{
width
:
38%
;
cursor
:
pointer
;
.text_choose
{
font-size
:
15px
;
margin
:
20px
0
50px
0
;
}
.btn
.el-button
{
width
:
120px
!
important
;
}
}
}
.text_choose
{
font-size
:
15px
;
margin
:
20px
0
50px
0
;
}
.btn
.el-button
{
width
:
120px
!
important
;
}
}
// .pay_code {
// text-align: center;
// :nth-child(1) {
// font-size: 14px;
// font-weight: 500;
// color: #12141c;
// line-height: 14px;
// span {
// font-size: 13px !important;
// color: var(--color);
// }
// }
// :nth-child(2) {
// font-size: 14px;
// font-weight: 500;
// color: var(--color);
// line-height: 24px;
// }
// :nth-child(4) {
// font-size: 14px;
// font-weight: 500;
// color: #333333;
// line-height: 16px;
// span {
// font-size: 17px !important;
// color: var(--color);
// }
// }
// :nth-child(5) {
// font-size: 12px;
// font-weight: 500;
// color: #666666;
// line-height: 12px;
// }
// }
// .pay_code {
// text-align: center;
// :nth-child(1) {
// font-size: 14px;
// font-weight: 500;
// color: #12141c;
// line-height: 14px;
// span {
// font-size: 13px !important;
// color: var(--color);
// }
// }
// :nth-child(2) {
// font-size: 14px;
// font-weight: 500;
// color: var(--color);
// line-height: 24px;
// }
// :nth-child(4) {
// font-size: 14px;
// font-weight: 500;
// color: #333333;
// line-height: 16px;
// span {
// font-size: 17px !important;
// color: var(--color);
// }
// }
// :nth-child(5) {
// font-size: 12px;
// font-weight: 500;
// color: #666666;
// line-height: 12px;
// }
// }
</
style
>
src/components/index/SignUp/referInfo.vue
View file @
279944cb
...
...
@@ -654,7 +654,7 @@
</div>
</el-col>
<!-- 自我介绍 -->
<el-col
:span=
"12"
v-show=
"configJson.introduceMyself == 1"
>
<el-col
:span=
"12"
v-show=
"configJson.introduceMyself == 1"
>
<el-form-item
prop=
"introduce"
label=
"自我介绍"
...
...
@@ -1388,11 +1388,11 @@
},
created
()
{
const
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
referForm
.
phone
=
window
.
localStorage
.
getItem
(
"
phone
"
+
code
);
//本地取用户手机号
this
.
referForm
.
phone
=
window
.
localStorage
.
getItem
(
"
index-phone-all
"
);
//本地取用户手机号
this
.
referForm
.
email
=
window
.
localStorage
.
getItem
(
"
email
"
+
code
);
//本地取用户邮箱
// console.log(this.referForm.email, " this.referForm.email");
let
signUpFile
=
window
.
localStorage
.
getItem
(
"
sign_up_file_
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
"
sign_up_file_
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
);
// console.log(signUpFile);
if
(
signUpFile
&&
JSON
.
parse
(
signUpFile
).
length
>
0
)
{
...
...
@@ -1737,8 +1737,7 @@
this
.
schoolName
=
res
.
data
.
school_list
;
// console.log( this.schoolName)
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
schoolName
"
+
code
,
window
.
localStorage
.
setItem
(
"
schoolName
"
+
code
,
JSON
.
stringify
(
res
.
data
.
list
)
);
for
(
let
key
in
this
.
schoolName
)
{
...
...
@@ -1850,9 +1849,8 @@
};
this
.
fileList
.
push
(
obj
);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
sign_up_file_
"
+
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
window
.
localStorage
.
setItem
(
"
sign_up_file_
"
+
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
,
JSON
.
stringify
(
this
.
fileList
)
);
...
...
@@ -1900,9 +1898,8 @@
if
(
item
.
url
==
file
.
url
)
{
this
.
fileList
.
splice
(
idx
,
1
);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
sign_up_file_
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
window
.
localStorage
.
setItem
(
"
sign_up_file_
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
,
JSON
.
stringify
(
this
.
fileList
)
);
...
...
src/request/base/active.js
View file @
279944cb
/* eslint-disable */
import
{
request
}
from
'
./network
'
;
import
{
request
}
from
'
.
.
/network
'
;
// 获取label列表-搜索模块
export
function
LabelType
(
data
)
{
...
...
src/request/base/login.js
View file @
279944cb
/* eslint-disable */
import
{
request
}
from
'
./network
'
import
{
request
}
from
'
.
.
/network
'
// 登录
export
function
login
(
data
)
{
...
...
src/request/base/register.js
View file @
279944cb
/* eslint-disable */
import
{
request
}
from
'
./network
'
import
{
request
}
from
'
../network
'
;
// 通过邮箱验证码注册
export
function
registerEmailCode
(
data
)
{
...
...
src/request/index/certificate.js
View file @
279944cb
/* eslint-disable */
import
{
request
}
from
'
./network
'
import
store
from
'
@/store
'
import
{
request
}
from
'
../network
'
;
import
store
from
'
@/store
'
;
// 添加地址
...
...
src/request/index/homework.js
View file @
279944cb
/* eslint-disable */
import
{
request
}
from
'
./network
'
import
store
from
'
@/store
'
import
{
request
}
from
'
../network
'
;
import
store
from
'
@/store
'
;
// 获取营地作业列表
...
...
src/request/index/info.js
View file @
279944cb
/* eslint-disable */
import
{
request
}
from
'
./network
'
import
store
from
'
@/store
'
// 获取资料(个人信息)
export
function
getAccountInfo
(
data
)
{
data
[
'
identity
'
]
=
store
.
state
.
indexIdentity
;
return
request
({
method
:
'
post
'
,
url
:
'
/web/signUp/getAccountInfo
'
,
data
})
}
// 保存个人资料
export
function
setAccountInfo
(
data
)
{
data
[
'
identity
'
]
=
store
.
state
.
indexIdentity
;
return
request
({
method
:
'
post
'
,
url
:
'
/web/signUp/setAccountInfo
'
,
data
})
}
\ No newline at end of file
import
{
request
}
from
'
../network
'
;
import
store
from
'
@/store
'
;
// 获取资料(个人信息)
export
function
getAccountInfo
(
data
)
{
data
[
'
identity
'
]
=
store
.
state
.
indexIdentity
;
return
request
({
method
:
'
post
'
,
url
:
'
/web/signUp/getAccountInfo
'
,
data
})
}
// 保存个人资料
export
function
setAccountInfo
(
data
)
{
data
[
'
identity
'
]
=
store
.
state
.
indexIdentity
;
return
request
({
method
:
'
post
'
,
url
:
'
/web/signUp/setAccountInfo
'
,
data
})
}
src/request/index/login.js
View file @
279944cb
/* eslint-disable */
import
{
request
}
from
'
./network
'
import
store
from
'
@/store
'
import
{
request
}
from
'
../network
'
;
import
store
from
'
@/store
'
;
//登录前获取营地主题
export
function
getCam
(
code
)
{
...
...
src/request/index/network.js
View file @
279944cb
...
...
@@ -15,7 +15,6 @@ import {
}
from
'
element-ui
'
import
router
from
'
@/router
'
const
instance
=
axios
.
create
({
baseURL
:
DEVELOPMENT_SERVER_URL
,
timeout
:
60000
,
...
...
@@ -105,8 +104,7 @@ export function request(config) {
const
changePassCode
=
'
/web/auth/changePassCode
'
;
const
loginOut
=
'
/web/auth/loginOut
'
;
const
setLog
=
'
/web/auth/setLog
'
;
if
(
(
config
.
url
.
indexOf
(
loginUrl
)
!=
-
1
&&
config
.
url
.
indexOf
(
loginOut
)
==
-
1
)
||
if
((
config
.
url
.
indexOf
(
loginUrl
)
!=
-
1
&&
config
.
url
.
indexOf
(
loginOut
)
==
-
1
)
||
config
.
url
.
indexOf
(
setAccountInfo
)
!=
-
1
||
config
.
url
.
indexOf
(
passMsgOld
)
!=
-
1
||
config
.
url
.
indexOf
(
getCam
)
!=
-
1
||
...
...
@@ -116,15 +114,10 @@ export function request(config) {
config
.
url
.
indexOf
(
passwordEmailCode
)
!=
-
1
||
config
.
url
.
indexOf
(
changePassCode
)
!=
-
1
||
config
.
url
.
indexOf
(
passwordCode
)
!=
-
1
||
config
.
url
.
indexOf
(
setLog
)
!=
-
1
)
{
config
.
url
.
indexOf
(
setLog
)
!=
-
1
)
{
return
config
}
// const token = localStorage.getItem('index-token' + store.state.indexIdentity)
const
token
=
localStorage
.
getItem
(
'
index-token-all
'
);
if
(
token
)
{
config
.
headers
.
token
=
token
;
}
else
{
...
...
@@ -189,34 +182,9 @@ export function request(config) {
return
}
if
(
res
.
data
.
code
==
400023
)
{
console
.
log
(
res
)
let
code
=
store
.
state
.
indexIdentity
;
let
isLogout
=
res
.
config
.
url
==
'
/web/auth/loginOut
'
;
window
.
localStorage
.
removeItem
(
"
doubt_code
"
+
code
);
window
.
localStorage
.
removeItem
(
"
doubt_info
"
+
code
);
window
.
localStorage
.
removeItem
(
"
doubt_check
"
+
code
);
window
.
localStorage
.
removeItem
(
"
camp_name
"
+
code
);
window
.
localStorage
.
removeItem
(
"
system_color
"
+
code
);
window
.
localStorage
.
removeItem
(
"
system_logo
"
+
code
);
window
.
localStorage
.
removeItem
(
"
has_amount
"
+
code
);
window
.
localStorage
.
removeItem
(
"
campsite_id
"
+
code
);
window
.
localStorage
.
removeItem
(
"
order_no
"
+
code
);
window
.
localStorage
.
removeItem
(
"
campindex_type
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bk_pic
"
+
code
);
window
.
localStorage
.
removeItem
(
"
examine_status
"
+
code
);
window
.
localStorage
.
removeItem
(
"
examine_reason
"
+
code
);
window
.
localStorage
.
removeItem
(
"
sign_up_file_18355151517
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
);
window
.
localStorage
.
removeItem
(
"
schoolName
"
+
code
);
window
.
localStorage
.
removeItem
(
"
restet_code_time
"
+
code
);
window
.
localStorage
.
removeItem
(
"
camp_statement
"
+
code
)
window
.
localStorage
.
removeItem
(
"
transfer_account
"
+
code
);
window
.
localStorage
.
removeItem
(
"
payee
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bank_first
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bank_idcard
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bank_info
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
);
window
.
localStorage
.
removeItem
(
"
index-token-all
"
);
window
.
localStorage
.
removeItem
(
"
index-phone-all
"
);
// 清除本地缓存 除了特殊缓存
store
.
commit
(
'
removeLocalStorage
'
);
router
.
push
({
path
:
'
/
'
+
store
.
state
.
indexIdentity
,
})
...
...
@@ -229,35 +197,8 @@ export function request(config) {
return
}
if
(
res
.
data
.
code
==
400003
)
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
removeItem
(
"
doubt_code
"
+
code
);
window
.
localStorage
.
removeItem
(
"
doubt_info
"
+
code
);
window
.
localStorage
.
removeItem
(
"
doubt_check
"
+
code
);
window
.
localStorage
.
removeItem
(
"
camp_name
"
+
code
);
window
.
localStorage
.
removeItem
(
"
system_color
"
+
code
);
window
.
localStorage
.
removeItem
(
"
system_logo
"
+
code
);
window
.
localStorage
.
removeItem
(
"
has_amount
"
+
code
);
window
.
localStorage
.
removeItem
(
"
campsite_id
"
+
code
);
window
.
localStorage
.
removeItem
(
"
order_no
"
+
code
);
window
.
localStorage
.
removeItem
(
"
campindex_type
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bk_pic
"
+
code
);
window
.
localStorage
.
removeItem
(
"
examine_status
"
+
code
);
window
.
localStorage
.
removeItem
(
"
examine_reason
"
+
code
);
window
.
localStorage
.
removeItem
(
"
sign_up_file_18355151517
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
);
window
.
localStorage
.
removeItem
(
"
schoolName
"
+
code
);
window
.
localStorage
.
removeItem
(
"
transfer_account
"
+
code
);
window
.
localStorage
.
removeItem
(
"
payee
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bank_first
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bank_idcard
"
+
code
);
window
.
localStorage
.
removeItem
(
"
bank_info
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
);
window
.
localStorage
.
removeItem
(
"
index-token-all
"
);
window
.
localStorage
.
removeItem
(
"
index-phone-all
"
);
// 清除本地缓存 除了特殊缓存
store
.
commit
(
'
removeLocalStorage
'
);
router
.
push
({
path
:
'
/login
'
,
query
:
{
...
...
src/request/index/pay.js
View file @
279944cb
/* eslint-disable */
import
{
request
}
from
'
./network
'
import
store
from
'
@/store
'
import
{
request
}
from
'
../network
'
;
import
store
from
'
@/store
'
;
// 报名初始化
...
...
src/request/index/register.js
View file @
279944cb
/* eslint-disable */
import
{
request
}
from
'
./network
'
import
store
from
'
@/store
'
import
{
request
}
from
'
../network
'
;
import
store
from
'
@/store
'
;
// 通过邮箱验证码注册
export
function
registerEmailCode
(
data
)
{
...
...
src/request/index/signUp.js
View file @
279944cb
/* eslint-disable */
import
{
request
}
from
'
./network
'
import
store
from
'
@/store
'
import
{
request
}
from
'
../network
'
;
import
store
from
'
@/store
'
;
// 报名初始化
export
function
signUpInit
(
data
)
{
...
...
src/request/network.js
0 → 100644
View file @
279944cb
/* eslint-disable */
import
axios
from
'
axios
'
import
store
from
'
@/store
'
import
qs
from
'
qs
'
import
{
tansParams
}
from
'
@/store/common.js
'
import
{
SERVER_URL
,
DEVELOPMENT_SERVER_URL
}
from
'
@/config/server
'
import
{
Notification
,
Message
,
Loading
}
from
'
element-ui
'
import
router
from
'
@/router
'
const
instance
=
axios
.
create
({
baseURL
:
DEVELOPMENT_SERVER_URL
,
timeout
:
60000
,
method
:
"
post
"
,
headers
:
{
"
Content-Type
"
:
"
application/x-www-form-urlencoded
"
,
},
withCredentials
:
false
,
});
instance
.
interceptors
.
request
.
use
(
(
config
)
=>
{
if
(
config
.
method
===
"
post
"
&&
!
config
.
notQs
)
{
config
.
data
=
qs
.
stringify
(
config
.
data
);
}
if
(
config
.
url
.
indexOf
(
SERVER_URL
)
===
-
1
)
{
config
.
headers
[
"
Content-Type
"
]
=
"
multipart/form-data
"
;
}
else
{
config
.
headers
[
"
Content-Type
"
]
=
"
application/x-www-form-urlencoded
"
;
}
// 调用接口请求添加token认证信息
const
token
=
localStorage
.
getItem
(
'
index-token-all
'
);
config
.
headers
.
token
=
token
if
(
token
)
config
.
headers
.
authorization
=
token
;
return
config
;
},
(
error
)
=>
{
return
Promise
.
reject
(
error
);
}
);
export
default
instance
;
// 正在进行中的请求列表
const
reqList
=
[]
/**
* 阻止重复请求
* @param {array} reqList - 请求缓存列表
* @param {string} url - 当前请求地址
* @param {function} cancel - 请求中断函数
* @param {string} errorMessage - 请求中断时需要显示的错误信息
*/
const
stopRepeatRequest
=
function
(
reqList
,
url
,
cancel
,
errorMessage
)
{
const
errorMsg
=
errorMessage
||
''
for
(
let
i
=
0
;
i
<
reqList
.
length
;
i
++
)
{
if
(
reqList
[
i
]
===
url
)
{
// cancel(errorMsg);
return
}
}
reqList
.
push
(
url
)
}
/**
* 允许某个请求可以继续进行
* @param {array} reqList 全部请求列表
* @param {string} url 请求地址
*/
const
allowRequest
=
function
(
reqList
,
url
)
{
for
(
let
i
=
0
;
i
<
reqList
.
length
;
i
++
)
{
if
(
reqList
[
i
]
===
url
)
{
reqList
.
splice
(
i
,
1
)
break
}
}
}
let
loadingInstance
=
null
export
function
request
(
config
)
{
const
instance
=
axios
.
create
({
baseURL
:
process
.
env
.
NODE_ENV
===
'
development
'
?
DEVELOPMENT_SERVER_URL
:
SERVER_URL
,
timeout
:
60
*
1000
})
instance
.
interceptors
.
request
.
use
(
(
config
)
=>
{
const
loginUrl
=
'
/web/auth/login
'
;
const
setAccountInfo
=
'
/web/register/setAccountInfo
'
;
const
passMsgOld
=
'
/web/auth/changePassOld
'
;
const
getCam
=
'
/web/auth/getCam
'
;
const
LoginCode
=
'
/web/code/loginCode
'
;
const
registerCode
=
'
/web/code/registerCode
'
;
const
registerEmailCode
=
'
web/code/registerEmailCode
'
;
const
passwordEmailCode
=
'
web/code/passwordEmailCode
'
;
const
passwordCode
=
'
/web/code/passwordCode
'
;
const
changePassCode
=
'
/web/auth/changePassCode
'
;
const
loginOut
=
'
/web/auth/loginOut
'
;
const
setLog
=
'
/web/auth/setLog
'
;
const
LabelType
=
'
/activity/labelType
'
;
const
HotList
=
'
/activityCenter/hotList
'
;
const
GetActiveInfo
=
'
/activityCenter/detail/
'
;
if
((
config
.
url
.
indexOf
(
loginUrl
)
!=
-
1
&&
config
.
url
.
indexOf
(
loginOut
)
==
-
1
)
||
config
.
url
.
indexOf
(
setAccountInfo
)
!=
-
1
||
config
.
url
.
indexOf
(
passMsgOld
)
!=
-
1
||
config
.
url
.
indexOf
(
getCam
)
!=
-
1
||
config
.
url
.
indexOf
(
LoginCode
)
!=
-
1
||
config
.
url
.
indexOf
(
registerCode
)
!=
-
1
||
config
.
url
.
indexOf
(
registerEmailCode
)
!=
-
1
||
config
.
url
.
indexOf
(
passwordEmailCode
)
!=
-
1
||
config
.
url
.
indexOf
(
changePassCode
)
!=
-
1
||
config
.
url
.
indexOf
(
passwordCode
)
!=
-
1
||
config
.
url
.
indexOf
(
setLog
)
!=
-
1
||
config
.
url
.
indexOf
(
LabelType
)
!=
-
1
||
config
.
url
.
indexOf
(
HotList
)
!=
-
1
||
config
.
url
.
indexOf
(
GetActiveInfo
)
!=
-
1
)
{
return
config
}
const
token
=
localStorage
.
getItem
(
'
index-token-all
'
);
if
(
token
)
{
config
.
headers
.
token
=
token
;
}
else
{
router
.
push
({
path
:
'
/login
'
,
query
:
{
redirect
:
router
.
currentRoute
.
fullPath
}
// 从哪个页面跳转
})
const
error
=
new
Error
(
'
请登录!
'
)
return
Promise
.
reject
(
error
)
}
let
cancel
// 设置cancelToken对象
config
.
cancelToken
=
new
axios
.
CancelToken
(
function
(
c
)
{
cancel
=
c
})
if
(
config
.
url
.
indexOf
(
'
/web/config/getUniversity
'
)
==
-
1
&&
config
.
url
.
indexOf
(
'
/web/config/getProfession
'
)
==
-
1
)
{
// 阻止重复请求。当上个请求未完成时,相同的请求不会进行
stopRepeatRequest
(
reqList
,
config
.
url
,
cancel
,
`
${
config
.
url
}
请求被中断`
)
}
if
(
config
.
hasLoading
)
{
const
loadingText
=
config
.
loadingText
?
config
.
loadingText
:
'
请求中
'
loadingInstance
=
Loading
.
service
({
lock
:
true
,
fullscreen
:
true
,
text
:
loadingText
,
background
:
'
rgba(0, 0, 0, 0.25)
'
})
}
return
config
},
(
error
)
=>
{
return
Promise
.
reject
(
error
)
}
)
instance
.
interceptors
.
response
.
use
(
(
res
)
=>
{
if
(
res
.
data
.
code
==
400034
||
res
.
data
.
code
==
400035
||
// res.data.code == 400001 ||
res
.
data
.
code
==
400002
||
res
.
data
.
code
==
400003
)
{
router
.
push
({
path
:
'
/
'
+
store
.
state
.
indexIdentity
,
})
Notification
({
message
:
res
.
data
.
message
,
duration
:
1000
,
});
return
}
if
(
res
.
data
.
code
==
400023
)
{
let
isLogout
=
res
.
config
.
url
==
'
/web/auth/loginOut
'
;
// 清除本地缓存 除了特殊缓存
store
.
commit
(
'
removeLocalStorage
'
);
router
.
push
({
path
:
'
/
'
+
store
.
state
.
indexIdentity
,
})
if
(
!
isLogout
)
{
Notification
({
message
:
res
.
data
.
message
,
duration
:
3000
,
});
}
return
}
if
(
res
.
data
.
code
==
400003
)
{
// 清除本地缓存 除了特殊缓存
store
.
commit
(
'
removeLocalStorage
'
);
router
.
push
({
path
:
'
/login
'
,
query
:
{
redirect
:
router
.
currentRoute
.
fullPath
}
// 从哪个页面跳转
})
}
loadingInstance
&&
loadingInstance
.
close
()
setTimeout
(()
=>
{
allowRequest
(
reqList
,
res
.
config
.
url
)
},
1000
)
return
res
},
(
error
)
=>
{
console
.
log
(
error
,
'
err
'
)
Message
.
closeAll
()
if
(
error
.
message
==
'
请登录!
'
)
{
router
.
push
({
path
:
"
/login?code=
"
+
store
.
state
.
indexIdentity
,
})
}
if
(
error
.
response
.
status
==
404
)
{
Notification
({
message
:
"
营地报名已关闭
"
,
duration
:
3000
,
});
}
if
(
axios
.
isCancel
(
error
))
{
console
.
log
(
error
.
message
)
}
else
{
// 增加延迟,相同请求不得在短时间内重复发送
setTimeout
(()
=>
{
console
.
log
(
error
)
allowRequest
(
reqList
,
error
.
config
.
url
)
},
1000
)
}
loadingInstance
&&
loadingInstance
.
close
()
return
Promise
.
reject
(
error
)
}
)
return
instance
(
config
)
}
/**
* axios:upload 文件上传方法
* @param url
* @param data
* @returns {Promise}
*/
export
function
upload
(
url
,
data
=
{})
{
return
new
Promise
((
resolve
,
reject
)
=>
{
axios
.
post
(
url
,
data
).
then
(
(
response
)
=>
{
resolve
(
response
);
},
(
err
)
=>
{
reject
(
err
);
}
);
});
}
// 通用下载方法
export
function
download
(
url
,
params
,
filename
)
{
console
.
log
(
url
,
params
,
filename
)
return
instance
.
post
(
url
,
params
,
{
transformRequest
:
[
params
=>
{
return
tansParams
(
params
);
}
],
headers
:
{
"
Content-Type
"
:
"
application/x-www-form-urlencoded
"
},
responseType
:
"
blob
"
})
.
then
(
data
=>
{
const
content
=
data
;
const
blob
=
new
Blob
([
content
]);
if
(
"
download
"
in
document
.
createElement
(
"
a
"
))
{
const
elink
=
document
.
createElement
(
"
a
"
);
elink
.
download
=
filename
;
elink
.
style
.
display
=
"
none
"
;
elink
.
href
=
URL
.
createObjectURL
(
blob
);
document
.
body
.
appendChild
(
elink
);
elink
.
click
();
URL
.
revokeObjectURL
(
elink
.
href
);
document
.
body
.
removeChild
(
elink
);
}
else
{
navigator
.
msSaveBlob
(
blob
,
filename
);
}
})
.
catch
(
r
=>
{
console
.
error
(
r
);
});
}
// 合并多个请求
export
function
allRequest
(
arrRequest
)
{
return
axios
.
all
(
arrRequest
)
}
src/router/index.js
View file @
279944cb
...
...
@@ -153,16 +153,13 @@ function checkCam(code, cb) {
window
.
localStorage
.
setItem
(
"
bk_pic
"
+
code
,
res
.
data
.
background_picture
);
//当前营地logo
window
.
localStorage
.
setItem
(
"
system_logo
"
+
code
,
res
.
data
.
system_logo
);
window
.
localStorage
.
setItem
(
"
doubt_code
"
+
code
,
window
.
localStorage
.
setItem
(
"
doubt_code
"
+
code
,
res
.
data
.
fill_individual_Invitationcode
);
//是否填写邀请码
window
.
localStorage
.
setItem
(
"
doubt_info
"
+
code
,
window
.
localStorage
.
setItem
(
"
doubt_info
"
+
code
,
res
.
data
.
fill_individual_information
);
//是否填写个人资料
window
.
localStorage
.
setItem
(
"
doubt_check
"
+
code
,
window
.
localStorage
.
setItem
(
"
doubt_check
"
+
code
,
res
.
data
.
audit_individual_information
);
//是否审核个人资料
// 判断使用微信二维码付款/上传转账截图
...
...
src/store/mutations.js
View file @
279944cb
...
...
@@ -31,4 +31,17 @@ export default {
state
.
fullPath
=
path
;
window
.
localStorage
.
setItem
(
'
index-fullPath
'
,
path
);
},
removeLocalStorage
(
state
){
for
(
let
key
in
window
.
localStorage
)
{
if
(
key
.
indexOf
(
'
email
'
)
==
-
1
&&
key
.
indexOf
(
'
multiform
'
)
==
-
1
&&
key
.
indexOf
(
'
register_code_time
'
)
==
-
1
&&
key
.
indexOf
(
'
restet_code_phone
'
)
==
-
1
&&
key
.
indexOf
(
'
restet_code_time
'
)
==
-
1
&&
key
.
indexOf
(
'
index-active-path
'
)
==
-
1
&&
key
.
indexOf
(
'
index-fullPath
'
)
==
-
1
)
{
window
.
localStorage
.
removeItem
(
key
);
}
}
},
};
src/views/base/login/Register.vue
View file @
279944cb
...
...
@@ -265,8 +265,7 @@
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
codeTime
=
res
.
data
.
data
.
now
*
1000
;
// console.log(this.codeTime)
window
.
localStorage
.
setItem
(
"
register_code_time
"
,
window
.
localStorage
.
setItem
(
"
register_code_time
"
,
res
.
data
.
data
.
now
*
1000
);
this
.
intervalHandle
(
new
Date
(),
res
.
data
.
data
.
now
*
1000
);
...
...
src/views/base/login/Reset.vue
View file @
279944cb
...
...
@@ -263,8 +263,7 @@
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
codeTime
=
res
.
data
.
data
.
now
*
1000
;
// console.log(this.codeTime)
window
.
localStorage
.
setItem
(
"
restet_code_time
"
,
window
.
localStorage
.
setItem
(
"
restet_code_time
"
,
res
.
data
.
data
.
now
*
1000
);
this
.
intervalHandle
(
new
Date
(),
res
.
data
.
data
.
now
*
1000
);
...
...
@@ -288,8 +287,7 @@
}
this
.
$message
.
success
(
res
.
data
.
message
);
// token存储
window
.
localStorage
.
setItem
(
"
restet_code_phone
"
,
window
.
localStorage
.
setItem
(
"
restet_code_phone
"
,
this
.
resetForm
.
phone
);
this
.
$router
.
replace
(
"
/baseLogin
"
);
...
...
src/views/index/Info/personalInfo.vue
View file @
279944cb
...
...
@@ -534,11 +534,11 @@ export default {
mounted
()
{},
created
()
{
const
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
referForm
.
phone
=
window
.
localStorage
.
getItem
(
"
phone
"
+
code
);
//本地取用户手机号
this
.
referForm
.
phone
=
window
.
localStorage
.
getItem
(
"
index-phone-all
"
);
//本地取用户手机号
this
.
referForm
.
email
=
window
.
localStorage
.
getItem
(
"
email
"
+
code
);
//本地取用户邮箱
console
.
log
(
this
.
referForm
.
email
,
"
this.referForm.email
"
);
let
signUpFile
=
window
.
localStorage
.
getItem
(
"
sign_up_file_
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
"
sign_up_file_
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
);
// console.log(signUpFile);
if
(
signUpFile
&&
JSON
.
parse
(
signUpFile
).
length
>
0
)
{
...
...
@@ -791,8 +791,7 @@ export default {
if
(
res
.
data
.
code
===
200
)
{
this
.
schoolName
=
res
.
data
.
school_list
;
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
schoolName
"
+
code
,
window
.
localStorage
.
setItem
(
"
schoolName
"
+
code
,
JSON
.
stringify
(
res
.
data
.
list
)
);
for
(
let
key
in
this
.
schoolName
)
{
...
...
src/views/index/camp/SignUp.vue
View file @
279944cb
...
...
@@ -208,8 +208,7 @@
);
if
(
!
camp_statement
)
{
this
.
dialogVisible
=
true
;
//营地通知列表弹窗
window
.
localStorage
.
setItem
(
"
camp_statement
"
+
this
.
$store
.
state
.
indexIdentity
,
window
.
localStorage
.
setItem
(
"
camp_statement
"
+
this
.
$store
.
state
.
indexIdentity
,
"
1
"
);
}
...
...
@@ -354,15 +353,12 @@
window
.
localStorage
.
setItem
(
"
has_amount
"
+
code
,
res
.
data
.
has_amount
);
window
.
localStorage
.
setItem
(
"
campsite_id
"
+
code
,
res
.
data
.
campsite_id
);
window
.
localStorage
.
setItem
(
"
order_no
"
+
code
,
res
.
data
.
order_no
);
window
.
localStorage
.
setItem
(
"
examine_status
"
+
code
,
window
.
localStorage
.
setItem
(
"
examine_status
"
+
code
,
res
.
data
.
examine_status
);
//返回错误原因
window
.
localStorage
.
setItem
(
"
examine_reason
"
+
code
,
window
.
localStorage
.
setItem
(
"
examine_reason
"
+
code
,
res
.
data
.
examine_reason
);
//资料审核状态
// window.localStorage.setItem("achievement_path", res.data.achievement_path); //上传的图片
const
aPath
=
res
.
data
.
achievement_path
;
if
(
aPath
)
{
let
arr
=
aPath
.
split
(
"
,
"
);
...
...
@@ -374,9 +370,8 @@
return
obj
;
});
// let code = this.$store.state.indexIdentity;
window
.
localStorage
.
setItem
(
"
sign_up_file_
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
window
.
localStorage
.
setItem
(
"
sign_up_file_
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
,
JSON
.
stringify
(
fileList
)
);
//上传的图片
...
...
@@ -397,13 +392,11 @@
// console.log(fileList)
// console.log(JSON.stringify(fileList))
// let code = this.$store.state.indexIdentity;
window
.
localStorage
.
setItem
(
"
bank_info
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
,
window
.
localStorage
.
setItem
(
"
bank_info
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
,
JSON
.
stringify
(
fileList
)
);
//上传的图片
}
else
{
window
.
localStorage
.
setItem
(
"
bank_info
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
,
window
.
localStorage
.
setItem
(
"
bank_info
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
,
"
[]
"
);
}
...
...
src/views/index/camp/homework/refer.vue
View file @
279944cb
...
...
@@ -271,7 +271,7 @@
console
.
log
(
value
,
"
value
"
);
// let code = this.$store.state.indexIdentity;
// this.formData.stu_enclosure_url = window.localStorage.getItem(
// "student_file_" + window.localStorage.getItem("
phone" + code
) + code
// "student_file_" + window.localStorage.getItem("
index-phone-all"
) + code
// );
// console.log(
// this.stu_fileList,' this.stu_fileList'
...
...
@@ -327,12 +327,10 @@
};
},
created
()
{
// console.log(this.formData.stu_enclosure_url);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
let
stu_fileListoss
=
window
.
localStorage
.
getItem
(
"
student_file_
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
"
student_file_
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
);
console
.
log
(
stu_fileListoss
);
if
(
stu_fileListoss
&&
JSON
.
parse
(
stu_fileListoss
).
length
>
0
)
{
this
.
stu_fileListoss
=
JSON
.
parse
(
stu_fileListoss
);
}
...
...
@@ -352,7 +350,6 @@
//老师作业展示
getTeachList
()
{
let
url
=
this
.
enclosure_urls
;
// console.log(this.enclosure_urls);
if
(
this
.
enclosure_urls
)
{
let
arr
=
url
.
split
(
"
,
"
);
arr
.
forEach
((
item
)
=>
{
...
...
@@ -368,16 +365,7 @@
},
// 下载老师附件
downloadStuFile
(
url
)
{
// this.download(
// "http://api.campcenter.cn/web/download/downloadTeacherWork",
// {
// enclosure_url: url,
// identity: this.$store.state.indexIdentity
// },
// ""
// );
downloadTeacherWork
({
enclosure_url
:
url
}).
then
((
res
)
=>
{
// console.log(res, "res");
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
...
...
@@ -394,7 +382,6 @@
// 下载老师评分结果
downloadScoreFile
(
url
)
{
downloadTeacherWork
({
enclosure_url
:
url
}).
then
((
res
)
=>
{
// console.log(res, "res");
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
...
...
@@ -410,13 +397,8 @@
},
// 学生作业回显
getStudentWork
(
student_status
)
{
// console.log(student_status, "student_status");
let
stu_work_num
=
this
.
work_nums
;
// console.log(stu_work_num);
// console.log(this.formData);
// return
getStudentWork
({
teacher_id
:
stu_work_num
}).
then
((
res
)
=>
{
// console.log(res, "getStudentWork");
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
...
...
@@ -424,10 +406,8 @@
if
(
student_status
==
1
)
{
// 学生已提交
this
.
formData
.
stu_answer
=
res
.
data
.
data
.
stu_answer
;
// console.log(this.formData);
//学生的已经提交的相关附件
this
.
formData
.
stu_enclosure_url
=
res
.
data
.
data
.
stu_enclosure_url
;
console
.
log
(
this
.
formData
.
stu_enclosure_url
)
let
gotfileList
=
res
.
data
.
data
.
work
;
if
(
gotfileList
)
{
this
.
stu_fileList
=
gotfileList
.
map
((
item
)
=>
{
...
...
@@ -438,14 +418,11 @@
type
:
item
.
type
,
};
});
//
this
.
fileList
=
gotfileList
.
map
((
item
)
=>
{
return
{
url_open
:
item
.
url_open
,
};
});
console
.
log
(
this
.
stu_fileList
);
console
.
log
(
this
.
fileList
);
}
this
.
$forceUpdate
();
}
else
if
(
student_status
==
2
)
{
...
...
@@ -464,11 +441,9 @@
}
this
.
score
=
res
.
data
.
data
.
score
;
//老师评分
this
.
teacher_commment
=
res
.
data
.
data
.
teacher_commment
;
//老师评语
// console.log(res.data.data.teacher_commment, " this.teacher_commment");
let
scoreFileList
=
res
.
data
.
data
.
teacher_url
;
if
(
scoreFileList
)
{
let
arr
=
scoreFileList
.
split
(
"
,
"
);
// console.log(arr, "arr");
this
.
tea_scoreFileList
=
arr
.
map
((
item
)
=>
{
return
{
name
:
item
.
split
(
"
workforstudent/
"
)[
1
],
...
...
@@ -486,7 +461,7 @@
cancelBtnTrue
()
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
removeItem
(
"
student_file_
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
"
student_file_
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
);
this
.
stu_fileList
=
[];
this
.
stu_fileListoss
=
""
;
...
...
@@ -501,10 +476,9 @@
cancelBtn
()
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
removeItem
(
"
student_file_
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
code
"
student_file_
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
);
this
.
stu_fileList
=
[];
this
.
stu_fileListoss
=
""
;
this
.
teaFileList
=
[];
this
.
dialogVisible
=
false
;
...
...
@@ -520,10 +494,7 @@
},
uploadPicture
(
params
)
{
this
.
isUploading
=
true
;
// console.log("已经准备好上传图片", params);
this
.
file
=
params
.
file
;
// console.log(this.file, "1111");
console
.
log
(
this
.
file
,
"
1111
"
);
let
raw
=
params
.
file
;
let
image
=
{
name
:
raw
.
name
,
...
...
@@ -542,7 +513,6 @@
teacher_id
:
this
.
work_nums
,
})
.
then
((
res
)
=>
{
// console.log(res, "开始上传图片");
if
(
res
.
data
.
code
===
200
)
{
let
oss_url
=
res
.
data
.
config
.
host
;
let
filename
=
res
.
data
.
config
.
file
;
...
...
@@ -555,12 +525,10 @@
formData
.
append
(
"
callback
"
,
res
.
data
.
config
.
callback
);
formData
.
append
(
"
success_action_status
"
,
200
);
formData
.
append
(
"
file
"
,
file
);
// console.log(formData);
this
.
upload
(
oss_url
,
formData
)
.
then
((
ress
)
=>
{
console
.
log
(
ress
,
"
ress
"
);
if
(
ress
.
data
.
code
!=
200
)
{
// console.log(ress, "ress");
this
.
isUploading
=
false
;
return
this
.
$message
.
error
(
ress
.
data
.
message
);
}
...
...
@@ -572,27 +540,20 @@
savefile
:
res
.
data
.
config
.
savefile
,
name
:
res
.
data
.
config
.
savefile
.
split
(
"
/work/
"
)[
1
],
};
console
.
log
(
this
.
stu_fileList
,
"
this.stu_fileList
"
);
this
.
stu_fileList
.
push
(
obj
);
this
.
fileList
.
push
(
obj
);
console
.
log
(
this
.
fileList
,
'
this.fileList
'
)
this
.
stu_fileListoss
=
this
.
stu_fileList
.
map
((
item
)
=>
{
return
item
.
url_open
;
})
.
join
(
"
,
"
);
console
.
log
(
this
.
stu_fileListoss
,
"
stu_fileListoss
"
);
// this.formData.stu_enclosure_url = this.stu_fileListoss;
let
code
=
this
.
$store
.
state
.
indexIdentity
;
console
.
log
(
typeof
(
this
.
stu_fileListoss
))
window
.
localStorage
.
setItem
(
"
student_file_
"
+
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
window
.
localStorage
.
setItem
(
"
student_file_
"
+
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
,
JSON
.
stringify
(
this
.
stu_fileListoss
)
);
console
.
log
(
'
student_file_
'
)
this
.
isUploading
=
false
;
})
.
catch
((
err
)
=>
{
...
...
@@ -606,7 +567,6 @@
})
.
catch
((
err
)
=>
{
this
.
isUploading
=
false
;
// console.log(err);
});
},
// 下载证明资料图片
...
...
@@ -640,7 +600,7 @@
if
(
item
.
url_open
==
file
.
url_open
)
{
this
.
stu_fileList
.
splice
(
idx
,
1
);
// this.fileList.splice(idx, 1);
console
.
log
(
this
.
fileList
);
console
.
log
(
this
.
fileList
);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
stu_fileListoss
=
this
.
stu_fileList
.
map
(
function
(
item
,
index
)
{
...
...
@@ -650,9 +610,8 @@
console
.
log
(
this
.
stu_fileListoss
);
console
.
log
(
this
.
stu_fileList
);
this
.
$message
.
success
(
res
.
data
.
message
);
window
.
localStorage
.
setItem
(
"
student_file_
"
+
window
.
localStorage
.
getItem
(
"
phone
"
+
code
)
+
window
.
localStorage
.
setItem
(
"
student_file_
"
+
window
.
localStorage
.
getItem
(
"
index-phone-all
"
)
+
code
,
this
.
stu_fileListoss
);
...
...
@@ -698,10 +657,10 @@
.
substring
(
url
.
lastIndexOf
(
"
.
"
)
+
1
,
url
.
length
)
.
split
(
"
?
"
)[
0
];
let
isWord
=
onlineViewType
.
find
((
type
)
=>
type
===
fileTypeName
);
console
.
log
(
isWord
,
'
isWord
'
)
if
(
isWord
==
'
ppt
'
||
isWord
==
'
pptx
'
)
{
console
.
log
(
isWord
,
'
isWord
'
)
if
(
isWord
==
'
ppt
'
||
isWord
==
'
pptx
'
)
{
url
=
"
http://view.officeapps.live.com/op/view.aspx?src=
"
+
url
;
}
else
{
}
else
{
url
=
url
;
}
window
.
open
(
url
,
"
_blank
"
);
...
...
src/views/index/login/Login.vue
View file @
279944cb
<
template
>
<
template
>
<div
class=
"container"
>
<div
class=
"title_Login"
>
<div
v-if=
"changeLogin == 1"
>
...
...
@@ -79,7 +79,7 @@
:prop=
"changeLogin == 2 ? 'code' : ''"
ref=
"code"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/code.png"
alt=
""
/>
<img
class=
"img_l"
src=
"@/assets/img/reset/code.png"
alt=
""
/>
<el-input
v-model=
"loginForm.code"
placeholder=
"请输入短信验证码"
...
...
@@ -88,7 +88,7 @@
<!-- 短信验证码 -->
<div
class=
"phoneCode"
>
<span
class=
"code"
v-show=
"showCode"
@
click=
"getCode"
>
获取验证码
</span
>
获取验证码
</span
>
<span
v-show=
"!showCode"
class=
"count"
>
{{
count
}}
s
</span>
</div>
...
...
@@ -110,353 +110,371 @@
</
template
>
<
script
>
/* eslint-disable */
import
Cookie
from
"
js-cookie
"
;
import
{
login
,
loginCode
}
from
"
r/index/login
"
;
import
{
mobileCheck
}
from
"
@/common/utils.js
"
;
import
{
intervalTime
}
from
"
store/time
"
;
/* eslint-disable */
import
Cookie
from
"
js-cookie
"
;
import
{
login
,
loginCode
}
from
"
r/index/login
"
;
import
{
mobileCheck
}
from
"
@/common/utils.js
"
;
import
{
intervalTime
}
from
"
store/time
"
;
export
default
{
name
:
"
index-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
();
}
export
default
{
name
:
"
index-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
;
}
}
,
},
},
],
// 对验证码进行校验
code
:
[
{
required
:
true
,
message
:
"
请输入验证码
"
,
trigger
:
"
blur
"
},
{
min
:
6
,
max
:
20
,
message
:
"
请输入正确的验证码
"
,
trigger
:
"
blur
"
},
],
},
changeLogin
:
2
,
};
},
created
()
{
this
.
$emit
(
"
getStatus
"
,
false
);
const
code
=
this
.
$store
.
state
.
indexIdentity
;
const
endTime
=
window
.
localStorage
.
getItem
(
"
login_code_time
"
+
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
code
=
this
.
$store
.
state
.
indexIdentity
;
const
endTime
=
window
.
localStorage
.
getItem
(
"
login_code_time
"
+
code
);
if
(
endTime
&&
Number
(
endTime
)
>
new
Date
().
getTime
())
{
this
.
loginForm
.
phone
=
phone
;
this
.
intervalHandle
(
new
Date
(),
Number
(
endTime
));
}
this
.
commonApi
(
31
)
},
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
);
if
(
endTime
&&
Number
(
endTime
)
>
new
Date
().
getTime
())
{
this
.
loginForm
.
phone
=
phone
;
this
.
intervalHandle
(
new
Date
(),
Number
(
endTime
));
}
this
.
commonApi
(
31
)
},
// 获取手机验证短信
getCode
()
{
if
(
!
this
.
loginForm
.
phone
)
{
return
this
.
$message
.
error
(
"
请输入手机号
"
);
}
// if (!this.codeTime) {
// return this.$message.error("您已经获取验证码,请去邮箱中进行查看");
// }
// 接口获得验证码
loginCode
({
phone
:
this
.
loginForm
.
phone
,
}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
passwordCode
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
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
);
}
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
(
"
login_code_time
"
+
code
,
res
.
data
.
data
.
now
*
1000
);
this
.
intervalHandle
(
new
Date
(),
res
.
data
.
data
.
now
*
1000
);
});
},
// 忘记账号/密码
forgetPwd
()
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
$router
.
push
(
"
/reset?code=
"
+
code
);
},
// 去注册
register
()
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
$router
.
push
(
"
/register?code=
"
+
code
);
},
// 改变密码显示状态
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
;
},
// 获取手机验证短信
getCode
()
{
if
(
!
this
.
loginForm
.
phone
)
{
return
this
.
$message
.
error
(
"
请输入手机号
"
);
}
console
.
log
(
obj
);
login
(
obj
).
then
((
res
)
=>
{
console
.
log
(
res
,
"
login
"
);
// if (!this.codeTime) {
// return this.$message.error("您已经获取验证码,请去邮箱中进行查看");
// }
// 接口获得验证码
loginCode
({
phone
:
this
.
loginForm
.
phone
,
}).
then
((
res
)
=>
{
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
"
+
code
,
res
.
data
.
data
.
now
*
1000
);
this
.
$router
.
replace
(
"
/signUp/examInfo?code=
"
+
code
);
this
.
intervalHandle
(
new
Date
(),
res
.
data
.
data
.
now
*
1000
);
});
},
// 忘记账号/密码
forgetPwd
()
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
$router
.
push
(
"
/reset?code=
"
+
code
);
},
// 去注册
register
()
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
this
.
$router
.
push
(
"
/register?code=
"
+
code
);
},
// 改变密码显示状态
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
;
}
console
.
log
(
obj
);
login
(
obj
).
then
((
res
)
=>
{
console
.
log
(
res
,
"
login
"
);
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-all
"
,
res
.
data
.
token
);
window
.
localStorage
.
setItem
(
"
index-phone-all
"
,
this
.
loginForm
.
phone
);
window
.
localStorage
.
setItem
(
"
email
"
+
code
,
res
.
data
.
email
);
// 报名信息
window
.
localStorage
.
setItem
(
"
camp_name
"
+
code
,
res
.
data
.
cam
.
name
);
//获取主题色
window
.
localStorage
.
setItem
(
"
system_color
"
+
code
,
res
.
data
.
cam
.
system_color
);
this
.
$router
.
replace
(
"
/signUp/examInfo?code=
"
+
code
);
});
});
}
);
}
,
},
},
};
};
</
script
>
<
style
scoped
lang=
"scss"
>
.flex
{
display
:
flex
;
}
.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
:
19px
0
0
0
;
text-align
:
center
;
.title
{
height
:
20px
;
font-size
:
16px
;
font-weight
:
500
;
color
:
var
(
--
color
);
line-height
:
20px
;
text-align
:
right
;
}
.change_login
{
font-size
:
22px
;
margin-top
:
32px
;
color
:
black
;
text-align
:
center
;
}
.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
;
}
.phoneCode
{
position
:
absolute
;
z-index
:
999
;
top
:
50%
;
right
:
25px
;
transform
:
translate
(
0
,
-50%
);
cursor
:
pointer
;
margin
:
19px
0
0
0
;
text-align
:
center
;
.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
;
.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/index/login/Register.vue
View file @
279944cb
...
...
@@ -11,7 +11,7 @@
class=
"demo-registerForm"
>
<el-form-item
prop=
"phone"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/username.png"
alt=
""
/>
<img
class=
"img_l"
src=
"@/assets/img/reset/username.png"
alt=
""
/>
<el-input
v-model=
"registerForm.phone"
placeholder=
"请输入手机号"
...
...
@@ -29,7 +29,7 @@
></el-input>
</el-form-item>
-->
<el-form-item
prop=
"code"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/code.png"
alt=
""
/>
<img
class=
"img_l"
src=
"@/assets/img/reset/code.png"
alt=
""
/>
<el-input
v-model=
"registerForm.code"
placeholder=
"请输入短信验证码"
...
...
@@ -37,31 +37,31 @@
></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=
"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>
</el-form-item>
<el-form-item
prop=
"password"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/password.png"
alt=
""
/>
<img
class=
"img_l"
src=
"@/assets/img/reset/password.png"
alt=
""
/>
<el-input
v-model=
"registerForm.password"
maxlength=
"20"
...
...
@@ -84,7 +84,7 @@
/>
-->
</el-form-item>
<el-form-item
prop=
"rq_password"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/password.png"
alt=
""
/>
<img
class=
"img_l"
src=
"@/assets/img/reset/password.png"
alt=
""
/>
<el-input
v-model=
"registerForm.rq_password"
placeholder=
"请再次输入登录密码"
...
...
@@ -106,366 +106,365 @@
</
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
"
;
export
default
{
name
:
"
index-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
();
}
/* 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
"
;
export
default
{
name
:
"
index-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
();
}
},
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
));
}
this
.
commonApi
(
30
)
},
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
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
));
}
this
.
commonApi
(
30
)
},
// 获取手机验证短信
getCode
()
{
if
(
!
this
.
registerForm
.
phone
)
{
return
this
.
$message
.
error
(
"
请输入邮箱
"
);
}
// if (!this.codeTime) {
// return this.$message.error("您已经获取验证码,请去邮箱中进行查看");
// }
// 接口获得验证码
registerCode
({
phone
:
this
.
registerForm
.
phone
,
}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
passwordCode
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
codeTime
=
res
.
data
.
data
.
now
*
1000
;
// console.log(this.codeTime)
methods
:
{
// 去注册
toLogin
()
{
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
({
this
.
$router
.
push
(
"
/login?code=
"
+
code
);
},
// 改变密码显示状态
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
);
}
},
// 获取手机验证短信
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);
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
codeTime
=
res
.
data
.
data
.
now
*
1000
;
// console.log(this.codeTime)
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
);
//获取主题色
window
.
localStorage
.
setItem
(
"
system_color
"
+
code
,
res
.
data
.
cam
.
system_color
window
.
localStorage
.
setItem
(
"
register_code_time
"
+
code
,
res
.
data
.
data
.
now
*
1000
);
this
.
intervalHandle
(
new
Date
(),
res
.
data
.
data
.
now
*
1000
);
});
},
// 跳转到报名
this
.
$router
.
replace
(
"
/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);
let
code
=
this
.
$store
.
state
.
indexIdentity
;
// token存储
window
.
localStorage
.
setItem
(
"
index-token-all
"
,
res
.
data
.
token
);
window
.
localStorage
.
setItem
(
"
index-phone-all
"
,
this
.
registerForm
.
phone
);
// window.localStorage.setItem("email" + code, this.registerForm.email);
// 报名信息
window
.
localStorage
.
setItem
(
"
camp_name
"
+
code
,
res
.
data
.
cam
.
name
);
//获取主题色
window
.
localStorage
.
setItem
(
"
system_color
"
+
code
,
res
.
data
.
cam
.
system_color
);
// 跳转到报名
this
.
$router
.
replace
(
"
/signUp/examInfo?code=
"
+
code
);
});
});
}
);
}
,
},
},
};
};
</
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
;
}
// .line {
// width: 103px;
// height: 3px;
// background: var(--color);
// border-radius: 2px;
// }
::v-deep
.el-form
{
margin-top
:
60px
;
// 注册输入
.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
;
}
.el-form-item
{
position
:
relative
;
margin-bottom
:
30px
;
// .line {
// width: 103px;
// height: 3px;
// background: var(--color);
// border-radius: 2px;
// }
&
:last-child
{
margin
:
0
;
}
::v-deep
.el-form
{
margin-top
:
60px
;
.el-form-item
__content
{
.el-form-item
{
position
:
relative
;
margin-bottom
:
30px
;
.phoneCode
{
position
:
absolute
;
z-index
:
999
;
top
:
50%
;
right
:
25px
;
transform
:
translate
(
0
,
-50%
);
cursor
:
pointer
;
&
:last-child
{
margin
:
0
;
}
.code
{
font-size
:
14px
;
font-weight
:
600
;
color
:
var
(
--
color
);
.el-form-item__content
{
position
:
relative
;
.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_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
;
&
:focus
{
border-bottom-color
:
var
(
--
color
);
.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
);
}
}
}
.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/index/login/Reset.vue
View file @
279944cb
...
...
@@ -11,7 +11,7 @@
class=
"demo-resetForm"
>
<el-form-item
prop=
"phone"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/username.png"
alt=
""
/>
<img
class=
"img_l"
src=
"@/assets/img/reset/username.png"
alt=
""
/>
<el-input
v-model=
"resetForm.phone"
placeholder=
"请输入手机号"
...
...
@@ -23,11 +23,11 @@
<el-input
v-model=
"resetForm.email"
placeholder=
"请输入邮箱"
></el-input>
</el-form-item>
-->
<el-form-item
prop=
"code"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/code.png"
alt=
""
/>
<img
class=
"img_l"
src=
"@/assets/img/reset/code.png"
alt=
""
/>
<el-input
v-model=
"resetForm.code"
placeholder=
"请输入短信验证码"
...
...
@@ -47,18 +47,18 @@
v-model=
"resetForm.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>
</el-form-item>
<el-form-item
prop=
"password"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/password.png"
alt=
""
/>
<img
class=
"img_l"
src=
"@/assets/img/reset/password.png"
alt=
""
/>
<el-input
v-model=
"resetForm.password"
maxlength=
"20"
...
...
@@ -81,7 +81,7 @@
/>
-->
</el-form-item>
<el-form-item
prop=
"rq_password"
>
<img
class=
"img_l"
src=
"@/assets/img/reset/password.png"
alt=
""
/>
<img
class=
"img_l"
src=
"@/assets/img/reset/password.png"
alt=
""
/>
<el-input
v-model=
"resetForm.rq_password"
placeholder=
"请再次输入新的登录密码"
...
...
@@ -102,353 +102,348 @@
</
template
>
<
script
>
/* eslint-disable */
// 请求接口
import
{
passwordCode
}
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/index/register
"
;
import
{
changePassCode
}
from
"
r/index/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
:
"
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
();
}
},
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
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
));
}
},
// 获取手机验证短信
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,
}).
then
((
res
)
=>
{
console
.
log
(
res
,
"
passwordCode
"
);
if
(
res
.
data
.
code
!=
200
)
{
return
this
.
$message
.
error
(
res
.
data
.
message
);
}
this
.
$message
.
success
(
res
.
data
.
message
);
this
.
codeTime
=
res
.
data
.
data
.
now
*
1000
;
// console.log(this.codeTime)
methods
:
{
// 去注册
toLogin
()
{
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
({
this
.
$router
.
push
(
"
/login?code=
"
+
code
);
},
// 改变密码显示状态
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
);
}
},
// 获取手机验证短信
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存储
this
.
codeTime
=
res
.
data
.
data
.
now
*
1000
;
// console.log(this.codeTime)
let
code
=
this
.
$store
.
state
.
indexIdentity
;
// window.localStorage.setItem("index-token" + code, res.token);
window
.
localStorage
.
setItem
(
"
restet_code_phone
"
+
code
,
this
.
resetForm
.
phone
window
.
localStorage
.
setItem
(
"
restet_code_time
"
+
code
,
res
.
data
.
data
.
now
*
1000
);
this
.
$router
.
replace
(
"
/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存储
let
code
=
this
.
$store
.
state
.
indexIdentity
;
window
.
localStorage
.
setItem
(
"
restet_code_phone
"
+
code
,
this
.
resetForm
.
phone
);
this
.
$router
.
replace
(
"
/login?code=
"
+
code
);
});
});
},
},
},
};
};
</
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
;
text-align
:
center
;
}
.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
;
&
:hover
{
color
:
var
(
--
color
);
text-decoration
:
underline
;
.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/index/recruit/Index.vue
View file @
279944cb
...
...
@@ -85,8 +85,7 @@
methods
:
{
toLogin
()
{
let
code
=
this
.
$store
.
state
.
indexIdentity
;
// console.log(window.localStorage.getItem("index-token"+code),'1111')
if
(
!
window
.
localStorage
.
getItem
(
"
index-token
"
+
code
))
{
if
(
!
window
.
localStorage
.
getItem
(
"
index-token-all
"
))
{
this
.
$router
.
push
(
"
/login?code=
"
+
code
);
}
else
{
this
.
$router
.
push
(
"
/signUp/examInfo?code=
"
+
code
);
...
...
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