Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jz_Travel
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
zhengke
jz_Travel
Commits
c3bcaf7f
Commit
c3bcaf7f
authored
Mar 14, 2025
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
取消提示
parent
27bea614
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
1942 additions
and
336 deletions
+1942
-336
cancelProgress.vue
components/cancelPrompt/cancelProgress.vue
+203
-0
cancelPrompt.vue
components/cancelPrompt/cancelPrompt.vue
+271
-0
pages.json
pages.json
+20
-0
AggregateOrdersList.vue
pages/AggregateOrders/AggregateOrdersList.vue
+7
-4
cancelPrompt.vue
pages/AggregateOrders/components/cancelPrompt.vue
+0
-52
header.vue
pages/AggregateOrders/components/header.vue
+3
-2
orders.vue
pages/AggregateOrders/components/orders.vue
+17
-9
searchHeader.vue
pages/AggregateOrders/components/searchHeader.vue
+2
-2
airTicketOrderDetail.vue
pages/airTicket/airTicketOrderDetail.vue
+47
-27
jz_SureOrder.vue
pages/jiuzhai/jz_SureOrder.vue
+89
-63
happasHeader.vue
pages/user-center/components/happasHeader.vue
+318
-0
userHeader.vue
pages/user-center/components/userHeader.vue
+78
-43
vipUserHeader.vue
pages/user-center/components/vipUserHeader.vue
+78
-84
happinessPassbook.vue
pages/user-center/happinessPassbook.vue
+371
-0
userVip-center.vue
pages/user-center/userVip-center.vue
+366
-0
visa_SureOrder.vue
pages/visa/visa_SureOrder.vue
+72
-50
No files found.
components/cancelPrompt/cancelProgress.vue
0 → 100644
View file @
c3bcaf7f
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.cancelProgress
{
padding
:
30rpx
30rpx
10rpx
30rpx
;
}
.showModalCenter
{
padding
:
50rpx
52rpx
85rpx
52rpx
;
background
:
#fff
;
border-radius
:
16rpx
;
}
.cancelProgress
.showModalCenter
{
padding
:
50rpx
32rpx
85rpx
32rpx
;
}
.showModalCTitle
{
margin-bottom
:
30rpx
;
}
.showModalCTitle
text
{
font-size
:
36rpx
;
font-weight
:
bold
;
}
.showModalCTisp
{
padding
:
0
0
40rpx
0
;
margin-top
:
47rpx
;
}
.showModalTisp
{
margin-bottom
:
34rpx
;
font-size
:
28rpx
;
line-height
:
42rpx
;
}
.showModalTisp
text
{
font-weight
:
bold
;
text-decoration
:
underline
;
}
.showModalCTNK
{
margin-top
:
28rpx
;
font-size
:
32rpx
;
font-family
:
PingFang-SC
,
PingFang-SC
;
font-weight
:
bold
;
line-height
:
42rpx
;
}
.showModalCTNK
text
:first-child
{
color
:
#FF3367
;
}
@font-face
{
font-family
:
"dinAli"
;
src
:
url("//at.alicdn.com/wf/webfont/MQHUV6e56ce5/BFOHNMvFqM80.woff2")
format
(
"woff2"
);
font-display
:
swap
;
}
.vip-box-unactive
{
margin
:
50rpx
0rpx
0
0
;
padding
:
0rpx
34rpx
0rpx
34rpx
;
height
:
120rpx
;
position
:
relative
;
border-radius
:
18rpx
;
}
.vip-box-unactive
.vip-logo
{
right
:
34rpx
;
width
:
87rpx
;
height
:
99rpx
;
top
:
15rpx
;
position
:
absolute
;
z-index
:
4
;
}
.vip-box-unactive
.remark
{
font-size
:
24rpx
;
color
:
#E2C27A
;
line-height
:
1
;
margin-bottom
:
16rpx
;
}
.vip-box-unactive
.step-box
{
position
:
relative
;
justify-content
:
space-between
;
}
.
vip-box-unactive
.
step-box
:
:
after
,
.
vip-box-unactive
.
step-box
.
line
{
height
:
8rpx
;
background
:
#C99E59
;
border-radius
:
5rpx
;
left
:
0
;
top
:
10rpx
;
position
:
absolute
;
z-index
:
2
;
}
.
vip-box-unactive
.
step-box
:
:
after
{
z-index
:
1
;
background
:
#F3F1EF
;
border-radius
:
0
;
right
:
0
;
content
:
' '
;
display
:
block
;
}
.vip-box-unactive
.step-item
{
/* font-weight: 400; */
font-size
:
32rpx
;
color
:
#BCBCBC
;
width
:
50rpx
;
height
:
50rpx
;
background
:
#F3F1EF
;
border-radius
:
50%
;
position
:
relative
;
z-index
:
3
;
text-align
:
center
;
font-family
:
dinAli
;
text-align
:
center
;
line-height
:
50rpx
;
font-weight
:
bolder
;
top
:
-10rpx
;
}
.vip-box-unactive
.step-item.active
{
background
:
#C99E59
;
color
:
#fff
;
}
.vip-box-unactive
.step-item
text
{
width
:
120rpx
;
position
:
absolute
;
bottom
:
-70rpx
;
left
:
-31rpx
;
text-align
:
center
;
font-size
:
28rpx
;
}
.vip-box-unactive
.step-item.active
text
{
color
:
#C99E59
;
}
.vip-title
{
font-weight
:
800
;
font-size
:
36rpx
;
color
:
#080A0A
;
line-height
:
70rpx
;
}
</
style
>
<
template
>
<view
class=
""
:class=
"[type?'cancelProgress':'']"
>
<view
class=
"showModalCenter"
>
<view
class=
"showModalCTitle column"
>
<Text>
取消政策
</Text>
</view>
<view
class=
"showModalCTisp"
>
<view
class=
"showModalTisp"
>
旅游者在
<text>
行程开始前7日以内提出解除合同,
</text>
将按下列标准扣除必要的费用:
</view>
<view
class=
"showModalCTNK column"
>
<Text>
行程开始前6日至4日
</Text>
<Text>
按旅游费用总额的20%
</Text>
</view>
<view
class=
"showModalCTNK column"
>
<Text>
行程开始前3日至1日
</Text>
<Text>
按旅游费用总额的40%
</Text>
</view>
<view
class=
"showModalCTNK column"
>
<Text>
行程开始当日
</Text>
<Text>
按旅游费用总额的60%
</Text>
</view>
</view>
<view
class=
"vip-box"
>
<view
class=
"vip-title"
>
进度
</view>
<template
v-if=
"vipInfo && vipInfo.FinishOrderCount
<vipInfo
.
OrderCount
"
>
<view
class=
"vip-box-unactive row"
>
<view
class=
"col"
>
<view
class=
"step-box row items-center"
>
<view
class=
"line"
:style=
"
{width:`${(vipInfo.FinishOrderCount/vipInfo.OrderCount)*100}%`}">
</view>
<view
class=
"step-item"
:class=
"
{'active':x
<vipInfo
.
FinishOrderCount
}"
v-for=
"x in vipInfo.OrderCount"
>
{{
x
+
1
}}
<text
v-if=
"x==0"
>
等待审批
</text>
<text
v-if=
"x==1"
>
汇款中
</text>
<text
v-if=
"x==2"
>
完成
</text>
</view>
</view>
</view>
</view>
</
template
>
</view>
</view>
</view>
</template>
<
script
>
// import vip from './vip.vue'
export
default
{
props
:[
'datas'
,
'type'
],
// components: {vip},
data
(){
return
{
vipInfo
:{
FinishOrderCount
:
0.8
,
OrderCount
:
3
},
userVipRights
:{}
}
},
created
()
{
},
mounted
()
{
},
methods
:{
},
}
</
script
>
\ No newline at end of file
components/cancelPrompt/cancelPrompt.vue
0 → 100644
View file @
c3bcaf7f
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.showModalBox
{
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
position
:
relative
;
letter-spacing
:
2rpx
;
}
.showModalImg
{
width
:
750rpx
;
height
:
400rpx
;
position
:
absolute
;
left
:
0
;
right
:
0
;
top
:
0
;
z-index
:
1
;
}
.showModalCenterBox
{
width
:
100%
;
height
:
100%
;
margin-top
:
40rpx
;
background
:
#FFFDFE
;
border-radius
:
18rpx
;
}
.showModalCenter
{
position
:
relative
;
z-index
:
2
;
padding
:
60rpx
52rpx
85rpx
52rpx
;
}
.showModalCTitle
text
{
font-size
:
42rpx
;
}
.showModalCTitle
text
:first-child
{
font-weight
:
bold
;
}
.showModalCTitle
text
:last-child
{
font-size
:
32rpx
;
margin-top
:
22rpx
;
}
.showModalCTisp
{
background
:
-webkit-gradient
(
linear
,
0
0
,
0
100%
,
from
(
#F9E8ED
)
,
to
(
#F7F7F7
));
border-radius
:
14rpx
14rpx
14rpx
14rpx
;
padding
:
52rpx
40rpx
40rpx
40rpx
;
margin-top
:
47rpx
;
}
.showModalTisp
{
margin-bottom
:
34rpx
;
font-size
:
32rpx
;
line-height
:
50rpx
;
}
.showModalTisp
text
{
font-weight
:
bold
;
text-decoration
:
underline
;
}
.showModalCTNK
{
margin-top
:
28rpx
;
font-size
:
36rpx
;
font-family
:
PingFang-SC
,
PingFang-SC
;
font-weight
:
bold
;
}
.showModalCTNK
text
:first-child
{
color
:
#FF3367
;
}
.showModalCTNK
text
:last-child
{
}
.showModalTime
{
font-size
:
36rpx
;
color
:
#BCBCBC
;
margin-top
:
26rpx
;
margin-bottom
:
50rpx
;
text-align
:
center
;
}
.showModalBott
{
width
:
300rpx
;
height
:
98rpx
;
line-height
:
98rpx
;
border-radius
:
98rpx
;
text-align
:
center
;
background
:
#000
;
color
:
#fff
;
font-size
:
32rpx
;
}
.showModalBott
:last-child
{
color
:
#FF3367
;
}
.showModalBott.active
{
background
:
#BCBCBC
;
color
:
#757776
;
}
.showModalSel
{
color
:
#FF3367
;
font-size
:
28rpx
;
text-align
:
center
;
margin-top
:
32rpx
;
margin-bottom
:
20rpx
;
}
.showModalSelBox
{
text-align
:
center
;
}
.showModalSBottom
{
display
:
inline-block
;
background
:
#FEEEF2
;
padding
:
5rpx
25rpx
8rpx
25rpx
;
border
:
1px
solid
#746E70
;
color
:
#131414
;
font-size
:
28rpx
;
border-radius
:
30rpx
;
font-family
:
PingFang-SC
,
PingFang-SC
;
font-weight
:
500
;
}
.showModalSBottom
img
{
width
:
30rpx
;
height
:
30rpx
;
margin-right
:
10rpx
;
position
:
relative
;
top
:
6rpx
;
}
.showModalSBottom
text
{
margin-left
:
10rpx
;
}
</
style
>
<
template
>
<view
class=
"showModalInfo"
>
<u-popup
v-model=
"showModal"
mode=
"bottom"
border-radius=
"18"
background-color=
"#000"
:mask-close-able=
"false"
>
<view
class=
"showModalBox"
>
<img
class=
"showModalImg"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/cancelTispTY.png"
/>
<view
class=
"showModalCenterBox"
>
<view
class=
"showModalCenter"
>
<view
class=
"showModalCTitle column"
>
<Text>
取消需服务审批
</Text>
<text>
按标准扣除必要的费用
</text>
</view>
<view
class=
"showModalCTisp"
>
<view
class=
"showModalTisp"
>
旅游者在
<text>
行程开始前7日以内提出解除合同,
</text>
将按下列标准扣除必要的费用:
</view>
<view
class=
"showModalCTNK column"
>
<Text>
行程开始前6日至4日
</Text>
<Text>
按旅游费用总额的20%
</Text>
</view>
<view
class=
"showModalCTNK column"
>
<Text>
行程开始前3日至1日
</Text>
<Text>
按旅游费用总额的40%
</Text>
</view>
<view
class=
"showModalCTNK column"
>
<Text>
行程开始当日
</Text>
<Text>
按旅游费用总额的60%
</Text>
</view>
</view>
<view
class=
"showModalTime"
>
请仔细阅读条款
{{
remainingTime
}}
s后确认
</view>
<view
class=
"row-sb-n showModalBottom"
>
<view
class=
"showModalBott"
@
click=
"cancel"
>
<Text>
关闭
</Text>
</view>
<view
class=
"showModalBott"
@
click=
"confirm"
:class=
"[submitCancel?'active':'']"
>
<Text>
确定取消
</Text>
</view>
</view>
<view
class=
"showModalSel"
>
紧急情况请联系服务人员
</view>
<view
class=
"showModalSelBox"
>
<view
class=
"showModalSBottom row"
@
click=
"goConnection"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/ServiceTelephoneZK.png"
/>
<text>
{{
erpBaseInfo
.
emName
}}
</text>
</view>
</view>
</view>
</view>
</view>
</u-popup>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'showModal'
,
'orderNo'
,
'type'
],
data
(){
return
{
Cancelmsg
:{
Remark
:
''
},
submitCancel
:
false
,
erpBaseInfo
:
null
,
remainingTime
:
10
,
// 初始倒计时时间(秒)
timerId
:
null
,
// 定时器ID
isRunning
:
false
,
// 状态标识(防止重复启动)
}
},
created
()
{
console
.
log
(
uni
.
getStorageSync
(
"b2b_user"
),
'=======b2b_user'
)
this
.
erpBaseInfo
=
uni
.
getStorageSync
(
"b2b_user"
).
erpBaseInfo
console
.
log
(
this
.
datas
,
'----=====datas'
)
},
mounted
()
{
setTimeout
(()
=>
{
this
.
startCountdown
()
},
50
)
},
methods
:{
startCountdown
()
{
if
(
this
.
isRunning
)
return
;
this
.
isRunning
=
true
;
this
.
timerId
=
setInterval
(()
=>
{
this
.
remainingTime
--
;
if
(
this
.
remainingTime
<=
0
)
{
clearInterval
(
this
.
timerId
);
this
.
isRunning
=
false
;
this
.
confirm
();
// 时间耗尽回调
}
},
1000
);
},
goConnection
(){
uni
.
makePhoneCall
({
phoneNumber
:
this
.
erpBaseInfo
.
imAccount
});
},
cancel
(){
clearInterval
(
this
.
timerId
);
this
.
isRunning
=
false
;
this
.
$emit
(
'cancel'
)
},
confirm
(){
let
that
=
this
if
(
this
.
submitCancel
)
return
wx
.
showModal
({
title
:
'提示'
,
content
:
'确定取消订单?'
,
success
:
(
tip
)
=>
{
if
(
tip
.
confirm
)
{
that
.
submitCancel
=
true
that
.
apipost
(
"GetCancelOrder_post"
,
{
OrderNo
:
this
.
orderNo
,
},
(
res
)
=>
{
that
.
submitCancel
=
false
that
.
cancel
()
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
title
:
"操作成功"
,
icon
:
"success"
,
});
if
(
that
.
type
)
that
.
$emit
(
'success'
);
else
uni
.
navigateTo
({
url
:
`/pages/AggregateOrders/AggregateOrdersList?OrderStatus=5`
,
});
}
},
(
err
)
=>
{
uni
.
showToast
({
title
:
err
.
message
,
icon
:
"none"
,
});
that
.
submitCancel
=
false
}
);
}
}
})
}
},
}
</
script
>
\ No newline at end of file
pages.json
View file @
c3bcaf7f
...
...
@@ -102,6 +102,16 @@
}
}
},
{
"path"
:
"userVip-center"
,
"style"
:
{
"navigationStyle"
:
"custom"
,
"mp-alipay"
:
{
"transparentTitle"
:
"always"
,
"titlePenetrate"
:
"YES"
}
}
},
{
"path"
:
"user-profile"
,
"style"
:
...
...
@@ -115,6 +125,16 @@
{
"navigationBarTitleText"
:
"员工账号绑定"
}
},
{
"path"
:
"happinessPassbook"
,
"style"
:
{
"navigationStyle"
:
"custom"
,
"mp-alipay"
:
{
"transparentTitle"
:
"always"
,
"titlePenetrate"
:
"YES"
}
}
}
]
},
...
...
pages/AggregateOrders/AggregateOrdersList.vue
View file @
c3bcaf7f
...
...
@@ -42,6 +42,9 @@
}
}
/
deep
/
.showModalInfo
.u-drawer-bottom
{
background-color
:
rgba
(
23
,
23
,
23
,
0
)
!
important
;
}
</
style
>
<
template
>
<view
class=
"AggOrdBox column"
>
...
...
@@ -113,16 +116,16 @@
}
},
onLoad
(
options
){
if
(
options
.
OrderTypeStr
){
this
.
msg
.
OrderTypeStr
=
options
.
OrderTypeStr
}
if
(
options
.
OrderTypeStr
)
this
.
msg
.
OrderTypeStr
=
options
.
OrderTypeStr
if
(
options
.
OrderStatus
)
this
.
msg
.
OrderStatus
=
options
.
OrderStatus
},
created
()
{
this
.
getOrderEnums
()
this
.
init
()
},
methods
:{
research
(){
research
(
status
){
if
(
status
)
this
.
msg
.
OrderStatus
=
status
;
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
pageSize
=
10
;
this
.
status
=
"loadmore"
;
...
...
pages/AggregateOrders/components/cancelPrompt.vue
deleted
100644 → 0
View file @
27bea614
<
style
lang=
"scss"
scoped
>
</
style
>
<
template
>
<view>
<u-popup
v-model=
"showModal"
mode=
"center"
length=
"80%"
border-radius=
"20px 20px 20px 20px"
>
<view
style=
'display: flex;flex-direction: column;align-items: center;background: #fff;'
>
<view
style=
"display: flex;align-items: center;justify-content: center;height:70px ;"
>
<Text>
是否取消订单?
</Text>
</view>
<view
style=
"display: flex;flex-direction: column;height:80px ;margin-left: 15px;width: 100%;"
>
<Text
style=
'margin-left: 10px;margin-top: 5px;'
>
备注
</Text>
<input
class=
"uni-input inputM"
style=
'margin-left: 10px;margin-top: 5px;'
v-model=
"Cancelmsg.Remark"
placeholder=
"输入备注"
/>
</view>
<view
style=
"display: flex;flex-direction: row;align-items: center;height: 50px;border-top: 1px solid #F5F5F5;width: 100%;"
>
<view
style=
"width: 50%;display: flex;align-items: center;justify-content: center"
@
click=
"cancel"
>
<Text>
取消
</Text>
</view>
<view
style=
"width: 50%;color: #2979ff;display: flex;align-items: center;justify-content: center"
@
click=
"confirm"
>
<Text>
确定
</Text>
</view>
</view>
</view>
</u-popup>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'showModal'
,
'datas'
],
data
(){
return
{
Cancelmsg
:{
Remark
:
''
}
}
},
onLoad
(
options
){
},
created
()
{
},
methods
:{
cancel
(){
this
.
$emit
(
'cancel'
)
},
confirm
(){
}
}
}
</
script
>
\ No newline at end of file
pages/AggregateOrders/components/header.vue
View file @
c3bcaf7f
...
...
@@ -202,10 +202,10 @@ export default {
position
:
relative
;
}
.carrHeader
{
padding-top
:
3
5rpx
;
padding-top
:
8
5rpx
;
}
.carrHeader-right
{
padding-right
:
1
6
0rpx
;
padding-right
:
1
7
0rpx
;
display
:
flex
;
}
.carrHeader-right
img
{
...
...
@@ -222,5 +222,6 @@ export default {
height
:
63rpx
;
border-radius
:
50%
;
border
:
1px
solid
#CFC089
;
margin-right
:
20rpx
;
}
</
style
>
\ No newline at end of file
pages/AggregateOrders/components/orders.vue
View file @
c3bcaf7f
...
...
@@ -3,7 +3,7 @@
<view
class=
"AggOrdListBox"
>
<view
class=
"visaList row"
v-for=
"(item,index) in g"
:key=
"index"
@
click=
"goDetail(item)"
@
click=
"goDetail
s
(item)"
:class=
"[item.orderStatus==4?'active':'']"
>
<view
class=
"visaListL"
>
<image
mode=
"aspectFill"
:src=
"item.goodsPic"
/>
...
...
@@ -64,11 +64,16 @@
</view>
</view>
</view>
<cancelPrompt
:showModal=
"showModal"
@
cancel=
"cancelPrompt"
:datas=
"currentData"
></cancelPrompt>
<cancelPrompt
v-if=
"showModal"
:showModal=
"showModal"
@
cancel=
"cancelModal"
@
success=
"cancelSuccess"
type=
"1"
:orderNo=
"currentData.orderNo"
></cancelPrompt>
</view>
</template>
<
script
>
import
cancelPrompt
from
"
.
/cancelPrompt.vue"
;
import
cancelPrompt
from
"
@/components/cancelPrompt
/cancelPrompt.vue"
;
export
default
{
props
:[
'orders'
],
components
:
{
...
...
@@ -96,6 +101,9 @@ export default {
},
methods
:{
cancelSuccess
(){
this
.
$emit
(
'research'
,
5
)
},
submitGetCodeByOrderNo
(
item
)
{
uni
.
showLoading
({
title
:
"请稍等片刻..."
,
...
...
@@ -199,7 +207,7 @@ export default {
}
},
// 详情
goDetail
(
item
){
goDetail
s
(
item
){
let
url
=
null
let
msg
=
null
// #ifdef MP-DI
...
...
@@ -233,7 +241,6 @@ export default {
//取消订单
goCancel
(
item
)
{
//未付款-调用后台取消
let
that
=
this
if
(
this
.
submit
||
this
.
submitCancel
)
return
wx
.
showModal
({
...
...
@@ -243,8 +250,9 @@ export default {
if
(
tip
.
confirm
)
{
that
.
submitCancel
=
true
that
.
apipost
(
"
sellorder_post_B2BRemove
Order"
,
{
"
b2b_get_GetB2BAllCancel
Order"
,
{
ID
:
item
.
erpOrderId
,
OrderTypeStr
:
item
.
goodsType
,
},
(
res
)
=>
{
that
.
submitCancel
=
false
...
...
@@ -268,11 +276,11 @@ export default {
}
})
},
cancel
Prompt
(){
cancel
Modal
(){
this
.
showModal
=
false
},
goCancelZK
(
item
)
{
if
(
item
.
orderStatus
){
if
(
item
.
orderStatus
==
2
){
this
.
currentData
=
item
return
this
.
showModal
=
true
}
...
...
pages/AggregateOrders/components/searchHeader.vue
View file @
c3bcaf7f
...
...
@@ -109,14 +109,14 @@ export default {
position
:
relative
;
}
.carrHeader
{
padding-top
:
3
5rpx
;
padding-top
:
8
5rpx
;
}
.carrHeader-right
{
width
:
1px
;
flex
:
1
;
display
:
flex
;
padding-left
:
60rpx
;
padding-right
:
1
6
0rpx
;
padding-right
:
1
7
0rpx
;
}
.carrHeader-right
view
{
width
:
1px
;
...
...
pages/airTicket/airTicketOrderDetail.vue
View file @
c3bcaf7f
...
...
@@ -213,12 +213,13 @@
</view>
</template>
<cancelProgress
v-if=
"order.OrderStatus==2"
:datas=
"order"
type=
"1"
></cancelProgress>
<view
style=
"padding-bottom: 20rpx;"
></view>
</scroll-view>
<view
class=
"botton-box"
:style=
"{paddingBottom:`${bottomSafeHeight}rpx`}"
>
<!-- #ifdef MP-DI -->
<view
style=
" display: flex;justify-content: space-between;"
>
<view
class=
"text-center cities-name"
@
click=
"goCancelZK"
v-if=
"order.OrderStatus==1"
style=
"background-color: #fff;border: 1px solid #1d1d20;flex:1; border-radius: 10rpx;height: 80rpx; line-height: 80rpx;color:#333"
>
取消订单
</view>
<view
class=
"text-center cities-name"
@
click=
"goCancelZK"
v-if=
"order.OrderStatus==1
||order.OrderStatus==2
"
style=
"background-color: #fff;border: 1px solid #1d1d20;flex:1; border-radius: 10rpx;height: 80rpx; line-height: 80rpx;color:#333"
>
取消订单
</view>
<view
class=
"text-center cities-name"
@
click=
"submitGetCodeByOrderNo"
v-if=
"order.OrderStatus==1"
style=
"background-color: #1d1d20;flex:1;border-radius: 10rpx;height: 80rpx; line-height: 80rpx;color:#EEF1F4;margin-left: 20rpx;"
>
立即支付
</view>
</view>
<view
class=
"text-center cities-name"
@
click=
"requeryHandle"
v-if=
"order.OrderStatus!=1"
style=
"background-color: #1d1d20;border-radius: 10rpx;height: 80rpx; line-height: 80rpx;color:#EEF1F4"
>
再次预定
</view>
...
...
@@ -298,15 +299,19 @@
</view>
</u-popup>
<u-modal
:border-radius=
"16"
@
confirm=
"cancleOrderHandle"
title=
"订单取消提醒"
content=
"你正在取消订单,是否确认执行"
@
cancel=
"cancelVisible=false"
v-model=
"cancelVisible"
confirm-text=
'确认取消'
cancel-text=
'关闭'
confirm-color=
'#DEBF7B'
cancel-color=
'#080A09'
:show-cancel-button=
"true"
></u-modal>
<cancelPrompt
:showModal=
"showModal"
@
cancel=
"cancelPrompt"
></cancelPrompt>
<cancelPrompt
v-if=
"showModal"
:showModal=
"showModal"
@
cancel=
"cancelModal"
:orderNo=
"OrderNo"
></cancelPrompt>
</view>
</template>
<
script
>
import
Flight
from
'./components/flight/Index.vue'
import
cancelPrompt
from
'../AggregateOrders/components/cancelPrompt.vue'
import
cancelPrompt
from
'@/components/cancelPrompt/cancelPrompt.vue'
import
cancelProgress
from
'@/components/cancelPrompt/cancelProgress.vue'
export
default
{
components
:{
Flight
,
cancelPrompt
},
components
:{
Flight
,
cancelPrompt
,
cancelProgress
},
data
()
{
return
{
timestamp
:
86400
,
...
...
@@ -385,7 +390,7 @@
this
.
navigatorToHomeHandle
()
},
methods
:
{
cancel
Prompt
(){
cancel
Modal
(){
this
.
showModal
=
false
},
submitGetCodeByOrderNo
()
{
...
...
@@ -552,6 +557,14 @@
},
goCancelZK
()
{
let
that
=
this
if
(
this
.
order
.
OrderStatus
==
2
){
return
this
.
showModal
=
true
}
wx
.
showModal
({
title
:
'提示'
,
content
:
'确定取消订单?'
,
success
:
(
tip
)
=>
{
if
(
tip
.
confirm
)
{
uni
.
showLoading
()
that
.
apipost
(
"GetCancelOrder_post"
,
{
...
...
@@ -576,6 +589,10 @@
uni
.
hideLoading
()
}
);
}
}
})
},
requeryHandle
(){
...
...
@@ -881,4 +898,7 @@
color
:
#999
;
font-size
:
24
rpx
;
}
/
deep
/
.showModalInfo
.u-drawer-bottom
{
background-color
:
rgba
(
23
,
23
,
23
,
0
)
!important
;
}
</
style
>
pages/jiuzhai/jz_SureOrder.vue
View file @
c3bcaf7f
...
...
@@ -328,9 +328,12 @@
.jz_MyGuestList
{
margin-top
:
40
rpx
;
}
/
deep
/
.showModalInfo
.u-drawer-bottom
{
background-color
:
rgba
(
23
,
23
,
23
,
0
)
!important
;
}
</
style
>
<
template
>
<view
class=
"jz_Reserve"
v-if=
"orderData"
>
<view
class=
"jz_Reserve"
v-if=
"orderData
&&orderData.model
"
>
<view
class=
"jz_ReserTop"
>
<view
class=
"flex"
style=
"margin-bottom: 30rpx"
>
<u-icon
customPrefix=
"iconfont"
name=
"icondaizhifu-"
size=
"52"
color=
"#DFBE6E"
v-if=
"orderStatus.code == 0"
></u-icon>
...
...
@@ -411,6 +414,7 @@
</view>
-->
</view>
<view
class=
"empty-block"
></view>
<template
v-if=
"orderData.model&&orderData.model.GuestList.length>0"
>
<view
class=
"jz_form jz_MyGuestList"
v-for=
"(subItem, subIndex) in orderData.model.GuestList"
:key=
"subIndex"
>
<view
style=
"margin: 10rpx 0 20rpx 0"
>
游客
{{
subIndex
+
1
}}
</view>
<view
class=
"form-items"
>
...
...
@@ -433,6 +437,7 @@
</view>
</view>
<view
class=
"empty-block"
></view>
</
template
>
<view
class=
"jz_form"
v-if=
"orderData.model.Remarks"
>
<view
class=
"form-items"
style=
"border-bottom: 0"
>
<view
class=
"label"
>
备注
</view>
...
...
@@ -440,6 +445,8 @@
</view>
</view>
<view
class=
"empty-block"
></view>
<cancelProgress
:datas=
"orderData"
></cancelProgress>
<view
class=
"empty-block"
></view>
<view
style=
"padding: 50rpx 40rpx"
>
<view
class=
"big-title"
>
<text>
费用明细
</text>
...
...
@@ -553,13 +560,13 @@
<view
class=
"jz_orderbox flex"
>
<view
style=
"display: flex"
v-if=
"showPayBtn"
>
<!-- #ifdef MP-DI -->
<button
class=
"jz_OrderReNow"
@
click=
"goCancelZK"
<button
v-if=
"orderData.OrderStatus==1||orderData.OrderStatus==2"
class=
"jz_OrderReNow"
@
click=
"goCancelZK"
style=
"background: #fff; color: #111; border: 1px solid #111"
:disabled=
"submitCancel"
:loading=
"submitCancel"
>
取消
</button>
<button
class=
"jz_OrderReNow"
<button
v-if=
"orderData.OrderStatus==1"
class=
"jz_OrderReNow"
style=
"margin-left: 20rpx;"
@
click=
"submitGetCodeByOrderNo"
:disabled=
"submit"
:loading=
"submit"
>
立即支付
...
...
@@ -580,7 +587,10 @@
</view>
</view>
<coupons
v-if=
"showCoupons"
:coupon-message=
"couponMessage"
@
goLook=
"()=>showCoupons=false"
@
closeBtn=
"()=>showCoupons=false"
></coupons>
<cancelPrompt
:showModal=
"showModal"
@
cancel=
"cancelPrompt"
></cancelPrompt>
<cancelPrompt
v-if=
"showModal"
:showModal=
"showModal"
@
cancel=
"cancelModal"
:orderNo=
"orderData.OrderNo"
></cancelPrompt>
</view>
</template>
...
...
@@ -589,9 +599,10 @@
<
script
>
import
coupons
from
"@/components/coupons/coupons.vue"
;
import
cancelPrompt
from
'../AggregateOrders/components/cancelPrompt.vue'
import
cancelPrompt
from
'@/components/cancelPrompt/cancelPrompt.vue'
import
cancelProgress
from
'@/components/cancelPrompt/cancelProgress.vue'
export
default
{
components
:
{
coupons
,
cancelPrompt
},
components
:
{
coupons
,
cancelPrompt
,
cancelProgress
},
data
()
{
return
{
pageTitle
:
"订单详情"
,
...
...
@@ -601,7 +612,10 @@
MiniAppUserId
:
0
,
},
orderData
:
null
,
orderStatus
:
{},
orderStatus
:
{
code
:
0
,
text
:
''
,
},
submit
:
false
,
submitCancel
:
false
,
showPayBtn
:
true
,
...
...
@@ -632,7 +646,7 @@
}
},
methods
:
{
cancel
Prompt
(){
cancel
Modal
(){
this
.
showModal
=
false
},
submitGetCodeByOrderNo
()
{
...
...
@@ -700,6 +714,9 @@
if
(
res
.
resultCode
==
1
){
this
.
OrderNo
=
res
.
data
.
OrderNo
this
.
orderId
=
res
.
data
.
ErpOrderId
this
.
orderData
=
{
...
res
.
data
}
this
.
initOrderInfo
();
this
.
formatStatus
(
res
.
data
.
OrderStatus
,
...
...
@@ -800,12 +817,20 @@
}
},
goCancelZK
()
{
let
that
=
this
if
(
this
.
orderData
.
OrderStatus
==
2
){
return
this
.
showModal
=
true
}
if
(
this
.
submit
||
this
.
submitCancel
)
return
;
this
.
submitCancel
=
true
;
if
(
this
.
orderData
.
model
.
OrderState
==
2
||
this
.
orderData
.
model
.
OrderState
==
3
)
{
wx
.
showModal
({
title
:
'提示'
,
content
:
'确定取消订单?'
,
success
:
(
tip
)
=>
{
if
(
tip
.
confirm
)
{
that
.
submitCancel
=
true
;
this
.
apipost
(
"GetCancelOrder_post"
,
{
OrderNo
:
this
.
OrderNo
OrderNo
:
that
.
OrderNo
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
...
...
@@ -817,17 +842,20 @@
url
:
"/pages/AggregateOrders/AggregateOrdersList?OrderTypeStr=2"
,
});
}
this
.
submitCancel
=
false
that
.
submitCancel
=
false
},
(
err
)
=>
{
uni
.
showToast
({
title
:
err
.
message
,
icon
:
"none"
,
});
this
.
submitCancel
=
false
that
.
submitCancel
=
false
}
);
}
}
})
},
getWeek
(
date
)
{
var
weekArray
=
new
Array
(
"日"
,
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
);
...
...
@@ -850,24 +878,23 @@
msg
,
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
orderData
=
{
...
this
.
orderData
,
...
res
.
data
};
// #ifdef MP-AG
this
.
orderData
=
res
.
data
this
.
formatStatus
(
this
.
orderD
ata
.
model
.
OrderState
,
this
.
orderD
ata
.
model
.
IsChargeLossOrders
,
this
.
orderD
ata
.
model
.
IsApplyForCancel
res
.
d
ata
.
model
.
OrderState
,
res
.
d
ata
.
model
.
IsChargeLossOrders
,
res
.
d
ata
.
model
.
IsApplyForCancel
);
// #endif
// #ifdef MP-DI
this
.
orderData
=
{
...
res
.
data
};
if
(
!
this
.
OrderNo
){
this
.
getOrderInfoByIdAndType
()
}
// #endif
}
console
.
log
(
res
);
},
(
e
)
=>
{
this
.
orderData
=
{
...
...
@@ -920,7 +947,6 @@
this
.
orderStatus
.
text
=
"正常"
;
this
.
showPayBtn
=
false
;
}
this
.
$forceUpdate
();
// #endif
},
// #ifdef MP-WEIXIN
...
...
pages/user-center/components/happasHeader.vue
0 → 100644
View file @
c3bcaf7f
<
template
>
<view
class=
"userHeaderBox"
>
<view
class=
"titlenav"
:style=
"
{ paddingTop: nav }">
<view
class=
"carrHeader-left-icon"
@
click=
"goBack"
>
<u-icon
name=
"arrow-left"
size=
"38"
color=
"#000"
></u-icon>
</view>
{{
pageTitle
}}
</view>
<view
class=
"userHeadPic row"
>
<view
class=
"userHeadPicL"
>
<u-avatar
:src=
"b2b_user_info.photo?b2b_user_info.photo:user_info.avatar"
size=
"97"
shape=
"circle"
></u-avatar>
<!--
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png"
mode=
"widthFix"
></image>
-->
</view>
<view
class=
"col column"
>
<text
v-if=
"b2b_user_info&&b2b_user_info.name"
class=
"userHeadPicR_title"
@
click=
"navigatorToProfile"
>
{{
b2b_user_info
.
name
}}
</text>
<text
v-else-if=
"mall_UserInfo&&mall_UserInfo.Name"
class=
"userHeadPicR_title"
>
{{
mall_UserInfo
.
Name
}}
</text>
<text
v-else
class=
"userHeadPicR_title"
@
click=
"login(user_info)"
>
立即登录
</text>
<text
class=
"userHeadPicR_text"
>
销售:
{{
b2b_user_info
.
salesBaseInfo
.
emName
}}
等3人
</text>
</view>
</view>
<view
class=
"userHeadPasBox"
>
<view
class=
"userHeadPNumBox row-sb-n"
>
<view
class=
"userHeadPNum"
>
<view
class=
"userHeadPNumT"
>
当前余额
</view>
<view
class=
"userHeadPNumB"
>
<text>
¥
</text>
10550
</view>
</view>
<view
class=
"userHeadPNum active"
>
<view
class=
"userHeadPNumT"
>
待结算
</view>
<view
class=
"userHeadPNumB"
>
<text>
¥
</text>
10550
</view>
</view>
</view>
<view
class=
"userHeadPNumS row-sb-n"
>
<view
class=
"userHeadPNumSL"
>
累计已省
</view>
<view
class=
"userHeadPNumSR"
>
¥
<text>
15818
</text>
</view>
</view>
</view>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'user_info'
,
'b2b_user_info'
],
data
()
{
return
{
pageTitle
:
"幸福存折"
,
nav
:
0
,
progress
:[
{
text
:
'1'
,
colorStyle
:
'active'
,
radiusL
:
''
,
radiusR
:
''
,
},
{
text
:
'2'
,
colorStyle
:
'active'
,
radiusL
:
''
,
radiusR
:
''
,
},
{
text
:
'3'
,
colorStyle
:
'active'
,
radiusL
:
''
,
radiusR
:
''
,
},
{
text
:
'4'
,
colorStyle
:
'active'
,
radiusL
:
''
,
radiusR
:
''
,
},
{
text
:
''
,
colorStyle
:
''
,
radiusL
:
''
,
radiusR
:
''
,
img
:
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638732528736165089.png'
},
],
};
},
components
:
{},
computed
:
{
},
created
()
{
},
onLoad
()
{
this
.
nav
=
uni
.
getSystemInfoSync
().
statusBarHeight
+
"px"
;
},
mounted
()
{
},
onShow
()
{
},
methods
:
{
goBack
(){
uni
.
navigateBack
({
delta
:
-
1
})
},
navigatorToProfile
(){
// #ifdef MP-DI
uni
.
navigateTo
({
url
:
'/pages/user-center/user-profile'
})
// #endif
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.userHeaderBox
{
width
:
750rpx
;
background
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638774883791846536.png')
no-repeat
#F3F2EF
;
background-size
:
100%
auto
;
padding-top
:
118rpx
;
position
:
relative
;
}
.carrHeader-left-icon
{
position
:
absolute
;
left
:
32rpx
;
top
:
119rpx
;
z-index
:
2
;
}
.titlenav
{
width
:
100%
;
text-align
:
center
;
font-size
:
16px
;
color
:
#000
;
}
.userHeadPic
{
padding
:
49rpx
20rpx
25rpx
62rpx
;
}
.userHeadPicL
{
width
:
97rpx
;
height
:
97rpx
;
overflow
:
hidden
;
border-radius
:
50%
;
margin-right
:
27rpx
;
}
.userHeadPicL
image
{
width
:
97rpx
;
height
:
97rpx
;
display
:
block
;
}
.userHeadPicR_title
{
font-family
:
PingFang
SC
;
font-weight
:
bold
;
font-size
:
36rpx
;
color
:
#080A09
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
.userHeadPicR_text
{
font-family
:
PingFang
SC
;
font-weight
:
500
;
font-size
:
24rpx
;
color
:
#61462E
;
margin-top
:
16rpx
;
letter-spacing
:
1rpx
;
}
.jz_LineDetaVipPr
{
margin-top
:
28rpx
;
position
:
relative
;
left
:
-20rpx
;
}
.jz_LineDetaVip
{
width
:
100%
;
height
:
120rpx
;
background
:
linear-gradient
(
90deg
,
#3F423F
,
#313131
);
border-radius
:
18rpx
;
display
:
flex
;
flex-direction
:
column
;
padding
:
15rpx
0
6rpx
0
;
margin-top
:
18rpx
;
margin-bottom
:
18rpx
;
}
.jz_LineDetaVipTop
{
font-family
:
PingFang
SC
;
font-weight
:
400
;
font-size
:
24rpx
;
color
:
#E2C27A
;
letter-spacing
:
.1rpx
;
display
:
flex
;
align-content
:
center
;
padding
:
0
34rpx
;
}
.jz_LineDetaVipTop
img
{
width
:
21rpx
;
height
:
21rpx
;
display
:
inline-block
;
margin-left
:
5rpx
;
}
.jz_LineDetaVPB
{
display
:
flex
;
}
.jz_LineDetaVPBBox
{
display
:
flex
;
align-items
:
center
;
width
:
1px
;
flex
:
1
;
}
.jz_LineDetaVPBN
{
width
:
30rpx
;
height
:
30rpx
;
background
:
#2E2E2E
;
border-radius
:
50%
;
text-align
:
center
;
line-height
:
28rpx
;
font-family
:
DIN
Black
;
font-weight
:
bold
;
font-size
:
24rpx
;
color
:
#494949
;;
}
.jz_LineDetaVPBLine
{
flex
:
1
;
height
:
10rpx
;
background
:
#000
;
}
.jz_LineDetaVPBBoxI
{
position
:
relative
;
flex
:
1
;
}
.jz_LineDetaVPBBoxI
img
{
width
:
87rpx
;
height
:
99rpx
;
position
:
absolute
;
bottom
:
-35rpx
;
right
:
8rpx
;
z-index
:
2
;
}
.jz_LineDetaVPBBox.active
.jz_LineDetaVPBN
{
background
:
linear-gradient
(
270deg
,
#C99E59
,
#FFFFB3
);
}
.jz_LineDetaVPBBox.active
.jz_LineDetaVPBLine
{
background
:
#C99E59
;
color
:
#583F2C
;
}
.VPBLRadiusL
{
border-radius
:
20rpx
0
0
20rpx
;
}
.VPBLRadiusR
{
border-radius
:
0
20rpx
20rpx
0
;
}
.jz_LineDetaVPBY
{
position
:
absolute
;
left
:
-29rpx
;
right
:
0
;
top
:
0
;
}
.userHeadPasBox
{
padding
:
0
30rpx
;
}
.userHeadPNum
{
width
:
330rpx
;
border-radius
:
18rpx
;
background
:
rgba
(
255
,
255
,
255
,.
2
);
padding
:
30rpx
20rpx
40rpx
50rpx
;
}
.userHeadPNumT
{
font-weight
:
500
;
font-size
:
28rpx
;
color
:
#4F360D
;
margin-bottom
:
21rpx
;
}
.userHeadPNumB
{
color
:
#FF3166
;
font-size
:
48rpx
;
font-weight
:
bold
;
}
.userHeadPNumB
text
{
font-size
:
29rpx
;
}
.userHeadPNum.active
.userHeadPNumB
{
color
:
#4F360D
;
}
.userHeadPNumS
{
border-radius
:
18rpx
;
background
:
rgba
(
255
,
255
,
255
,.
2
);
padding
:
30rpx
40rpx
40rpx
50rpx
;
margin-top
:
30rpx
;
margin-bottom
:
40rpx
;
}
.userHeadPNumSL
{
font-size
:
29rpx
;
color
:
#4F360D
;
}
.userHeadPNumSR
{
color
:
#4F360D
;
font-size
:
29rpx
;
font-weight
:
bold
;
}
.userHeadPNumSR
text
{
font-size
:
48rpx
;
}
</
style
>
pages/user-center/components/userHeader.vue
View file @
c3bcaf7f
...
...
@@ -3,41 +3,49 @@
<view
class=
"titlenav"
:style=
"
{ paddingTop: nav }">
{{
pageTitle
}}
</view>
<view
class=
"userHeadPic row"
>
<view
class=
"userHeadPicL"
>
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png"
mode=
"widthFix"
></image>
<u-avatar
:src=
"b2b_user_info.photo?b2b_user_info.photo:user_info.avatar"
size=
"97"
shape=
"circle"
></u-avatar>
<!--
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748795455095258.png"
mode=
"widthFix"
></image>
-->
</view>
<view
class=
"col column"
>
<text
class=
"userHeadPicR_title"
>
Ranjunjun
</text>
<text
class=
"userHeadPicR_text"
>
销售:李龙飞等3位
</text>
<text
v-if=
"b2b_user_info&&b2b_user_info.name"
class=
"userHeadPicR_title"
@
click=
"navigatorToProfile"
>
{{
b2b_user_info
.
name
}}
</text>
<text
v-else-if=
"mall_UserInfo&&mall_UserInfo.Name"
class=
"userHeadPicR_title"
>
{{
mall_UserInfo
.
Name
}}
</text>
<text
v-else
class=
"userHeadPicR_title"
@
click=
"login(user_info)"
>
立即登录
</text>
<text
class=
"userHeadPicR_text"
>
销售:
{{
b2b_user_info
.
salesBaseInfo
.
emName
}}
等3人
</text>
</view>
</view>
<view
class=
"userHeadPasBox"
>
<view
class=
"userHeadPas column"
>
<view
class=
"userHeadPasTop"
>
<view
class=
"userHeadPasT_Num row-sbs-n"
>
<view
class=
"column"
>
<text
style=
"font-size: 40rpx;color: #C07D45;"
>
60
</text>
</view>
<view
class=
"column"
>
<view
class=
"userHeadPasMoney relative"
>
<view>
¥
</view>
<text
style=
"font-size: 36rpx;"
>
66248.2
</text>
</view>
</view>
<view
class=
"userHeadPasT_Num row-sb-n"
>
<view
class=
"column"
>
<text
style=
"color: #4F360D;font-size: 36rpx;"
>
3
</text>
</view>
<text>
{{
formatNumberWithUnit
(
1234
)
}}
</text>
<text
class=
"userHeadPasTTeT"
>
幸福存折
</text>
</view>
<view
class=
"userHeadPasT_Text row-sbs-n"
>
<view
class=
"column"
>
<text
class=
"userHeadPasTTeT"
style=
"font-size: 28rpx;font-weight: bold;"
>
幸福存折
<text>
1852
</text>
<text
class=
"userHeadPasTTeT"
>
我的积分
</text>
</view>
<view
class=
"column"
>
<text
class=
"userHeadPasTTeT"
style=
"font-size: 26rpx;font-weight: 100;"
>
累计已省
</text>
<text>
{{
formatNumberWithUnit
(
99999
)
}}
</text>
<text
class=
"userHeadPasTTeT"
>
累计已省
</text>
</view>
<view
class=
"column"
>
<text
class=
"userHeadPasTTeT"
style=
"font-size: 26rpx;font-weight: 100;"
>
抵扣券
</text>
<text>
3
</text>
<text
class=
"userHeadPasTTeT"
>
优惠券
</text>
</view>
</view>
</view>
...
...
@@ -74,12 +82,12 @@
</view>
</view>
</view>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'user_info'
,
'b2b_user_info'
],
data
()
{
return
{
pageTitle
:
"个人中心"
,
...
...
@@ -111,7 +119,7 @@
},
{
text
:
''
,
colorStyle
:
'
active
'
,
colorStyle
:
''
,
radiusL
:
''
,
radiusR
:
''
,
img
:
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638732528736165089.png'
...
...
@@ -119,7 +127,8 @@
],
};
},
components
:
{
components
:
{},
computed
:
{
},
created
()
{
...
...
@@ -127,7 +136,6 @@
},
onLoad
()
{
this
.
nav
=
uni
.
getSystemInfoSync
().
statusBarHeight
+
"px"
;
},
mounted
()
{
...
...
@@ -136,7 +144,37 @@
},
methods
:
{
formatNumberWithUnit
(
num
)
{
if
(
num
===
0
)
return
'0.00'
;
const
units
=
[
''
,
'K'
,
'M'
,
'B'
,
'T'
];
// 单位数组:千(k)、百万(M)、十亿(B)、万亿(T)
const
exponent
=
Math
.
floor
(
Math
.
log10
(
num
));
const
unitIndex
=
Math
.
max
(
0
,
Math
.
floor
(
exponent
/
3
))
-
1
;
// 计算单位索引
// 缩放数值并保留三位有效数字
const
scaledNum
=
num
/
(
10
**
(
unitIndex
*
3
));
const
formatted
=
scaledNum
.
toLocaleString
(
'en-US'
,
{
precision
:
3
,
// 保留三位有效数字
rounding
:
'round-trip'
// 四舍五入
});
// 处理科学计数法(如 1.23e3 → 1230)
if
(
formatted
.
includes
(
'e'
))
{
const
[
significand
,
exp
]
=
formatted
.
split
(
'e'
);
return
significand
+
'0'
.
repeat
(
parseInt
(
exp
))
+
units
[
unitIndex
+
1
];
}
if
(
formatted
.
substring
(
3
,
4
)
==
','
)
return
formatted
.
substring
(
0
,
3
)
+
units
[
unitIndex
+
1
];
return
formatted
.
substring
(
0
,
4
)
+
units
[
unitIndex
+
1
];
},
login
(
name
)
{
if
((
name
&&
name
.
nickname
==
""
)
||
!
name
||
!
name
.
nickname
)
{
this
.
$emit
(
'login'
)
}
},
navigatorToProfile
(){
// #ifdef MP-DI
uni
.
navigateTo
({
url
:
'/pages/user-center/user-profile'
})
// #endif
},
},
};
</
script
>
...
...
@@ -145,10 +183,11 @@
@import
url("@/asset/css/flex.css")
;
.userHeaderBox
{
width
:
750rpx
;
height
:
622rpx
;
//
height: 622rpx;
background
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748787642081151.png')
no-repeat
;
background-size
:
100%
100%
;
padding-top
:
118rpx
;
margin-bottom
:
40rpx
;
}
.titlenav
{
width
:
100%
;
...
...
@@ -245,7 +284,7 @@
.jz_LineDetaVPBLine
{
flex
:
1
;
height
:
10rpx
;
background
:
#
2E2E2E
;
background
:
#
000
;
}
.jz_LineDetaVPBBoxI
{
position
:
relative
;
...
...
@@ -286,26 +325,21 @@
background-size
:
100%
100%
;
}
.userHeadPasTop
{
padding
:
41rpx
65rpx
50rpx
65
rpx
;
padding
:
41rpx
40rpx
50rpx
40
rpx
;
}
.userHeadPasTop
view
{
text-align
:
center
;
}
.userHeadPasT
op
view
text
{
font-
family
:
HYYuanLongHei
;
font-weight
:
normal
;
.userHeadPasT
_Num
{
font-
size
:
34rpx
;
color
:
#4F360D
;
font-weight
:
bold
;
}
.userHeadPasT_Text
{
.userHeadPasTTeT
{
font-weight
:
500
;
font-size
:
28rpx
;
color
:
#4F360D
;
padding-top
:
14rpx
;
}
.userHeadPasMoney
view
{
font-size
:
20rpx
;
font-weight
:
bold
;
position
:
absolute
;
top
:
15rpx
;
left
:
-20rpx
;
padding-top
:
7rpx
;
}
.userHeadPasButtom
{
padding
:
21rpx
0
40rpx
39rpx
;
...
...
@@ -329,4 +363,5 @@
height
:
21rpx
;
margin-left
:
21rpx
;
}
</
style
>
pages/user-center/components/vipUserHeader.vue
View file @
c3bcaf7f
...
...
@@ -3,60 +3,54 @@
<view
class=
"titlenav"
:style=
"
{ paddingTop: nav }">
{{
pageTitle
}}
</view>
<view
class=
"userHeadPic row"
>
<view
class=
"userHeadPicL"
>
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748864186439447.png"
mode=
"widthFix"
></image>
<u-avatar
:src=
"b2b_user_info.photo?b2b_user_info.photo:user_info.avatar"
size=
"70"
shape=
"circle"
></u-avatar>
<!--
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638748864186439447.png"
mode=
"widthFix"
></image>
-->
</view>
<view
class=
"col column"
>
<text
class=
"userHeadPicR_title"
>
Ranjunjun
</text>
<text
v-if=
"b2b_user_info&&b2b_user_info.name"
class=
"userHeadPicR_title"
@
click=
"navigatorToProfile"
>
{{
b2b_user_info
.
name
}}
</text>
<text
v-else-if=
"mall_UserInfo&&mall_UserInfo.Name"
class=
"userHeadPicR_title"
>
{{
mall_UserInfo
.
Name
}}
</text>
<text
v-else
class=
"userHeadPicR_title"
@
click=
"login(user_info)"
>
立即登录
</text>
<view
class=
"userHeadPicR_VIP"
>
<im
g
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/202502111735vip.png"
/>
<im
age
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/202502111735vip.png"
/>
</view>
</view>
</view>
<view
class=
"userHeadInfoBox"
>
<view
class=
"userHeadInfo"
>
<view
class=
"userHeadInfo_Name"
>
王蕾钧
</view>
<view
class=
"userHeadInfo_text"
>
销售:李龙飞等3位
</view>
<img
class=
"userHeadInfo_vip"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/202502111735zk.png"
/>
<view
class=
"userHeadInfo_Name"
>
{{
b2b_user_info
.
name
}}
</view>
<view
class=
"userHeadInfo_text"
>
销售:
{{
b2b_user_info
.
salesBaseInfo
.
emName
}}
等3位
</view>
<image
class=
"userHeadInfo_vip"
mode=
"aspectFit"
style=
"width: 385rpx;height: 49rpx;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/202502111735zk.png"
/>
<view
class=
"userHeadPasTop"
>
<view
class=
"userHeadPasT_Num row-sbs-n"
>
<view
class=
"row col"
>
<text
class=
"userHeadPasTextb"
style=
"font-size: 40rpx;color: #FF3166;"
>
60
</text>
</view>
<view
class=
"userHeadPasT_Nl"
>
<view
class=
"userHeadPasT_Lin"
></view>
</view>
<view
class=
"row col"
>
<view
class=
"userHeadPasMoney"
>
<text
class=
"userHeadPasMo"
>
¥
</text>
<text
style=
"font-size: 36rpx;"
>
248.2
</text>
</view>
</view>
<view
class=
"userHeadPasT_Nl"
>
<view
class=
"userHeadPasT_Lin"
></view>
</view>
<view
class=
"row col"
>
<text
class=
"userHeadPasTextb"
style=
"color: #E2C27A;font-size: 36rpx;"
>
3
</text>
</view>
</view>
<view
class=
"userHeadPasT_Text row-sbs-n"
>
<view
class=
"row col"
>
<text
class=
"userHeadPasTTeT"
style=
"font-size: 28rpx;font-weight: bold;"
>
<view
class=
"column"
>
<text>
60k
</text>
<text
class=
"userHeadPasTTeT"
>
幸福存折
</text>
</view>
<view
class=
"
userHeadPasT_Nl
"
>
<
view
class=
"userHeadPasT_Lin"
style=
"opacity: 0;"
></view
>
</view
>
<view
class=
"row col"
>
<
text
class=
"userHeadPasTTeT"
style=
"font-size: 26rpx;font-weight: 100;"
>
累计已省
<
/text>
<view
class=
"
column
"
>
<
text>
1852
</text
>
<text
class=
"userHeadPasTTeT"
>
我的积分
</text>
</view>
<view
class=
"userHeadPasT_Nl"
>
<view
class=
"userHeadPasT_Lin"
style=
"opacity: 0;"
></view>
<view
class=
"column"
>
<text>
248.2w
</text>
<text
class=
"userHeadPasTTeT"
>
累计已省
</text>
</view>
<view
class=
"row col"
>
<text
class=
"userHeadPasTTeT"
style=
"font-size: 26rpx;font-weight: 100;"
>
抵扣券
</text>
<view
class=
"column"
>
<text
class=
"userHeadPasTextb"
>
3
</text>
<text
class=
"userHeadPasTTeT"
>
优惠券
</text>
</view>
</view>
</view>
...
...
@@ -68,6 +62,7 @@
<
script
>
export
default
{
props
:[
'user_info'
,
'b2b_user_info'
],
data
()
{
return
{
pageTitle
:
"个人中心"
,
...
...
@@ -107,9 +102,7 @@
],
};
},
components
:
{
},
components
:
{},
created
()
{
},
...
...
@@ -124,8 +117,39 @@
},
methods
:
{
formatNumberWithUnit
(
num
)
{
if
(
num
===
0
)
return
'0.00'
;
const
units
=
[
''
,
'K'
,
'M'
,
'B'
,
'T'
];
// 单位数组:千(k)、百万(M)、十亿(B)、万亿(T)
const
exponent
=
Math
.
floor
(
Math
.
log10
(
num
));
const
unitIndex
=
Math
.
max
(
0
,
Math
.
floor
(
exponent
/
3
))
-
1
;
// 计算单位索引
// 缩放数值并保留三位有效数字
const
scaledNum
=
num
/
(
10
**
(
unitIndex
*
3
));
const
formatted
=
scaledNum
.
toLocaleString
(
'en-US'
,
{
precision
:
3
,
// 保留三位有效数字
rounding
:
'round-trip'
// 四舍五入
});
// 处理科学计数法(如 1.23e3 → 1230)
if
(
formatted
.
includes
(
'e'
))
{
const
[
significand
,
exp
]
=
formatted
.
split
(
'e'
);
return
significand
+
'0'
.
repeat
(
parseInt
(
exp
))
+
units
[
unitIndex
+
1
];
}
if
(
formatted
.
substring
(
3
,
4
)
==
','
)
return
formatted
.
substring
(
0
,
3
)
+
units
[
unitIndex
+
1
];
return
formatted
.
substring
(
0
,
4
)
+
units
[
unitIndex
+
1
];
},
login
(
name
)
{
if
((
name
&&
name
.
nickname
==
""
)
||
!
name
||
!
name
.
nickname
)
{
this
.
$emit
(
'login'
)
}
},
navigatorToProfile
(){
// #ifdef MP-DI
uni
.
navigateTo
({
url
:
'/pages/user-center/user-profile'
})
// #endif
},
},
};
</
script
>
...
...
@@ -170,7 +194,7 @@
.userHeadPicR_VIP
{
padding-top
:
3rpx
;
}
.userHeadPicR_VIP
im
g
{
.userHeadPicR_VIP
im
age
{
width
:
81rpx
;
height
:
26rpx
;
display
:
block
;
...
...
@@ -202,56 +226,26 @@
padding-top
:
16rpx
;
}
.userHeadInfo_vip
{
width
:
385rpx
;
height
:
49rpx
;
display
:
block
;
padding-top
:
29rpx
;
}
.userHeadPasTop
{
padding
:
88
rpx
0
50rpx
0
;
padding
:
120
rpx
0
50rpx
0
;
}
.userHeadPasTop
view
{
text-align
:
center
;
}
.userHeadPasTop
view
text
{
font-family
:
HYYuanLongHei
;
font-weight
:
normal
;
font-size
:
34rpx
;
font-weight
:
bold
;
}
.userHeadPasT_Text
{
text-align
:
center
;
color
:
#E2C27A
;
padding-top
:
14rpx
;
}
.userHeadPasMoney
{
width
:
100%
;
text-align
:
center
;
color
:
#E2C27A
;
}
.userHeadPasMo
{
font-size
:
20rpx
;
.userHeadPasT_Num
{
font-size
:
34rpx
;
font-weight
:
bold
;
margin-right
:
5rpx
;
}
.userHeadPasT_Nl
{
position
:
relative
;
}
.userHeadPasT_Nl
text
{
display
:
block
;
}
.userHeadPasT_Lin
{
position
:
absolute
;
right
:
0
;
top
:
3rpx
;
width
:
1rpx
;
height
:
39rpx
;
background
:
#E2C27A
;
opacity
:
0
.5
;
color
:
#E2C27A
;
}
.userHeadPasTextb
,
.userHeadPasTTeT
{
width
:
100%
;
display
:
block
;
text-align
:
center
;
.userHeadPasTTeT
{
font-size
:
28rpx
;
color
:
#987C3D
;
font-weight
:
100
;
padding-top
:
7rpx
;
}
</
style
>
pages/user-center/happinessPassbook.vue
0 → 100644
View file @
c3bcaf7f
<
template
>
<view
style=
"width:100vw;height:100vh;"
class=
"column"
>
<scroll-view
:scroll-y=
"true"
@
scroll=
"scrollHandler"
@
scrolltoupper=
"scrollTopHandler"
class=
"col"
style=
"height: 1px;width: 100%;"
>
<view
class=
"userStyle"
>
<view
class=
"headStatus"
v-if=
"scrollTop > 50"
:style=
"
{
zIndex: scrollTop
<
10
?
'
unset
'
:
2
,
opacity:
scrollTop
<
10
?
'
100
'
:
scrollTop
,
}"
>
<view
class=
"title"
>
{{
pageTitle
}}
</view>
</view>
<view
class=
"userBox"
style=
"height:100vh"
>
<happasHeader
:user_info=
"user_info"
:b2b_user_info=
"b2b_user_info"
@
login=
"openAuth"
></happasHeader>
<view
style=
"padding: 0 32rpx;width: 100vw;height: 1px;flex: 1;"
>
<view
class=
"userMyOrderBox column"
>
<view
class=
"row-sb-n"
style=
"padding: 20rpx 0;"
>
<view>
明细
</view>
<view
class=
"row"
>
<text>
2025年
</text>
<u-icon
name=
"arrow-down"
size=
"28"
color=
"#000"
></u-icon>
</view>
<view
class=
"row"
>
<text>
3月
</text>
<u-icon
name=
"arrow-down"
size=
"28"
color=
"#000"
></u-icon>
</view>
</view>
<scroll-view
:scroll-y=
"true"
class=
"col"
style=
"height: 1px;flex: 1; width: 100%;"
>
<view
class=
"userHeadPListBox"
>
<view
class=
"userHeadPList row"
v-for=
"(item,index) in 10"
>
<view
class=
"userHeadPListL"
>
<image
mode=
"scaleToFill"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638774847991690497.png"
/>
<text>
共4件
</text>
</view>
<view
class=
"userHeadPListA col column"
>
<view
class=
"userHeadPListATitel"
>
幸福存折返佣
</view>
<view
class=
"userHeadPListATime"
>
2025-02-08 15:27
</view>
</view>
<view
class=
"userHeadPListR"
>
+¥30
</view>
</view>
</view>
</scroll-view>
</view>
</view>
</view>
</view>
</scroll-view>
</view>
</
template
>
<
script
>
import
happasHeader
from
"./components/happasHeader.vue"
;
export
default
{
components
:
{
happasHeader
,
},
data
()
{
return
{
pageTitle
:
"幸福存折"
,
scrollTop
:
0
,
showAuth
:
false
,
b2b_user_info
:
{},
mall_UserInfo
:
{},
u
:
{},
user_info
:
{},
shopBasics
:
{},
PointNum
:
0
,
};
},
onLoad
()
{
this
.
b2b_user_info
=
uni
.
getStorageSync
(
'b2b_user'
);
this
.
mall_UserInfo
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
this
.
showAuth
=
!
this
.
mall_UserInfo
||
!
this
.
b2b_user_info
;
},
onShow
()
{
this
.
userCenterinfo
(
2
);
},
methods
:
{
goDetails
(
item
)
{
return
let
url
=
null
let
msg
=
null
// #ifdef MP-DI
msg
=
`OrderNo=
${
item
.
orderNo
}
`
if
(
item
.
goodsType
>
0
&&
item
.
goodsType
<
4
)
url
=
`jiuzhai/jz_SureOrder?`
//线路
else
if
(
item
.
goodsType
>
3
&&
item
.
goodsType
<
8
){
//景点门票
}
else
if
(
item
.
goodsType
>
7
&&
item
.
goodsType
<
12
){
//酒店住宿
}
else
if
(
item
.
goodsType
>
11
&&
item
.
goodsType
<
15
){
//目的地用车
}
else
if
(
item
.
goodsType
==
15
)
url
=
`visa/visa_SureOrder?`
//签证
else
if
(
item
.
goodsType
==
16
)
url
=
`airTicket/airTicketOrderDetail?`
//机票
// #endif
// #ifdef MP-AG
msg
=
`orderId=
${
item
.
erpOrderId
}
`
if
(
item
.
goodsType
==
2
)
url
=
`jiuzhai/jz_SureOrder?`
//线路
else
if
(
item
.
goodsType
==
4
){
//景点门票
}
else
if
(
item
.
goodsType
==
3
){
//酒店住宿
}
else
if
(
item
.
goodsType
==
5
){
//目的地用车
}
else
if
(
item
.
goodsType
==
6
)
url
=
`visa/visa_SureOrder?`
//签证
else
if
(
item
.
goodsType
==
1
){
//机票
url
=
`airTicket/airTicketOrderDetail?`
msg
=
`id=
${
item
.
erpOrderId
}
`
}
// #endif
if
(
url
)
{
let
path
=
`/pages/
${
url
}${
msg
}
`
uni
.
navigateTo
({
url
:
path
,
});
}
},
openAuth
()
{
this
.
showAuth
=
true
;
},
//关闭登录窗口
gbAuth
()
{
this
.
showAuth
=
false
;
},
scrollHandler
(
e
)
{
this
.
scrollTop
=
e
.
detail
.
scrollTop
;
},
scrollTopHandler
()
{
this
.
scrollTop
=
0
;
},
goUrl
(
url
)
{
uni
.
navigateTo
({
url
});
},
//获取菜单配置
userCenterinfo
(
type
=
1
)
{
uni
.
showNavigationBarLoading
();
this
.
request2
({
url
:
"/api/Mall/GetUserCenter"
,
data
:
{},
},
(
res
)
=>
{
uni
.
hideNavigationBarLoading
();
this
.
user_info
=
res
.
data
.
user_info
;
if
(
this
.
mall_UserInfo
&&
type
==
1
)
{
// this.getLogin()
}
}
);
let
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
if
(
u
&&
type
==
1
)
{
this
.
getMicroShopBasics
();
}
},
getMicroShopBasics
()
{
this
.
request2
({
url
:
"/api/AppletUser/GetMicroShopBasics"
,
data
:
{},
},
(
res
)
=>
{
this
.
shopBasics
=
res
.
data
;
}
)
},
reloadUserinfo
()
{
this
.
b2b_user_info
=
uni
.
getStorageSync
(
'b2b_user'
);
this
.
userCenterinfo
();
this
.
u
=
this
.
user_info
;
this
.
mall_UserInfo
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
)
:
{};
this
.
getUserPoint
();
},
getUserPoint
()
{
this
.
request2
({
url
:
"/api/AppletPoint/GetAppletUserPointDetailPageList"
,
data
:
{
pageIndex
:
1
,
pageSize
:
10
,
Type
:
0
},
},
(
res
)
=>
{
this
.
PointNum
=
res
.
data
.
pageData
.
PointNum
;
}
);
},
}
};
</
script
>
<
style
>
@import
url('../../asset/css/flex.css')
;
.row-sbas-n
{
justify-content
:
space-between
;
}
.relative
{
position
:
relative
;
}
.userStyle
.userBox
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
background
:
#f3f4f6
;
min-height
:
100vh
;
padding-bottom
:
env
(
safe-area-inset-bottom
);
}
.order_bar_list
{
padding
:
22
rpx
55
rpx
;
display
:
flex
;
flex-direction
:
row
;
align-items
:
center
;
justify-content
:
space-between
;
}
.order_bar_item
{
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
margin-top
:
20
rpx
;
position
:
relative
;
}
.badge
{
position
:
absolute
;
right
:
-10
rpx
;
top
:
-10
rpx
;
padding
:
0
8
rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
font-size
:
20
rpx
;
background
:
#FF3166
;
color
:
#fff
;
min-width
:
28
rpx
;
height
:
28
rpx
;
border-radius
:
14
rpx
;
}
.headStatus
{
position
:
fixed
;
width
:
140vw
;
padding-right
:
40vw
;
padding-bottom
:
10px
;
left
:
0
;
right
:
0
;
top
:
0
;
display
:
flex
;
background-image
:
linear-gradient
(
to
right
,
#e6b865
,
#ebb45e
);
}
.headStatus
.title
{
font-size
:
18px
;
color
:
#fff
;
flex
:
1
;
width
:
1px
;
line-height
:
34px
;
text-align
:
center
;
}
.userMyOrder
{
background
:
#FFF
;
border-radius
:
20
rpx
;
padding
:
33
rpx
0
22
rpx
0
;
}
.userMyOrderTitle
{
padding
:
23
rpx
31
rpx
0
31
rpx
;
}
.userMyOrderTitL
{
font-family
:
PingFang
SC
;
font-weight
:
800
;
font-size
:
32
rpx
;
color
:
#080A09
;
}
.userMyOrderTitR
{
font-family
:
PingFang
SC
;
font-weight
:
500
;
font-size
:
24
rpx
;
color
:
#B2B3B3
;
align-items
:
center
;
}
.userMyOrderTitRIght
{
margin-left
:
11
rpx
;
transform
:
rotate
(
90deg
);
}
.orderProductBox
{
padding
:
0
20
rpx
;
}
.orderProduct
{
width
:
648
rpx
;
height
:
132
rpx
;
background
:
#F7F7F7
;
border-radius
:
18
rpx
;
padding
:
21
rpx
20
rpx
;
}
.orderProductL
{
width
:
91
rpx
;
height
:
88
rpx
;
border-radius
:
14
rpx
;
overflow
:
hidden
;
margin-right
:
18
rpx
;
}
.orderProductR_state
{
font-family
:
PingFang
SC
;
font-weight
:
500
;
font-size
:
28
rpx
;
color
:
#080A09
;
padding-top
:
5
rpx
;
}
.orderProductR_text
{
width
:
100%
;
font-family
:
PingFang
SC
;
font-weight
:
500
;
font-size
:
24
rpx
;
color
:
#8C8C8C
;
padding-top
:
4
rpx
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
white-space
:
nowrap
;
}
.userMyOrderBox
{
background
:
#FFFFFF
;
height
:
100%
;
overflow
:
hidden
;
border-radius
:
20
rpx
;
padding
:
25
rpx
34
rpx
45
rpx
34
rpx
;
}
.userHeadPList
{
padding
:
20
rpx
0
;
}
.userHeadPListL
{
width
:
91
rpx
;
height
:
88
rpx
;
border-radius
:
14
rpx
;
overflow
:
hidden
;
position
:
relative
;
}
.userHeadPListL
image
{
width
:
91
rpx
;
height
:
88
rpx
;
display
:
block
;
}
.userHeadPListL
text
{
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
z-index
:
1
;
background
:
rgb
(
178
,
179
,
179
,
.8
);
border-radius
:
0
rpx
0
rpx
14
rpx
14
rpx
;
color
:
#fff
;
font-size
:
20
rpx
;
padding
:
5
rpx
0
;
text-align
:
center
;
}
.userHeadPListA
{
margin-left
:
29
rpx
;
margin-right
:
20
rpx
;
}
.userHeadPListATitel
{
font-weight
:
bold
;
font-size
:
28
rpx
;
color
:
#080A09
;
margin-top
:
5
rpx
;
}
.userHeadPListATime
{
font-weight
:
500
;
font-size
:
24
rpx
;
color
:
#8C8C8C
;
margin-top
:
18
rpx
;
}
.userHeadPListR
{
font-weight
:
bold
;
font-size
:
28
rpx
;
color
:
#B99846
;
}
</
style
>
\ No newline at end of file
pages/user-center/userVip-center.vue
0 → 100644
View file @
c3bcaf7f
This diff is collapsed.
Click to expand it.
pages/visa/visa_SureOrder.vue
View file @
c3bcaf7f
...
...
@@ -328,6 +328,9 @@
.jz_MyGuestList
{
margin-top
:
40
rpx
;
}
/
deep
/
.showModalInfo
.u-drawer-bottom
{
background-color
:
rgba
(
23
,
23
,
23
,
0
)
!important
;
}
</
style
>
<
template
>
<view
class=
"jz_Reserve"
v-if=
"orderData"
>
...
...
@@ -388,7 +391,7 @@
</view>
</view>
<view
class=
"jz_form"
>
<view
class=
"jz_form"
v-if=
"orderData && orderData.OrderModel"
>
<view
class=
"form-items"
>
<view
class=
"label"
>
订单编号
</view>
<view
class=
"jz_SureVal"
>
...
...
@@ -445,7 +448,7 @@
</view>
</view>
</view>
<view
class=
"empty-block"
></view>
<view
class=
"empty-block"
v-if=
"orderData.OrderModel&&orderData.OrderModel.GuestList&&orderData.OrderModel.GuestList.length>0"
></view>
<view
class=
"jz_form"
v-if=
"orderData.OrderModel.Remark"
>
<view
class=
"form-items"
style=
"border-bottom: 0"
>
<view
class=
"label"
>
备注
</view>
...
...
@@ -453,7 +456,9 @@
</view>
</view>
<view
class=
"empty-block"
></view>
<view
style=
"padding: 50rpx 40rpx"
>
<cancelProgress
:datas=
"orderData"
></cancelProgress>
<view
class=
"empty-block"
></view>
<view
style=
"padding: 50rpx 40rpx"
v-if=
"orderData.OrderModel"
>
<view
class=
"big-title"
>
<text>
费用明细
</text>
</view>
...
...
@@ -522,13 +527,13 @@
<view
class=
"jz_orderbox flex"
v-if=
"showPayBtn"
>
<view
style=
"display: flex"
>
<!-- #ifdef MP-DI -->
<button
class=
"jz_OrderReNow"
@
click=
"goCancelZK"
<button
v-if=
"orderData.OrderStatus==1||orderData.OrderStatus==2"
class=
"jz_OrderReNow"
@
click=
"goCancelZK"
style=
"background: #fff; color: #111; border: 1px solid #111"
:disabled=
"submitCancel"
:loading=
"submitCancel"
>
取消
</button>
<button
class=
"jz_OrderReNow"
<button
v-if=
"orderData.OrderStatus==1"
class=
"jz_OrderReNow"
style=
"margin-left: 20rpx;"
@
click=
"submitGetCodeByOrderNo"
:disabled=
"submit"
:loading=
"submit"
>
立即支付
...
...
@@ -569,7 +574,9 @@
<!-- #ifdef MP-ALIPAY -->
<subscribe-msg
/>
<!-- #endif -->
<cancelPrompt
:showModal=
"showModal"
@
cancel=
"cancelPrompt"
></cancelPrompt>
<cancelPrompt
v-if=
"showModal"
:showModal=
"showModal"
@
cancel=
"cancelModal"
:orderNo=
"orderData.OrderNo"
></cancelPrompt>
</view>
</template>
...
...
@@ -577,9 +584,10 @@
</
script
>
<
script
>
import
cancelPrompt
from
'../AggregateOrders/components/cancelPrompt.vue'
import
cancelPrompt
from
'@/components/cancelPrompt/cancelPrompt.vue'
import
cancelProgress
from
'@/components/cancelPrompt/cancelProgress.vue'
export
default
{
components
:
{
cancelPrompt
},
components
:
{
cancelPrompt
,
cancelProgress
},
data
()
{
return
{
pageTitle
:
"订单详情"
,
...
...
@@ -589,7 +597,10 @@
MiniAppUserId
:
0
,
},
orderData
:
null
,
orderStatus
:
{},
orderStatus
:
{
code
:
0
,
text
:
""
,
},
submit
:
false
,
submitCancel
:
false
,
showPayBtn
:
true
,
...
...
@@ -605,9 +616,7 @@
onLoad
(
option
)
{
if
(
option
.
orderData
)
{
this
.
orderData
=
JSON
.
parse
(
decodeURIComponent
(
option
.
orderData
));
}
else
if
(
option
.
orderId
&&!
option
.
OrderTypeStr
)
{
this
.
initOrderInfo
(
option
.
orderId
);
}
else
if
(
option
.
OrderNo
||
(
option
.
orderId
&&
option
.
OrderTypeStr
)){
}
else
if
(
option
.
OrderNo
||
(
option
.
orderId
&&
option
.
OrderTypeStr
)){
if
(
option
.
OrderTypeStr
){
this
.
OrderTypeStr
=
option
.
OrderTypeStr
}
...
...
@@ -618,10 +627,13 @@
this
.
OrderNo
=
option
.
OrderNo
}
this
.
getOrderInfoHandler
()
}
else
if
(
option
.
orderId
)
{
this
.
orderId
=
option
.
orderId
this
.
initOrderInfo
(
option
.
orderId
);
}
},
methods
:
{
cancel
Prompt
(){
cancel
Modal
(){
this
.
showModal
=
false
},
submitGetCodeByOrderNo
()
{
...
...
@@ -753,13 +765,20 @@
}
},
goCancelZK
()
{
let
that
=
this
if
(
this
.
orderData
.
OrderStatus
==
2
)
{
return
this
.
showModal
=
true
};
if
(
this
.
submit
||
this
.
submitCancel
)
return
;
this
.
submitCancel
=
true
;
if
(
this
.
orderData
.
OrderStatus
==
1
)
{
this
.
apipost
(
wx
.
showModal
({
title
:
'提示'
,
content
:
'确定取消订单?'
,
success
:
(
tip
)
=>
{
if
(
tip
.
confirm
)
{
that
.
submitCancel
=
true
;
that
.
apipost
(
"GetCancelOrder_post"
,
{
OrderNo
:
this
.
OrderNo
OrderNo
:
that
.
OrderNo
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
...
...
@@ -771,17 +790,20 @@
url
:
"/pages/visa/visa_MyOrder"
,
});
}
this
.
submitCancel
=
false
that
.
submitCancel
=
false
},
(
err
)
=>
{
uni
.
showToast
({
title
:
err
.
message
,
icon
:
"none"
,
});
this
.
submitCancel
=
false
that
.
submitCancel
=
false
}
);
}
}
})
},
getWeek
(
date
)
{
var
weekArray
=
new
Array
(
"日"
,
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
);
...
...
@@ -814,20 +836,20 @@
}
// #ifdef MP-AG
this
.
formatStatus
(
this
.
orderD
ata
.
OrderModel
.
VisaOrderStatus
,
this
.
orderD
ata
.
OrderModel
.
Income
,
this
.
orderD
ata
.
OrderModel
.
TotalPrice
,
this
.
orderD
ata
.
OrderModel
.
PlatformTax
res
.
d
ata
.
OrderModel
.
VisaOrderStatus
,
res
.
d
ata
.
OrderModel
.
Income
,
res
.
d
ata
.
OrderModel
.
TotalPrice
,
res
.
d
ata
.
OrderModel
.
PlatformTax
);
// #endif
}
else
{
}
},
(
e
)
=>
{
this
.
orderData
=
{
result
:
-
1
,
};
}
},
(
e
)
=>
{}
);
},
formatStatus
(
status
,
Income
,
TotalPrice
,
PlatformTax
)
{
...
...
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