Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
U
uni-pdtravel
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
panyongping
uni-pdtravel
Commits
eb6d986e
Commit
eb6d986e
authored
Jul 01, 2024
by
潘永坪
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
联票电子门票开发
parent
a3fa36ef
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
164 additions
and
80 deletions
+164
-80
jointElectronicTicket.vue
.../my/order/jointElectronicTicket/jointElectronicTicket.vue
+164
-80
No files found.
pages/my/order/jointElectronicTicket/jointElectronicTicket.vue
View file @
eb6d986e
...
@@ -31,7 +31,7 @@
...
@@ -31,7 +31,7 @@
<!-- 等于1为需要排号的景区 -->
<!-- 等于1为需要排号的景区 -->
<view
class=
"product-number"
v-if=
"item.isFetch=='1'"
v-for=
"(item2,a) in item.sorts"
:key=
'a'
>
<view
class=
"product-number"
v-if=
"item.isFetch=='1'"
v-for=
"(item2,a) in item.sorts"
:key=
'a'
>
<!-- 1可进入等候区 -->
<!-- 1可进入等候区 -->
<
template
v-if=
"item2.sortFair==1
"
>
<
view
v-if=
"item2.sortFair==1"
style=
"background: #31AA6B;color: #ffffff;
"
>
<view
class=
"my-number"
>
<view
class=
"my-number"
>
<view>
<view>
<view>
我的排队号
</view>
<view>
我的排队号
</view>
...
@@ -45,82 +45,83 @@
...
@@ -45,82 +45,83 @@
<view
class=
"current-number"
>
<view
class=
"current-number"
>
当前排队区间
<text>
{{
item2
.
showStart
}}
-
{{
item2
.
showEnd
}}
</text>
号
当前排队区间
<text>
{{
item2
.
showStart
}}
-
{{
item2
.
showEnd
}}
</text>
号
</view>
</view>
<view
class=
"number-notice"
>
<view
class=
"number-notice"
style=
"color: #ffffff;"
>
<view>
<view>
温馨提示:
{{
item2
.
config
.
paRowNumHint
}}
温馨提示:
{{
item2
.
config
.
paRowNumHint
}}
</view>
</view>
<!-- 可以进入排队区提示 -->
<!-- 可以进入排队区提示 -->
<view
style=
"color: #FE6600;"
>
<view>
{{
item2
.
config
.
paArrivalNumHint
}}
{{
item2
.
config
.
paArrivalNumHint
}}
</view>
</view>
</view>
</view>
</
template
>
</
view
>
<!-- 2已过号不可重排,3已过号可重排 -->
<!-- 2已过号不可重排,3已过号可重排 -->
<
template
v-else-if=
"item2.sortFair==2||item2.sortFair==3
"
>
<
view
v-else-if=
"item2.sortFair==2||item2.sortFair==3"
style=
"background: #F53F3F;color: #ffffff;
"
>
<
view
class=
"my-number"
>
<
!-- 等于1为过号允许再次排号 --
>
<!-- 等于1为过号允许排号 --
>
<view
class=
"my-number"
v-if=
"item2.config.paPassedNumEnable==1"
>
<view
v-if=
"item2.config.paPassedNumEnable==1"
>
<view
>
<
text>
我的排队号
</text
>
<
view>
我的排队号
</view
>
<
text>
{{
item2
.
sortNo
}}
</text
>
<
view>
{{
item2
.
sortNo
}}
</view
>
</view>
</view>
<view
v-if=
"item2.config.paPassedNumEnable==1"
>
<view>
<text>
您排队号已过
</text>
<view>
您排队号已过
</view>
<text
v-if=
"item2.sortFair==3"
@
click=
"signOverFun(item2)"
>
取号
</text>
<view
v-show=
"item2.sortFair==3"
>
<!-- 1为过号提示确定后重新排号 -->
<text
class=
"number-btn"
v-if=
"item2.config.paPassedNumTakeType==1"
@
click=
"clickSortAgain(item)"
>
重新取号
</text>
<!-- 0为过号直接重新排号 -->
<text
class=
"number-btn"
v-else
@
click=
"sortAgain(item)"
>
重新取号
</text>
</view>
</view>
<!-- 等于0过号不允许排号,只进行提示 -->
<view
v-if=
"item2.config.paPassedNumEnable==0"
>
>
<text>
{{
item2
.
config
.
paPassedNumHint
}}
</text>
</view>
</view>
</view>
</view>
<!-- 等于0过号不允许再次排号,只进行提示 -->
<view
v-if=
"item2.config.paPassedNumEnable==0"
>
<view>
{{
item2
.
config
.
paPassedNumHint
}}
</view>
</view>
<view
class=
"current-number"
>
<view
class=
"current-number"
>
当前排队区间
<text>
{{
item2
.
showStart
}}
-
{{
item2
.
showEnd
}}
</text>
号
当前排队区间
<text>
{{
item2
.
showStart
}}
-
{{
item2
.
showEnd
}}
</text>
号
</view>
</view>
<view
class=
"number-notice"
>
温馨提示:
{{
item2
.
config
.
paRowNumHint
}}
</view>
</view>
</
template
>
<!-- 4-可返程取号(仅胖丁显示),5-第一次取号(仅胖丁显示)-->
<!-- 4-可返程取号(仅胖丁显示),5-第一次取号(仅胖丁显示)-->
<
template
v-else-if=
"item2.sortFair==4||item2.sortFair==5"
>
<view
v-else-if=
"item2.sortFair==4||item2.sortFair==5"
>
<view
class=
"my-number"
>
<view
class=
"current-number"
>
<view>
当前排队区间
<text
style=
"color: #FE6600;"
>
{{
item2
.
showStart
}}
-
{{
item2
.
showEnd
}}
</text>
号
<view>
我的排队号
</view>
<view>
{{
item2
.
sortNo
}}
</view>
</view>
<view>
<view>
预计进入时间
</view>
<view>
{{
item2
.
sortNoTime
}}
</view>
</view>
</view>
<!-- 1购票返程允许取号 -->
<view
v-if=
"item2.config.paReturnTripNumEnable==1"
style=
"margin-top: 20rpx;"
>
<text
v-if=
"canTakeNumber"
@
click=
"sortAgain(item)"
class=
"number-btn2"
>
取号
</text>
<text
v-else
>
<text
style=
"color: #FE6600;font-weight: bold;"
>
{{
minute
}}
</text>
分
<text
style=
"color: #FE6600;font-weight: bold;"
>
{{
second
}}
</text>
秒后可取号
</text>
</view>
</view>
<view
class=
"current-number"
>
<!-- 1购票返程不允许取号,仅提示 -->
当前排队区间
<text>
{{
item2
.
showStart
}}
-
{{
item2
.
showEnd
}}
</text>
号
<view
v-if=
"item2.config.paReturnTripNumEnable==0"
style=
"margin-top: 20rpx;"
>
{{
item
.
config
.
paReturnTripHint
}}
</view>
</view>
<view
class=
"number-notice"
>
温馨提示:
{{
item2
.
config
.
paRowNumHint
}}
</view>
</view>
</
template
>
<!-- 6已过闸 -->
<!-- 6已过闸 -->
<view
v-else-if=
"item2.sortFair==6"
>
<view
v-else-if=
"item2.sortFair==6"
style=
"color: #FE6600;"
>
温馨提示:您已过闸
温馨提示:您已过闸
</view>
</view>
<!-- 7提前通知-->
<!-- 7提前通知-->
<
template
v-else-if=
"item2.sortFair==7"
>
<
view
v-else-if=
"item2.sortFair==7"
>
<view
class=
"my-number"
>
<view
class=
"my-number"
>
<!-- 0
隐藏排队号,1显示
排队号 -->
<!-- 0
显示排队号,1隐藏
排队号 -->
<view
v-if=
"item2.config.paHideNum
=
=1"
>
<view
v-if=
"item2.config.paHideNum
!
=1"
>
<view>
我的排队号
</view>
<view>
我的排队号
</view>
<view>
{{
item2
.
sortNo
}}
</view>
<view
style=
"color: #FE6600;"
>
{{
item2
.
sortNo
}}
</view>
</view>
</view>
<!-- 0
隐藏预计时间,1显示
预计时间 -->
<!-- 0
显示预计时间,1隐藏
预计时间 -->
<view
v-if=
"item2.config.paHideEstimatedTime
=
=1"
>
<view
v-if=
"item2.config.paHideEstimatedTime
!
=1"
>
<view
>
预计进入时间
</view>
<view
>
预计进入时间
</view>
<view>
{{
item2
.
sortNoTime
}}
</view>
<view
style=
"color: #FE6600;"
>
{{
item2
.
sortNoTime
}}
</view>
</view>
</view>
</view>
</view>
<view
class=
"current-number"
>
<view
class=
"current-number"
>
当前排队区间
<text>
{{
item2
.
showStart
}}
-
{{
item2
.
showEnd
}}
</text>
号
当前排队区间
<text
style=
"color: #FE6600;"
>
{{
item2
.
showStart
}}
-
{{
item2
.
showEnd
}}
</text>
号
</view>
</view>
<view
class=
"number-notice"
>
<view
class=
"number-notice"
>
<view>
<view
style=
"color: #666666;"
>
温馨提示:
{{
item2
.
config
.
paRowNumHint
}}
温馨提示:
{{
item2
.
config
.
paRowNumHint
}}
</view>
</view>
<view
style=
"color: #FE6600;"
>
<view
style=
"color: #FE6600;"
>
...
@@ -132,26 +133,26 @@
...
@@ -132,26 +133,26 @@
</text>
</text>
</view>
</view>
</view>
</view>
</
template
>
</
view
>
<!-- 未到号 -->
<!-- 未到号 -->
<
template
v-else
>
<
view
v-else
>
<view
class=
"my-number"
>
<view
class=
"my-number"
>
<view>
<view>
<view>
我的排队号
</view>
<view>
我的排队号
</view>
<view>
{{
item2
.
sortNo
}}
</view>
<view
style=
"color: #FE6600;"
>
{{
item2
.
sortNo
}}
</view>
</view>
</view>
<view>
<view>
<view>
预计进入时间
</view>
<view>
预计进入时间
</view>
<view>
{{
item2
.
sortNoTime
}}
</view>
<view
style=
"color: #FE6600;"
>
{{
item2
.
sortNoTime
}}
</view>
</view>
</view>
</view>
</view>
<view
class=
"current-number"
>
<view
class=
"current-number"
>
当前排队区间
<text>
{{
item2
.
showStart
}}
-
{{
item2
.
showEnd
}}
</text>
号
当前排队区间
<text
style=
"color: #FE6600;"
>
{{
item2
.
showStart
}}
-
{{
item2
.
showEnd
}}
</text>
号
</view>
</view>
<view
class=
"number-notice"
>
<view
class=
"number-notice"
style=
"color: #666666;"
>
温馨提示:
{{
item2
.
config
.
paRowNumHint
}}
温馨提示:
{{
item2
.
config
.
paRowNumHint
}}
</view>
</view>
</
template
>
</
view
>
</view>
</view>
<!-- 后端返回了二维码才显示下面内容 -->
<!-- 后端返回了二维码才显示下面内容 -->
<view
class=
"product-code"
v-if=
"item.orderTicketDetailList.length>0&&item.orderTicketDetailList[0].verifyCode"
>
<view
class=
"product-code"
v-if=
"item.orderTicketDetailList.length>0&&item.orderTicketDetailList[0].verifyCode"
>
...
@@ -250,6 +251,14 @@
...
@@ -250,6 +251,14 @@
<text>
申请退票
</text>
<text>
申请退票
</text>
<text>
再次预订
</text>
<text>
再次预订
</text>
</view>
</view>
<!-- 是否重新排号 -->
<u-modal
:show=
"showModal"
@
confirm=
"sortAgain(sortAgainData)"
@
cancel=
"showModal=false"
showCancelButton
:title=
"sortAgainData.config.paPassedNumTakeTypeHint||'是否重新排号'"
>
</u-modal>
</view>
</view>
</
template
>
</
template
>
...
@@ -290,19 +299,26 @@ export default {
...
@@ -290,19 +299,26 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
detailTimer
:
null
,
//详情时间函数
codeTimer
:
null
,
//动态二维码时间函数
numberTimer
:
null
,
//获取排号信息时间函数
codeFlag
:
null
,
//动态二维码函数
countFlag
:
null
,
//倒计时时间函数
Brightness
:
''
,
//屏幕亮度
Brightness
:
''
,
//屏幕亮度
openid
:
uni
.
getStorageSync
(
'openid'
)
||
''
,
//openid
openid
:
uni
.
getStorageSync
(
'openid'
)
||
''
,
//openid
companyId
:
''
,
//公司Id
companyId
:
''
,
//公司Id
orderId
:
''
,
//订单Id
orderId
:
''
,
//订单Id
detailTimer
:
null
,
//详情时间函数
orderInfo
:
''
,
//订单信息
orderInfo
:
''
,
//订单信息
codeFlag
:
''
,
//动态二维码函数
codeTimer
:
''
,
//动态二维码时间函数
nowCodeNo
:
''
,
//当前动态二维码编号
nowCodeNo
:
''
,
//当前动态二维码编号
showModal
:
false
,
//重排号弹窗显示隐藏
sortAgainData
:
''
,
//重排号数据
canTakeNumber
:
false
,
//返程或者第一次取号时,是否可以显示取号按钮
minute
:
''
,
//倒计时分钟
second
:
''
,
//倒计时秒
}
}
},
},
onLoad
(
option
)
{
onLoad
(
option
)
{
this
.
orderId
=
'z001719
5376076258fc68582d6fc78be
'
// option.orderId
this
.
orderId
=
'z001719
79954017393759272c9f00409
'
// option.orderId
},
},
onShow
()
{
onShow
()
{
this
.
getDetail
()
this
.
getDetail
()
...
@@ -333,6 +349,21 @@ export default {
...
@@ -333,6 +349,21 @@ export default {
if
(
this
.
codeTimer
)
{
if
(
this
.
codeTimer
)
{
clearTimeout
(
this
.
codeTimer
)
clearTimeout
(
this
.
codeTimer
)
this
.
codeTimer
=
null
this
.
codeTimer
=
null
}
//清除排号信息函数
if
(
this
.
numberTimer
)
{
clearTimeout
(
this
.
numberTimer
)
this
.
numberTimer
=
null
}
//清除倒计时函数
if
(
this
.
countFlag
)
{
clearTimeout
(
this
.
countFlag
)
this
.
countFlag
=
null
}
//清除倒计时函数
if
(
this
.
codeFlag
)
{
clearTimeout
(
this
.
codeFlag
)
this
.
codeFlag
=
null
}
}
uni
.
setScreenBrightness
({
// 恢复之前屏幕亮度
uni
.
setScreenBrightness
({
// 恢复之前屏幕亮度
value
:
this
.
Brightness
value
:
this
.
Brightness
...
@@ -481,20 +512,40 @@ export default {
...
@@ -481,20 +512,40 @@ export default {
this
.
$request
(
'distribution/distribution/getNewFetchInfo'
,
data
).
then
((
res
)
=>
{
this
.
$request
(
'distribution/distribution/getNewFetchInfo'
,
data
).
then
((
res
)
=>
{
if
(
res
.
code
==
'00'
){
if
(
res
.
code
==
'00'
){
if
(
res
.
data
.
length
>
0
){
if
(
res
.
data
.
length
>
0
){
item
.
sorts
=
res
.
data
[
0
].
sorts
let
dataObj
=
res
.
data
[
0
]
this
.
$forceUpdate
()
//子产品获取公司Id,用于重排号传参
return
if
(
dataObj
.
pays
.
length
>
0
){
//时间判断,用于返程多久可以取号
item
.
companyIdCopy
=
dataObj
.
pays
[
0
].
companyId
var
presentTimer
=
this
.
dateFormat
()
}
var
takeNumberTimer
=
this
.
getAfterDate
(
this
.
sortsInfo
.
sorts
[
0
].
createDate
,
this
.
sortsInfo
.
sorts
[
0
].
config
.
paReturnTripTime
)
item
.
sorts
=
dataObj
.
sorts
||
[]
if
(
this
.
sortsInfo
.
sorts
[
0
].
sortFair
==
4
||
this
.
sortsInfo
.
sorts
[
0
].
sortFair
==
5
){
item
.
sorts
.
forEach
((
item2
)
=>
{
clearTimeout
(
this
.
timerType
)
item2
.
sortFair
=
4
if
(
presentTimer
<
takeNumberTimer
){
})
this
.
countTime
(
takeNumberTimer
)
if
(
item
.
sorts
[
0
].
sortFair
==
4
||
item
.
sorts
[
0
].
sortFair
==
5
){
//时间判断,用于返程或第一次取号时,是否可以显示取号按钮
let
presentTime
=
new
Date
().
getTime
()
let
time1
=
new
Date
((
item
.
sorts
[
0
].
createDate
).
replace
(
/-/g
,
'/'
)).
getTime
()
let
time2
=
parseInt
((
item
.
sorts
[
0
].
config
.
paReturnTripTime
)
*
60
*
1000
)
let
takeNumberTime
=
time1
+
time2
if
(
presentTime
>
takeNumberTime
){
this
.
canTakeNumber
=
true
}
else
{
}
else
{
this
.
returnTripType
=
true
//倒计时
//1.先计算时间差多少秒
let
number
=
parseInt
((
takeNumberTime
-
presentTime
)
/
1000
)
this
.
countFlag
=
setInterval
(()
=>
{
number
-=
1
if
(
number
<
0
){
this
.
canTakeNumber
=
true
clearInterval
(
this
.
countFlag
)
return
}
this
.
minute
=
parseInt
(
number
/
60
)
this
.
second
=
parseInt
(
number
-
this
.
minute
*
60
)
},
1000
)
}
}
}
}
this
.
$forceUpdate
()
}
}
}
else
{
}
else
{
uni
.
showToast
({
uni
.
showToast
({
...
@@ -503,23 +554,29 @@ export default {
...
@@ -503,23 +554,29 @@ export default {
})
})
}
}
}).
catch
((
err
)
=>
{
}).
catch
((
err
)
=>
{
this
.
timer1
=
setTimeout
(()
=>
{
this
.
numberTimer
=
setTimeout
(()
=>
{
this
.
getSortInfo
()
this
.
getSortInfo
(
item
)
},
1000
)
},
1000
)
})
})
},
},
//---点击重新取号,显示弹窗
clickSortAgain
(
item
){
this
.
showModal
=
true
this
.
sortAgainData
=
item
},
//---重新排队
//---重新排队
sortAgain
(
item
){
sortAgain
(
item
){
let
data
=
{
let
data
=
{
againNumber
:
1
,
againNumber
:
1
,
thirdId
:
this
.
sortsInfo
.
order
.
orderId
,
thirdId
:
item
.
thirdOrderId
,
//三方订单id
areaCode
:
item
.
projectId
,
areaCode
:
item
.
areaCode
,
//站点
userId
:
this
.
openid
,
userId
:
this
.
openid
,
merchantCode
:
this
.
companyId
,
merchantCode
:
item
.
companyIdCopy
,
}
}
this
.
$request
(
'distribution/distribution/newFetchNumber'
,
data
).
then
((
res
)
=>
{
this
.
$request
(
'distribution/distribution/newFetchNumber'
,
data
).
then
((
res
)
=>
{
if
(
res
.
code
==
'00'
){
if
(
res
.
code
==
'00'
){
this
.
getSortInfo
()
this
.
showModal
=
false
this
.
getSortInfo
(
item
)
}
else
{
}
else
{
uni
.
showToast
({
uni
.
showToast
({
title
:
res
.
message
,
title
:
res
.
message
,
...
@@ -601,39 +658,66 @@ export default {
...
@@ -601,39 +658,66 @@ export default {
}
}
}
}
.product-number
{
.product-number
{
background
:
#FFFFFF
;
border-radius
:
16rpx
;
border-radius
:
16rpx
;
background
:
#FFFFFF
;
border
:
1px
solid
#dcdcdc
;
border
:
1px
solid
#dcdcdc
;
padding
:
32rpx
;
margin-top
:
20rpx
;
margin-top
:
20rpx
;
>
view
{
padding
:
32rpx
;
border-radius
:
16rpx
;
}
}
}
.my-number
{
.my-number
{
display
:
flex
;
display
:
flex
;
>
view
{
>
view
{
width
:
50%
;
view
:last-child
{
view
:last-child
{
margin-top
:
10rpx
;
margin-top
:
10rpx
;
color
:
$red
;
font-size
:
52rpx
;
font-size
:
52rpx
;
font-weight
:
600
;
font-weight
:
600
;
}
}
}
}
>
view
:first-child
{
width
:
52%
;
}
>
view
:last-child
{
width
:
48%
;
}
}
}
.current-number
{
.current-number
{
margin-top
:
10rpx
;
margin-top
:
10rpx
;
text
{
text
{
font-size
:
40rpx
;
font-size
:
40rpx
;
color
:
$red
;
font-weight
:
600
;
font-weight
:
600
;
margin
:
0
4rpx
;
margin
:
0
4rpx
;
}
}
}
}
.number-notice
{
.number-notice
{
color
:
#666666
;
font-size
:
24rpx
;
font-size
:
24rpx
;
margin-top
:
20rpx
;
margin-top
:
20rpx
;
line-height
:
34rpx
;
line-height
:
34rpx
;
}
}
.number-btn
{
display
:
inline-block
;
width
:
140rpx
;
height
:
64rpx
;
background
:
#ffffff
;
border-radius
:
32rpx
;
text-align
:
center
;
line-height
:
60rpx
;
color
:
#4561A1
;
font-size
:
24rpx
;
}
.number-btn2
{
display
:
inline-block
;
width
:
140rpx
;
height
:
64rpx
;
border-radius
:
32rpx
;
text-align
:
center
;
line-height
:
60rpx
;
background
:
#31AA6B
;
color
:
#ffffff
;
font-size
:
28rpx
;
}
.product-code
{
.product-code
{
text-align
:
center
;
text-align
:
center
;
border-top
:
1px
solid
#f5f5f5
;
border-top
:
1px
solid
#f5f5f5
;
...
...
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