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
391066a7
Commit
391066a7
authored
Apr 21, 2025
by
黄奎
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
酒店接口调整
parent
9c77d820
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1055 additions
and
986 deletions
+1055
-986
AggregateOrdersList.vue
pages/AggregateOrders/AggregateOrdersList.vue
+103
-95
AggregateOrdersSearch.vue
pages/AggregateOrders/AggregateOrdersSearch.vue
+155
-136
header.vue
pages/AggregateOrders/components/header.vue
+232
-214
orders.vue
pages/AggregateOrders/components/orders.vue
+490
-466
hotelRoom.vue
pages/hotel/components/hotelRoom.vue
+3
-3
order.vue
pages/hotel/order.vue
+7
-13
producttypeenum.js
utils/producttypeenum.js
+65
-59
No files found.
pages/AggregateOrders/AggregateOrdersList.vue
View file @
391066a7
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.AggOrdBox
{
.AggOrdBox
{
height
:
100vh
;
background
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246864278108.jpg')
no-repeat
#F3F1EF
;
background-size
:
100%
240rpx
;
.AggOrdHeader
{
.AggOrdHeader
{
padding-bottom
:
20rpx
;
// background: url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246864278108.jpg')no-repeat;
// background-size: 100% 100%;
}
.AggOrdStatus
{
.AggOrdStatus
{
padding-top
:
20rpx
;
.AggOrdT
{
.AggOrdT
{
width
:
25%
;
padding
:
10rpx
20rpx
;
font-size
:
28rpx
;
color
:
#080A09
;
position
:
relative
;
}
.AggOrdT.active
{
.AggOrdT.active
{
color
:
#B99846
;
font-weight
:
bold
;
}
.AggOrdT
text
{
.AggOrdT
text
{
display
:
block
;
text-align
:
center
;
}
.AggOrdT
view
{
.AggOrdT
view
{
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
}
.AggOrdT
view
view
{
.AggOrdT
view
view
{
width
:
60rpx
;
height
:
10rpx
;
margin
:
auto
;
...
...
@@ -40,106 +48,103 @@
border-radius
:
10rpx
;
}
}
}
/
deep
/
.showModalInfo
.u-drawer-bottom
{
background-color
:
rgba
(
23
,
23
,
23
,
0
)
!
important
;
}
/
deep
/
.showModalInfo
.u-drawer-bottom
{
background-color
:
rgba
(
23
,
23
,
23
,
0
)
!
important
;
}
</
style
>
<
template
>
<view
class=
"AggOrdBox column"
>
<view
class=
"AggOrdHeader"
:style=
"[titleStyle]"
>
<AggOrdHeader
:title=
"pageTitle"
@
change=
"getOrderType"
:params=
"msg"
></AggOrdHeader>
<AggOrdHeader
:title=
"pageTitle"
@
change=
"getOrderType"
:params=
"msg"
></AggOrdHeader>
<view
class=
"AggOrdStatus row items-center"
>
<template>
<view
class=
"AggOrdT"
v-for=
"(item,index) in statusList"
:key=
"index"
:class=
"[msg.OrderStatus==item.ID?'active':'']"
@
click=
"getStatus(item.ID)"
>
<view
class=
"AggOrdT"
v-for=
"(item,index) in statusList"
:key=
"index"
:class=
"[msg.OrderStatus==item.ID?'active':'']"
@
click=
"getStatus(item.ID)"
>
<text>
{{
item
.
Name
}}
</text>
</view>
</
template
>
</view>
</view>
<view
class=
"col"
style=
"height: 1px;flex: 1;overflow: hidden;padding-top: 10rpx;"
>
<scroll-view
:scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scrolltolower=
"lower"
style=
"height: 100%;"
>
<orders
:orders=
"g"
@
research=
"research"
></orders>
<u-empty
v-if=
"g.length==0"
text=
"暂无数据"
mode=
"data"
padding-top=
"20"
></u-empty>
<u-loadmore
v-else
:status=
"status"
:load-text=
"loadText"
:font-size=
"24"
:margin-top=
"20"
:margin-bottom=
"20"
bg-color=
"#F3F1EF"
/>
<view
style=
"width: 100%;height: 20rpx;"
></view>
<view
class=
"col"
style=
"height: 1px;flex: 1;overflow: hidden;padding-top: 10rpx;"
>
<scroll-view
:scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scrolltolower=
"lower"
style=
"height: 100%;"
>
<orders
:orders=
"g"
@
research=
"research"
></orders>
<u-empty
v-if=
"g.length==0"
text=
"暂无数据"
mode=
"data"
padding-top=
"20"
></u-empty>
<u-loadmore
v-else
:status=
"status"
:load-text=
"loadText"
:font-size=
"24"
:margin-top=
"20"
:margin-bottom=
"20"
bg-color=
"#F3F1EF"
/>
<view
style=
"width: 100%;height: 20rpx;"
></view>
</scroll-view>
</view>
</view>
</view>
</template>
<
script
>
import
{
mappingListType
,
mappingListTypeTy
}
from
"../../utils/producttypeenum"
;
import
{
mappingListType
,
mappingListTypeTy
}
from
"../../utils/producttypeenum"
;
import
EnumHelper
from
'../../utils/enumhelper'
;
import
OrderStatusEnum
from
'../../utils/orderStautsEnum'
;
import
AggOrdHeader
from
"./components/header.vue"
;
import
orders
from
"./components/orders.vue"
;
export
default
{
components
:
{
export
default
{
components
:
{
AggOrdHeader
,
orders
,
},
data
()
{
return
{
data
()
{
return
{
pageTitle
:
'所有订单'
,
msg
:{
pageSize
:
10
,
pageIndex
:
1
,
msg
:
{
pageSize
:
10
,
pageIndex
:
1
,
OrderStatus
:
0
,
GoodsName
:
''
,
OrderTypeStr
:
''
},
loadText
:
{
loadText
:
{
loadmore
:
"轻轻上拉,加载更多"
,
loading
:
"努力加载中"
,
nomore
:
"没有更多了"
,
},
status
:
"loadmore"
,
showModal
:
false
,
barshow
:
0
,
statusList
:
[],
g
:
[],
page_count
:
1
,
index
:
0
,
payindex
:
0
,
status
:
"loadmore"
,
showModal
:
false
,
barshow
:
0
,
statusList
:
[],
g
:
[],
page_count
:
1
,
index
:
0
,
payindex
:
0
,
showAuth
:
false
,
titleStyle
:{},
}
},
onLoad
(
options
)
{
if
(
options
.
OrderTypeStr
)
this
.
msg
.
OrderTypeStr
=
options
.
OrderTypeStr
if
(
options
.
OrderStatus
)
this
.
msg
.
OrderStatus
=
options
.
OrderStatus
titleStyle
:
{},
}
},
onLoad
(
options
)
{
if
(
options
.
OrderTypeStr
)
this
.
msg
.
OrderTypeStr
=
options
.
OrderTypeStr
if
(
options
.
OrderStatus
)
this
.
msg
.
OrderStatus
=
options
.
OrderStatus
this
.
research
()
},
created
()
{
},
created
()
{
const
that
=
this
uni
.
getSystemInfo
({
success
(
res
)
{
that
.
titleStyle
=
{
paddingTop
:
`
${
res
.
statusBarHeight
}
px`
};
},
});
uni
.
getSystemInfo
({
success
(
res
)
{
that
.
titleStyle
=
{
paddingTop
:
`
${
res
.
statusBarHeight
}
px`
};
},
});
this
.
getOrderEnums
()
},
methods
:{
getStatus
(
ID
){
this
.
msg
.
OrderStatus
=
ID
},
methods
:
{
getStatus
(
ID
)
{
this
.
msg
.
OrderStatus
=
ID
this
.
research
()
},
research
(
status
){
if
(
status
)
this
.
msg
.
OrderStatus
=
status
;
research
(
status
)
{
if
(
status
)
this
.
msg
.
OrderStatus
=
status
;
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
pageSize
=
10
;
this
.
status
=
"loadmore"
;
...
...
@@ -147,35 +152,36 @@
this
.
g
=
[];
this
.
init
()
},
getOrderType
(
item
){
getOrderType
(
item
)
{
this
.
msg
.
OrderTypeStr
=
item
.
Id
this
.
pageTitle
=
item
.
Name
this
.
research
()
},
init
()
{
init
()
{
uni
.
showLoading
({
title
:
'加载中...'
})
// #ifdef MP-DI
this
.
OrderPageZK
();
this
.
OrderPageZK
();
// #endif
// #ifdef MP-AG
this
.
OrderPageTY
();
this
.
OrderPageTY
();
// #endif
},
OrderPageTY
(){
this
.
apipost
(
'b2b_get_GetB2BAllOrderPageList'
,
this
.
msg
,
OrderPageTY
()
{
this
.
apipost
(
'b2b_get_GetB2BAllOrderPageList'
,
this
.
msg
,
res
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
hideLoading
()
res
.
data
.
pageData
.
forEach
(
x
=>
{
res
.
data
.
pageData
.
forEach
(
x
=>
{
// #ifdef MP-DI
x
.
goodTypeEnum
=
mappingListType
(
x
.
goodsType
)
// #endif
// #ifdef MP-AG
x
.
goodTypeEnum
=
mappingListTypeTy
(
x
.
goodsType
)
// #endif
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
})
this
.
g
=
this
.
g
.
concat
(
res
.
data
.
pageData
);
this
.
page_count
=
res
.
data
.
pageCount
;
...
...
@@ -189,14 +195,15 @@
}
);
},
OrderPageZK
(){
this
.
apipost
(
'GetMyDirectOrderPageList_post'
,
this
.
msg
,
OrderPageZK
()
{
this
.
apipost
(
'GetMyDirectOrderPageList_post'
,
this
.
msg
,
res
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
hideLoading
()
res
.
data
.
pageData
.
forEach
(
x
=>
{
res
.
data
.
pageData
.
forEach
(
x
=>
{
x
.
goodTypeEnum
=
mappingListType
(
x
.
goodsType
)
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
})
this
.
g
=
this
.
g
.
concat
(
res
.
data
.
pageData
);
this
.
page_count
=
res
.
data
.
pageCount
;
...
...
@@ -210,7 +217,7 @@
}
);
},
lower
(
e
)
{
lower
(
e
)
{
if
(
this
.
msg
.
pageIndex
<
this
.
page_count
)
{
this
.
msg
.
pageIndex
++
;
this
.
status
=
"loading"
;
...
...
@@ -219,25 +226,27 @@
this
.
status
=
"nomore"
;
}
},
getOrderEnums
()
{
getOrderEnums
()
{
this
.
apipost
(
"GetDirectOrderStatusEnum_post"
,
{},
"GetDirectOrderStatusEnum_post"
,
{},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
// #ifdef MP-DI
this
.
statusList
=
res
.
data
.
filter
(
x
=>
x
.
ID
!=
4
);
this
.
statusList
=
res
.
data
.
filter
(
x
=>
x
.
ID
!=
4
);
// #endif
// #ifdef MP-AG
this
.
statusList
=
res
.
data
.
filter
(
x
=>
x
.
ID
!=
5
);
this
.
statusList
=
res
.
data
.
filter
(
x
=>
x
.
ID
!=
5
);
// #endif
this
.
statusList
.
splice
(
0
,
0
,{
ID
:
0
,
Name
:
'全部'
})
this
.
statusList
.
forEach
(
x
=>
{
if
(
x
.
Name
==
'已付款'
)
x
.
Name
=
'待出行'
this
.
statusList
.
splice
(
0
,
0
,
{
ID
:
0
,
Name
:
'全部'
})
this
.
statusList
.
forEach
(
x
=>
{
if
(
x
.
Name
==
'已付款'
)
x
.
Name
=
'待出行'
})
}
},
err
=>
{
err
=>
{
uni
.
showToast
({
title
:
err
.
message
,
icon
:
"none"
,
...
...
@@ -245,7 +254,6 @@
}
);
},
},
}
</
script
>
},
}
</
script
>
\ No newline at end of file
pages/AggregateOrders/AggregateOrdersSearch.vue
View file @
391066a7
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.AggOrdBox
{
.AggOrdBox
{
height
:
100vh
;
background
:
url('https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246864278108.jpg')
no-repeat
#F3F1EF
;
background-size
:
100%
240rpx
;
.AggOrdHeader
{
}
.AggOrdStatus
{
.AggOrdHeader
{}
.AggOrdStatus
{
padding-top
:
10rpx
;
.AggOrdT
{
.AggOrdT
{
width
:
25%
;
padding
:
10rpx
20rpx
;
font-size
:
28rpx
;
color
:
#080A09
;
position
:
relative
;
}
.AggOrdT.active
{
.AggOrdT.active
{
font-weight
:
bold
;
}
.AggOrdT
text
{
.AggOrdT
text
{
display
:
block
;
text-align
:
center
;
}
.AggOrdT
view
{
.AggOrdT
view
{
position
:
absolute
;
left
:
0
;
right
:
0
;
bottom
:
0
;
}
.AggOrdT
view
view
{
.AggOrdT
view
view
{
width
:
60rpx
;
height
:
10rpx
;
margin
:
auto
;
...
...
@@ -37,30 +43,35 @@
border-radius
:
10rpx
;
}
}
.AggregateTitle
{
padding
:
40rpx
30rpx
40rpx
30rpx
;
font-size
:
36rpx
;
font-weight
:
bold
;
text-align
:
left
;
}
.AggregateTypeBox
{
flex-wrap
:
wrap
;
.AggregateTitle
{
padding
:
40rpx
30rpx
40rpx
30rpx
;
font-size
:
36rpx
;
font-weight
:
bold
;
text-align
:
left
;
}
.AggregateTypeBox
{
flex-wrap
:
wrap
;
padding
:
0
15rpx
;
}
.AggregateType
{
width
:
33
.33%
;
padding
:
0
15rpx
;
}
.AggregateType
{
width
:
33
.33%
;
padding
:
0
15rpx
;
margin-bottom
:
30rpx
;
}
.AggregateType
view
{
display
:
block
;
padding
:
10rpx
0
15rpx
35rpx
;
background
:
#E3E6D2
;
border-radius
:
14rpx
;
margin-bottom
:
30rpx
;
}
.AggregateType
view
{
display
:
block
;
padding
:
10rpx
0
15rpx
35rpx
;
background
:
#E3E6D2
;
border-radius
:
14rpx
;
border
:
1rpx
solid
#E3E6D2
;
overflow
:
hidden
;
}
.AggregateType
img
{
}
.AggregateType
img
{
width
:
40rpx
;
height
:
40rpx
;
display
:
inline-block
;
...
...
@@ -68,89 +79,90 @@
top
:
10rpx
;
right
:
20rpx
;
}
.AggregateType
text
{
.AggregateType
text
{
display
:
inline-block
;
}
.AggregateType.active
view
{
.AggregateType.active
view
{
border
:
1rpx
solid
#B99846
;
}
}
}
}
</
style
>
<
template
>
<view
class=
"AggOrdBox column"
>
<view
class=
"AggOrdHeader"
:style=
"[titleStyle]"
>
<AggOrdSearch
@
change=
"change"
:params=
"msg"
></AggOrdSearch>
<AggOrdSearch
@
change=
"change"
:params=
"msg"
></AggOrdSearch>
</view>
<view
class=
"col"
style=
"height: 1px;flex: 1;overflow: hidden;padding-top: 40rpx;"
>
<view
class=
"col"
style=
"height: 1px;flex: 1;overflow: hidden;padding-top: 40rpx;"
>
<view
v-if=
"!msg.keyword"
>
<view
class=
"AggregateTitle"
>
订单类型
</view>
<view
class=
"AggregateTypeBox row"
>
<view
class=
"AggregateType"
v-for=
"(item,index) in orderTypeList"
:key=
"index"
:class=
"[msg.OrderTypeStr==item.Id?'active':'']"
@
click=
"getTypeId(item)"
>
<view
class=
"row"
>
<img
:src=
"item.icon"
/>
<text>
{{
item
.
Name
}}
</text>
</view>
</view>
</view>
</view>
<scroll-view
v-else
:scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scrolltolower=
"lower"
style=
"height: 100%;"
>
<orders
:orders=
"g"
></orders>
<u-empty
v-if=
"g.length==0"
text=
"暂无数据"
mode=
"data"
padding-top=
"20"
></u-empty>
<u-loadmore
v-else
:status=
"status"
:load-text=
"loadText"
:font-size=
"24"
:margin-top=
"20"
:margin-bottom=
"20"
bg-color=
"#F3F1EF"
/>
<view
style=
"width: 100%;height: 20rpx;"
></view>
<view
class=
"AggregateTitle"
>
订单类型
</view>
<view
class=
"AggregateTypeBox row"
>
<view
class=
"AggregateType"
v-for=
"(item,index) in orderTypeList"
:key=
"index"
:class=
"[msg.OrderTypeStr==item.Id?'active':'']"
@
click=
"getTypeId(item)"
>
<view
class=
"row"
>
<img
:src=
"item.icon"
/>
<text>
{{
item
.
Name
}}
</text>
</view>
</view>
</view>
</view>
<scroll-view
v-else
:scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scrolltolower=
"lower"
style=
"height: 100%;"
>
<orders
:orders=
"g"
></orders>
<u-empty
v-if=
"g.length==0"
text=
"暂无数据"
mode=
"data"
padding-top=
"20"
></u-empty>
<u-loadmore
v-else
:status=
"status"
:load-text=
"loadText"
:font-size=
"24"
:margin-top=
"20"
:margin-bottom=
"20"
bg-color=
"#F3F1EF"
/>
<view
style=
"width: 100%;height: 20rpx;"
></view>
</scroll-view>
</view>
<auth
v-if=
"showAuth"
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
'goback'
></auth>
<tabbar
v-if=
'barshow==1'
></tabbar>
</view>
<auth
v-if=
"showAuth"
@
changeuserinfo=
"reloadUserinfo"
@
gbAuth=
'goback'
></auth>
<tabbar
v-if=
'barshow==1'
></tabbar>
</view>
</
template
>
<
script
>
import
{
mappingListType
,
mappingListTypeTy
}
from
"../../utils/producttypeenum"
;
import
{
mappingListType
,
mappingListTypeTy
}
from
"../../utils/producttypeenum"
;
import
EnumHelper
from
'../../utils/enumhelper'
;
import
OrderStatusEnum
from
'../../utils/orderStautsEnum'
;
import
AggOrdSearch
from
"./components/searchHeader.vue"
;
import
orders
from
"./components/orders.vue"
;
export
default
{
components
:
{
export
default
{
components
:
{
AggOrdSearch
,
orders
,
},
data
()
{
return
{
msg
:{
pageSize
:
10
,
pageIndex
:
1
,
data
()
{
return
{
msg
:
{
pageSize
:
10
,
pageIndex
:
1
,
OrderStatus
:
0
,
GoodsName
:
''
,
OrderTypeStr
:
''
,
keyword
:
''
,
},
loadText
:
{
loadText
:
{
loadmore
:
"轻轻上拉,加载更多"
,
loading
:
"努力加载中"
,
nomore
:
"没有更多了"
,
},
status
:
"loadmore"
,
showModal
:
false
,
barshow
:
0
,
g
:
[],
page_count
:
1
,
index
:
0
,
payindex
:
0
,
orderTypeList
:
[
status
:
"loadmore"
,
showModal
:
false
,
barshow
:
0
,
g
:
[],
page_count
:
1
,
index
:
0
,
payindex
:
0
,
orderTypeList
:
[
// {
// Id: '',
// Name: '全部订单'
...
...
@@ -185,8 +197,8 @@
icon
:
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247194112722.jpg'
,
Name
:
'景点门票'
}
],
icons
:[
],
icons
:
[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246968492575.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247052998903.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247084971514.jpg'
,
...
...
@@ -195,46 +207,52 @@
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247194112722.jpg'
,
],
titleStyle
:
{},
}
},
onLoad
(
options
)
{
if
(
options
.
OrderTypeStr
)
{
}
},
onLoad
(
options
)
{
if
(
options
.
OrderTypeStr
)
{
this
.
msg
.
OrderTypeStr
=
options
.
OrderTypeStr
}
},
created
()
{
},
created
()
{
const
that
=
this
uni
.
getSystemInfo
({
success
(
res
)
{
that
.
titleStyle
=
{
paddingTop
:
`
${
res
.
statusBarHeight
}
px`
};
},
});
uni
.
getSystemInfo
({
success
(
res
)
{
that
.
titleStyle
=
{
paddingTop
:
`
${
res
.
statusBarHeight
}
px`
};
},
});
// #ifdef MP-AG
this
.
getEnumList
()
this
.
getEnumList
()
// #endif
},
methods
:
{
},
methods
:
{
getEnumList
()
{
this
.
apipost
(
"CarSingle_post_GetOrderTypeEnumList"
,
{},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
orderTypeList
=
[]
res
.
data
.
forEach
(
x
=>
{
if
(
x
.
Name
==
'团队'
){
x
.
Name
=
'线路'
}
if
(
x
.
Name
!=
'Jalan酒店'
){
res
.
data
.
forEach
(
x
=>
{
if
(
x
.
Name
==
'团队'
)
{
x
.
Name
=
'线路'
}
if
(
x
.
Name
!=
'Jalan酒店'
)
{
let
icon
=
''
if
(
x
.
Id
==
'1'
)
icon
=
this
.
icons
[
1
]
if
(
x
.
Id
==
'2'
)
icon
=
this
.
icons
[
0
]
if
(
x
.
Id
==
'3'
)
icon
=
this
.
icons
[
3
]
if
(
x
.
Id
==
'4'
)
icon
=
this
.
icons
[
5
]
if
(
x
.
Id
==
'5'
)
icon
=
this
.
icons
[
4
]
if
(
x
.
Id
==
'6'
)
icon
=
this
.
icons
[
2
]
if
(
x
.
Id
==
'1'
)
icon
=
this
.
icons
[
1
]
if
(
x
.
Id
==
'2'
)
icon
=
this
.
icons
[
0
]
if
(
x
.
Id
==
'3'
)
icon
=
this
.
icons
[
3
]
if
(
x
.
Id
==
'4'
)
icon
=
this
.
icons
[
5
]
if
(
x
.
Id
==
'5'
)
icon
=
this
.
icons
[
4
]
if
(
x
.
Id
==
'6'
)
icon
=
this
.
icons
[
2
]
let
obj
=
{
Id
:
x
.
Id
,
Name
:
x
.
Name
+
'订单'
,
Name
:
x
.
Name
+
'订单'
,
icon
:
icon
}
//酒店切换为道旅酒店
if
(
obj
.
Id
==
'3'
)
{
obj
.
Id
=
'7'
;
}
this
.
orderTypeList
.
push
(
obj
)
}
})
...
...
@@ -246,7 +264,7 @@
});
})
},
research
(){
research
()
{
this
.
msg
.
pageIndex
=
1
;
this
.
msg
.
pageSize
=
10
;
this
.
status
=
"loadmore"
;
...
...
@@ -258,41 +276,42 @@
this
.
msg
.
OrderTypeStr
=
item
.
Id
this
.
msg
.
keyword
=
item
.
Name
this
.
research
()
},
change
(
item
)
{
},
change
(
item
)
{
this
.
msg
.
keyword
=
item
.
keyword
this
.
msg
.
OrderTypeStr
=
item
.
OrderTypeStr
this
.
research
()
},
init
()
{
if
(
!
this
.
msg
.
keyword
)
return
if
(
!
this
.
msg
.
OrderTypeStr
)
{
init
()
{
if
(
!
this
.
msg
.
keyword
)
return
if
(
!
this
.
msg
.
OrderTypeStr
)
{
this
.
msg
.
GoodsName
=
this
.
msg
.
keyword
}
else
{
}
else
{
this
.
msg
.
GoodsName
=
''
}
uni
.
showLoading
({
title
:
'加载中...'
})
// #ifdef MP-DI
this
.
OrderPageZK
();
this
.
OrderPageZK
();
// #endif
// #ifdef MP-AG
this
.
OrderPageTY
();
this
.
OrderPageTY
();
// #endif
},
OrderPageTY
(){
this
.
apipost
(
'b2b_get_GetB2BAllOrderPageList'
,
this
.
msg
,
OrderPageTY
()
{
this
.
apipost
(
'b2b_get_GetB2BAllOrderPageList'
,
this
.
msg
,
res
=>
{
if
(
res
.
resultCode
==
1
)
{
res
.
data
.
pageData
.
forEach
(
x
=>
{
res
.
data
.
pageData
.
forEach
(
x
=>
{
// #ifdef MP-DI
x
.
goodTypeEnum
=
mappingListType
(
x
.
goodsType
)
// #endif
// #ifdef MP-AG
x
.
goodTypeEnum
=
mappingListTypeTy
(
x
.
goodsType
)
// #endif
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
})
this
.
g
=
this
.
g
.
concat
(
res
.
data
.
pageData
);
this
.
page_count
=
res
.
data
.
pageCount
;
...
...
@@ -307,13 +326,14 @@
}
);
},
OrderPageZK
(){
this
.
apipost
(
'GetMyDirectOrderPageList_post'
,
this
.
msg
,
OrderPageZK
()
{
this
.
apipost
(
'GetMyDirectOrderPageList_post'
,
this
.
msg
,
res
=>
{
if
(
res
.
resultCode
==
1
)
{
res
.
data
.
pageData
.
forEach
(
x
=>
{
res
.
data
.
pageData
.
forEach
(
x
=>
{
x
.
goodTypeEnum
=
mappingListType
(
x
.
goodsType
)
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
x
.
orderStatusInfo
=
EnumHelper
.
ParseToEnum
(
OrderStatusEnum
,
x
.
orderStatus
,
'value'
)
})
this
.
g
=
this
.
g
.
concat
(
res
.
data
.
pageData
);
this
.
page_count
=
res
.
data
.
pageCount
;
...
...
@@ -328,7 +348,7 @@
}
);
},
lower
(
e
)
{
lower
(
e
)
{
if
(
this
.
msg
.
pageIndex
<
this
.
page_count
)
{
this
.
msg
.
pageIndex
++
;
this
.
status
=
"loading"
;
...
...
@@ -337,15 +357,14 @@
this
.
status
=
"nomore"
;
}
},
reloadUserinfo
()
{
reloadUserinfo
()
{
this
.
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
this
.
getOrderStatusList
();
},
goback
()
{
uni
.
navigateBack
()
},
},
}
</
script
>
},
}
</
script
>
\ No newline at end of file
pages/AggregateOrders/components/header.vue
View file @
391066a7
<
template
>
<view
class=
"carrHeader"
:style=
"[titleStyle]"
>
<view
class=
"carrHeaderBox"
>
<view
class=
"carrHeader-left"
>
<view
class=
"carrHeader-left-icon"
@
click=
"goBack"
>
<view
class=
"carrHeaderBox"
>
<view
class=
"carrHeader-left"
>
<view
class=
"carrHeader-left-icon"
@
click=
"goBack"
>
<u-icon
name=
"arrow-left"
size=
"38"
color=
"#000"
></u-icon>
</view>
</view>
<view
class=
"carrHeader-title"
>
<slot>
{{
title
?
title
:
''
}}
</slot>
</view>
<view
class=
"carrHeader-right row"
>
<view
class=
"carrHeader-S row items-center justify-center"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246934795585.jpg"
@
click=
"goSearch"
/>
</view
>
<view
class=
"carrHeader-T row items-center justify-center"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247012340060.jpg"
@
click=
"showModal=true"
/
>
</view>
</view
>
</view>
<u-popup
v-model=
"showModal"
mode=
"bottom"
length=
"50%"
border-radius=
"50"
>
<view
style=
"padding: 0 20rpx;"
>
<view
class=
"AggregateTitle"
>
订单类型
</view
>
<view
class=
"AggregateTypeBox row
"
>
<view
class=
"AggregateType"
v-for=
"(item,index) in orderTypeList"
:key=
"index"
:class=
"[params.OrderTypeStr==item.Id?'active':'']
"
@
click=
"getTypeId(item)"
>
<text>
{{
item
.
Name
}}
</text>
</view>
</view>
</view>
</u-popup>
</view>
</view>
</view>
<view
class=
"carrHeader-title"
>
<slot>
{{
title
?
title
:
''
}}
</slot>
</view>
<view
class=
"carrHeader-right row"
>
<view
class=
"carrHeader-S row items-center justify-center"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246934795585.jpg"
@
click=
"goSearch"
/
>
</view
>
<view
class=
"carrHeader-T row items-center justify-center"
>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247012340060.jpg"
@
click=
"showModal=true"
/
>
</view>
</view
>
</view
>
<u-popup
v-model=
"showModal"
mode=
"bottom"
length=
"50%"
border-radius=
"50"
>
<view
style=
"padding: 0 20rpx;
"
>
<view
class=
"AggregateTitle"
>
订单类型
</view>
<view
class=
"AggregateTypeBox row"
>
<view
class=
"AggregateType"
v-for=
"(item,index) in orderTypeList"
:key=
"index
"
:class=
"[params.OrderTypeStr==item.Id?'active':'']"
@
click=
"getTypeId(item)"
>
<text>
{{
item
.
Name
}}
</text>
</view>
</view>
</view>
</u-popup>
</view>
</
template
>
<
script
>
export
default
{
props
:[
'title'
,
'params'
],
data
()
{
return
{
titleStyle
:{},
orderTypeList
:
[
{
Id
:
''
,
Name
:
'所有订单'
},
{
Id
:
'1,2,3'
,
Name
:
'线路订单'
},
{
Id
:
'16'
,
Name
:
'机票订单'
},
{
Id
:
'15'
,
Name
:
'签证订单'
},
{
Id
:
'8,9,10,11'
,
Name
:
'酒店住宿'
},
{
Id
:
'12,13,14'
,
Name
:
'包车服务'
},
{
Id
:
'4,5,6,7'
,
Name
:
'景点门票'
}
],
showModal
:
false
,
icons
:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246968492575.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247052998903.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247084971514.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247342163794.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247230118434.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247194112722.jpg'
,
]
}
},
watch
:{
params
:{
handler
(
newVal
,
oldVal
)
{
},
deep
:
true
}
},
mounted
()
{
// #ifdef MP-AG
this
.
getEnumList
()
// #endif
},
methods
:{
getEnumList
()
{
this
.
apipost
(
"CarSingle_post_GetOrderTypeEnumList"
,
{},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
orderTypeList
=
[]
res
.
data
.
forEach
(
x
=>
{
if
(
x
.
Name
==
'团队'
){
x
.
Name
=
'线路'
}
if
(
x
.
Name
!=
'Jalan酒店'
){
let
icon
=
''
if
(
x
.
Id
==
'1'
)
icon
=
this
.
icons
[
1
]
if
(
x
.
Id
==
'2'
)
icon
=
this
.
icons
[
0
]
if
(
x
.
Id
==
'3'
)
icon
=
this
.
icons
[
3
]
if
(
x
.
Id
==
'4'
)
icon
=
this
.
icons
[
5
]
if
(
x
.
Id
==
'5'
)
icon
=
this
.
icons
[
4
]
if
(
x
.
Id
==
'6'
)
icon
=
this
.
icons
[
2
]
let
obj
=
{
Id
:
x
.
Id
,
Name
:
x
.
Name
+
'订单'
,
icon
:
icon
}
this
.
orderTypeList
.
push
(
obj
)
}
})
// this.orderTypeList = res.data
this
.
orderTypeList
.
unshift
({
Id
:
''
,
Name
:
'所有订单'
})
}
},
(
err
)
=>
{
uni
.
showToast
({
title
:
err
.
message
,
icon
:
"none"
,
});
})
},
getTypeId
(
item
)
{
this
.
$emit
(
'change'
,
item
)
this
.
showModal
=
false
;
},
goSearch
(){
// ?OrderTypeStr=${this.params.OrderTypeStr}
uni
.
navigateTo
({
url
:
`/pages/AggregateOrders/AggregateOrdersSearch`
})
},
goBack
(){
uni
.
navigateBack
({
delta
:
-
1
})
}
}
}
export
default
{
props
:
[
'title'
,
'params'
],
data
()
{
return
{
titleStyle
:
{},
orderTypeList
:
[{
Id
:
''
,
Name
:
'所有订单'
},
{
Id
:
'1,2,3'
,
Name
:
'线路订单'
},
{
Id
:
'16'
,
Name
:
'机票订单'
},
{
Id
:
'15'
,
Name
:
'签证订单'
},
{
Id
:
'8,9,10,11'
,
Name
:
'酒店住宿'
},
{
Id
:
'12,13,14'
,
Name
:
'包车服务'
},
{
Id
:
'4,5,6,7'
,
Name
:
'景点门票'
}
],
showModal
:
false
,
icons
:
[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772246968492575.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247052998903.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247084971514.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247342163794.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247230118434.jpg'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247194112722.jpg'
,
]
}
},
watch
:
{
params
:
{
handler
(
newVal
,
oldVal
)
{
},
deep
:
true
}
},
mounted
()
{
// #ifdef MP-AG
this
.
getEnumList
()
// #endif
},
methods
:
{
getEnumList
()
{
this
.
apipost
(
"CarSingle_post_GetOrderTypeEnumList"
,
{},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
orderTypeList
=
[]
res
.
data
.
forEach
(
x
=>
{
if
(
x
.
Name
==
'团队'
)
{
x
.
Name
=
'线路'
}
if
(
x
.
Name
!=
'Jalan酒店'
)
{
let
icon
=
''
if
(
x
.
Id
==
'1'
)
icon
=
this
.
icons
[
1
]
if
(
x
.
Id
==
'2'
)
icon
=
this
.
icons
[
0
]
if
(
x
.
Id
==
'3'
)
icon
=
this
.
icons
[
3
]
if
(
x
.
Id
==
'4'
)
icon
=
this
.
icons
[
5
]
if
(
x
.
Id
==
'5'
)
icon
=
this
.
icons
[
4
]
if
(
x
.
Id
==
'6'
)
icon
=
this
.
icons
[
2
]
let
obj
=
{
Id
:
x
.
Id
,
Name
:
x
.
Name
+
'订单'
,
icon
:
icon
}
//酒店切换为道旅酒店
if
(
obj
.
Id
==
'3'
)
{
obj
.
Id
=
'7'
;
}
this
.
orderTypeList
.
push
(
obj
)
}
})
this
.
orderTypeList
.
unshift
({
Id
:
''
,
Name
:
'所有订单'
})
}
},
(
err
)
=>
{
uni
.
showToast
({
title
:
err
.
message
,
icon
:
"none"
,
});
})
},
getTypeId
(
item
)
{
this
.
$emit
(
'change'
,
item
)
this
.
showModal
=
false
;
},
goSearch
()
{
uni
.
navigateTo
({
url
:
`/pages/AggregateOrders/AggregateOrdersSearch`
})
},
goBack
()
{
uni
.
navigateBack
({
delta
:
-
1
})
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.AggregateTitle
{
padding
:
40rpx
30rpx
40rpx
30rpx
;
font-size
:
32rpx
;
font-weight
:
bold
;
text-align
:
left
;
}
.AggregateTypeBox
{
flex-wrap
:
wrap
;
padding
:
0
15rpx
;
}
.AggregateType
{
width
:
33
.33%
;
padding
:
0
15rpx
;
margin-bottom
:
30rpx
;
}
.AggregateType
text
{
display
:
block
;
line-height
:
60rpx
;
background
:
#f5f5f5
;
border
:
1rpx
solid
#E3E6D2
;
border-radius
:
60rpx
;
text-align
:
center
;
}
.AggregateType.active
text
{
border
:
1rpx
solid
#B99846
;
color
:
#B99846
;
}
.carrHeader-title
{
position
:
relative
;
left
:
60rpx
;
right
:
0
;
text-align
:
left
;
font-size
:
32rpx
;
}
.carrHeader-left
{
position
:
absolute
;
left
:
32rpx
;
bottom
:
23rpx
;
z-index
:
3
;
}
.carrHeaderBox
{
width
:
100%
;
height
:
88rpx
;
padding
:
0
32rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
position
:
relative
;
}
.carrHeader
{
// padding-top: 85rpx;
}
.carrHeader-right
{
padding-right
:
200rpx
;
display
:
flex
;
}
.carrHeader-right
img
{
width
:
35rpx
;
height
:
35rpx
;
}
.carrHeader-S
{
width
:
63rpx
;
height
:
63rpx
;
margin-right
:
20rpx
;
}
.carrHeader-T
{
width
:
63rpx
;
height
:
63rpx
;
border-radius
:
50%
;
border
:
1px
solid
#CFC089
;
margin-right
:
20rpx
;
}
@import
url("@/asset/css/flex.css")
;
.AggregateTitle
{
padding
:
40rpx
30rpx
40rpx
30rpx
;
font-size
:
32rpx
;
font-weight
:
bold
;
text-align
:
left
;
}
.AggregateTypeBox
{
flex-wrap
:
wrap
;
padding
:
0
15rpx
;
}
.AggregateType
{
width
:
33
.33%
;
padding
:
0
15rpx
;
margin-bottom
:
30rpx
;
}
.AggregateType
text
{
display
:
block
;
line-height
:
60rpx
;
background
:
#f5f5f5
;
border
:
1rpx
solid
#E3E6D2
;
border-radius
:
60rpx
;
text-align
:
center
;
}
.AggregateType.active
text
{
border
:
1rpx
solid
#B99846
;
color
:
#B99846
;
}
.carrHeader-title
{
position
:
relative
;
left
:
60rpx
;
right
:
0
;
text-align
:
left
;
font-size
:
32rpx
;
}
.carrHeader-left
{
position
:
absolute
;
left
:
32rpx
;
bottom
:
23rpx
;
z-index
:
3
;
}
.carrHeaderBox
{
width
:
100%
;
height
:
88rpx
;
padding
:
0
32rpx
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
position
:
relative
;
}
.carrHeader
{
// padding-top: 85rpx;
}
.carrHeader-right
{
padding-right
:
200rpx
;
display
:
flex
;
}
.carrHeader-right
img
{
width
:
35rpx
;
height
:
35rpx
;
}
.carrHeader-S
{
width
:
63rpx
;
height
:
63rpx
;
margin-right
:
20rpx
;
}
.carrHeader-T
{
width
:
63rpx
;
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 @
391066a7
<
template
>
<view>
<view
class=
"AggOrdListBox"
>
<view
class=
"visaList row"
v-for=
"(item,index) in g"
:key=
"index"
@
click=
"goDetails(item)"
:class=
"[item.orderStatus==4?'active':'']"
>
<view
class=
"visaListL"
>
<image
mode=
"aspectFill"
:src=
"item.goodsPic"
/>
<text
class=
"visaListLText"
>
{{
item
.
goodTypeEnum
.
desc
}}
</text>
</view>
<view
class=
"visaListR col column"
>
<view
class=
"visaListTitle"
>
{{
item
.
goodsName
}}
</view>
<view
class=
"visaListText row"
>
</view>
<view
class=
"col"
></view>
<view
class=
"visaListNum row"
>
<view
class=
"visaListNumR"
>
<text
style=
"font-size: 20rpx;"
>
CNY
</text>
<text
class=
"price-Num"
>
{{
parseFloat
(
item
.
totalPrice
-
item
.
preferentialPrice
).
toFixed
(
2
)
}}
</text>
<text
class=
"price-stuff"
style=
"font-size: 20rpx;color: rgba(164, 164, 164, 1)"
>
元
</text>
</view>
<view
class=
"visaListNumL row items-center"
>
<!-- #ifdef MP-DI -->
<template
v-if=
"item.orderStatus!=5"
>
{{
item
.
orderStatusInfo
.
desc
}}
</
template
>
<
template
v-else
>
{{
item
.
afterSalesOrderStatusStr
}}
</
template
>
<!-- #endif -->
<!-- #ifdef MP-AG -->
{{ item.orderStatusInfo.desc }}
<!-- {{ item.orderStatusStr=='取消'?'已取消':item.orderStatusStr }}-->
<!-- #endif -->
</view>
</view>
<view
class=
"row"
>
<view
class=
"col"
></view>
<!-- #ifdef MP-DI -->
<view
class=
"jz_Zailai"
@
click
.
stop=
""
style=
"width: 110rpx;"
>
客服
<button
class=
"AggOrdListH-RBut"
open-type=
"contact"
show-message-card=
"true"
></button>
</view>
<!-- #endif -->
<view
class=
"row"
>
<!-- #ifdef MP-DI -->
<view
v-if=
"item.orderStatus==1||item.orderStatus==2"
class=
"jz_Zailai"
style=
"width: 110rpx;margin-left: 10rpx;"
@
click
.
stop=
"goCancelZK(item)"
>
取消
</view>
<view
v-if=
"item.orderStatus==1"
class=
"jz_Zailai jz_ZailaiZF"
style=
"width: 150rpx;margin-left: 10rpx;"
@
click
.
stop=
"submitGetCodeByOrderNo(item)"
>
立即支付
</view>
<view
v-if=
"item.orderStatus!=1"
style=
"margin-left: 10rpx;"
class=
"jz_Zailai"
@
click
.
stop=
"AnotherOrder(item)"
>
再来一单
</view>
<!-- #endif -->
<!-- #ifdef MP-AG -->
<view
v-if=
"item.income == 0&&item.orderStatus==1"
class=
"jz_Zailai"
style=
"width: 110rpx;margin-left: 10rpx;"
@
click
.
stop=
"goCancel(item)"
>
取消
</view>
<view
v-else
class=
"jz_Zailai"
style=
"margin-left: 10rpx;"
@
click
.
stop=
"AnotherOrder(item)"
>
再来一单
</view>
<!-- #endif -->
</view>
</view>
</view>
</view>
</view>
<cancelPrompt
v-if=
"showModal"
:showModal=
"showModal"
@
cancel=
"cancelModal"
@
success=
"cancelSuccess"
type=
"1"
:orderNo=
"currentData.orderNo"
></cancelPrompt>
</view>
<view>
<view
class=
"AggOrdListBox"
>
<view
class=
"visaList row"
v-for=
"(item,index) in g"
:key=
"index"
@
click=
"goDetails(item)"
:class=
"[item.orderStatus==4?'active':'']"
>
<view
class=
"visaListL"
>
<image
v-if=
"item.goodsPic&&item.goodsPic!=''"
mode=
"aspectFill"
:src=
"item.goodsPic"
/>
<image
v-else
mode=
"aspectFill"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/defaultHotelImg.png"
/>
<text
class=
"visaListLText"
>
{{
item
.
goodTypeEnum
.
desc
}}
</text>
</view>
<view
class=
"visaListR col column"
>
<view
class=
"visaListTitle"
>
{{
item
.
goodsName
}}
</view>
<view
class=
"visaListText row"
>
</view>
<view
class=
"col"
></view>
<view
class=
"visaListNum row"
>
<view
class=
"visaListNumR"
>
<text
style=
"font-size: 20rpx;"
>
CNY
</text>
<text
class=
"price-Num"
>
{{
parseFloat
(
item
.
totalPrice
-
item
.
preferentialPrice
).
toFixed
(
2
)
}}
</text>
<text
class=
"price-stuff"
style=
"font-size: 20rpx;color: rgba(164, 164, 164, 1)"
>
元
</text>
</view>
<view
class=
"visaListNumL row items-center"
>
<!-- #ifdef MP-DI -->
<template
v-if=
"item.orderStatus!=5"
>
{{
item
.
orderStatusInfo
.
desc
}}
</
template
>
<
template
v-else
>
{{
item
.
afterSalesOrderStatusStr
}}
</
template
>
<!-- #endif -->
<!-- #ifdef MP-AG -->
{{ item.orderStatusInfo.desc }}
<!-- {{ item.orderStatusStr=='取消'?'已取消':item.orderStatusStr }}-->
<!-- #endif -->
</view>
</view>
<view
class=
"row"
>
<view
class=
"col"
></view>
<!-- #ifdef MP-DI -->
<view
class=
"jz_Zailai"
@
click
.
stop=
""
style=
"width: 110rpx;"
>
客服
<button
class=
"AggOrdListH-RBut"
open-type=
"contact"
show-message-card=
"true"
></button>
</view>
<!-- #endif -->
<view
class=
"row"
>
<!-- #ifdef MP-DI -->
<view
v-if=
"item.orderStatus==1||item.orderStatus==2"
class=
"jz_Zailai"
style=
"width: 110rpx;margin-left: 10rpx;"
@
click
.
stop=
"goCancelZK(item)"
>
取消
</view>
<view
v-if=
"item.orderStatus==1"
class=
"jz_Zailai jz_ZailaiZF"
style=
"width: 150rpx;margin-left: 10rpx;"
@
click
.
stop=
"submitGetCodeByOrderNo(item)"
>
立即支付
</view>
<view
v-if=
"item.orderStatus!=1"
style=
"margin-left: 10rpx;"
class=
"jz_Zailai"
@
click
.
stop=
"AnotherOrder(item)"
>
再来一单
</view>
<!-- #endif -->
<!-- #ifdef MP-AG -->
<view
v-if=
"item.income == 0&&item.orderStatus==1"
class=
"jz_Zailai"
style=
"width: 110rpx;margin-left: 10rpx;"
@
click
.
stop=
"goCancel(item)"
>
取消
</view>
<view
v-else
class=
"jz_Zailai"
style=
"margin-left: 10rpx;"
@
click
.
stop=
"AnotherOrder(item)"
>
再来一单
</view>
<!-- #endif -->
</view>
</view>
</view>
</view>
</view>
<cancelPrompt
v-if=
"showModal"
:showModal=
"showModal"
@
cancel=
"cancelModal"
@
success=
"cancelSuccess"
type=
"1"
:orderNo=
"currentData.orderNo"
></cancelPrompt>
</view>
</template>
<
script
>
import
cancelPrompt
from
"@/components/cancelPrompt/cancelPrompt.vue"
;
export
default
{
props
:[
'orders'
],
components
:
{
cancelPrompt
},
data
()
{
return
{
g
:
[],
submitCancel
:
false
,
submit
:
false
,
orderInfo
:
null
,
showModal
:
false
,
currentData
:
null
,
}
},
watch
:
{
orders
:
{
handler
(
newVal
,
oldVal
)
{
this
.
g
=
newVal
},
deep
:
true
,
}
},
mounted
()
{
},
methods
:
{
cancelSuccess
()
{
this
.
$emit
(
'research'
,
5
)
},
submitGetCodeByOrderNo
(
item
)
{
uni
.
showLoading
({
title
:
"请稍等片刻..."
,
})
import
cancelPrompt
from
"@/components/cancelPrompt/cancelPrompt.vue"
;
export
default
{
props
:
[
'orders'
],
components
:
{
cancelPrompt
},
data
()
{
return
{
g
:
[],
submitCancel
:
false
,
submit
:
false
,
orderInfo
:
null
,
showModal
:
false
,
currentData
:
null
,
}
},
watch
:
{
orders
:
{
handler
(
newVal
,
oldVal
)
{
this
.
g
=
newVal
},
deep
:
true
,
}
},
mounted
()
{
},
methods
:
{
cancelSuccess
()
{
this
.
$emit
(
'research'
,
5
)
},
submitGetCodeByOrderNo
(
item
)
{
uni
.
showLoading
({
title
:
"请稍等片刻..."
,
})
if
(
this
.
submit
||
this
.
submitCancel
)
return
;
this
.
submit
=
true
this
.
apipost
(
"GetCodeByOrderNo_post"
,
{
...
...
@@ -115,370 +113,396 @@ export default {
MallBaseId
:
uni
.
getStorageSync
(
"mall_UserInfo"
).
MallBaseId
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
orderInfo
=
JSON
.
parse
(
res
.
data
.
sPayInfo
)
this
.
orderInfo
=
JSON
.
parse
(
res
.
data
.
sPayInfo
)
this
.
goPayHandler
(
item
);
}
},
e
=>
{
uni
.
hideLoading
()
},
e
=>
{
uni
.
hideLoading
()
uni
.
showToast
({
title
:
'无法发起支付,请稍后'
,
icon
:
'none'
,
duration
:
3000
title
:
'无法发起支付,请稍后'
,
icon
:
'none'
,
duration
:
3000
})
this
.
submit
=
false
this
.
submit
=
false
});
},
goPayHandler
(
item
)
{
let
that
=
this
;
uni
.
requestPayment
({
provider
:
"wxpay"
,
timeStamp
:
this
.
orderInfo
.
timeStamp
,
nonceStr
:
this
.
orderInfo
.
nonceStr
,
package
:
this
.
orderInfo
.
package
,
signType
:
this
.
orderInfo
.
signType
,
paySign
:
this
.
orderInfo
.
sign
,
success
:
function
(
res
)
{
console
.
log
(
"success"
,
res
);
that
.
submit
=
false
;
uni
.
hideLoading
()
uni
.
showToast
({
title
:
"支付成功"
,
});
that
.
goPayPage
(
item
)
},
fail
:
function
(
err
)
{
that
.
submit
=
false
;
uni
.
hideLoading
()
uni
.
showToast
({
title
:
"支付失败"
,
icon
:
"none"
,
});
},
});
},
goPayHandler
(
item
)
{
let
that
=
this
;
uni
.
requestPayment
({
provider
:
"wxpay"
,
timeStamp
:
this
.
orderInfo
.
timeStamp
,
nonceStr
:
this
.
orderInfo
.
nonceStr
,
package
:
this
.
orderInfo
.
package
,
signType
:
this
.
orderInfo
.
signType
,
paySign
:
this
.
orderInfo
.
sign
,
success
:
function
(
res
)
{
console
.
log
(
"success"
,
res
);
that
.
submit
=
false
;
uni
.
hideLoading
()
uni
.
showToast
({
title
:
"支付成功"
,
});
that
.
goPayPage
(
item
)
},
fail
:
function
(
err
)
{
that
.
submit
=
false
;
uni
.
hideLoading
()
uni
.
showToast
({
title
:
"支付失败"
,
icon
:
"none"
,
});
},
});
},
goPaySuccess
(
item
){
let
isFrom
=
null
if
(
item
.
goodsType
>
0
&&
item
.
goodsType
<
4
){
//线路
isFrom
=
1
}
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
){
//签证
isFrom
=
3
}
else
if
(
item
.
goodsType
==
16
){
//机票
isFrom
=
4
}
if
(
isFrom
){
setTimeout
(()
=>
{
uni
.
redirectTo
({
url
:
"/pages/jiuzhai/paysuccess?PreferPrice="
+
(
item
.
totalPrice
-
item
.
preferentialPrice
).
toFixed
(
2
)
+
"&isFrom="
+
isFrom
,
});
},
100
);
}
},
// 再来一单
AnotherOrder
(
item
){
let
url
=
''
if
(
item
.
goodsType
>
0
&&
item
.
goodsType
<
4
){
//线路
const
pts
=
[
''
,
2
,
0
,
1
]
const
productType
=
pts
[
item
.
goodsType
]
url
=
`jiuzhai/jz_Line?teamType=
${
productType
}
`
}
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/visaList"
}
else
if
(
item
.
goodsType
==
16
){
//机票
url
=
"airTicket/airIndex"
}
if
(
url
){
uni
.
navigateTo
({
url
:
`/pages/
${
url
}
`
,
});
}
},
// 详情
goDetails
(
item
){
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
,
});
}
},
//取消订单
goCancel
(
item
)
{
let
that
=
this
if
(
this
.
submit
||
this
.
submitCancel
)
return
wx
.
showModal
({
title
:
'提示'
,
content
:
'确定取消订单?'
,
success
:
(
tip
)
=>
{
if
(
tip
.
confirm
)
{
that
.
submitCancel
=
true
that
.
apipost
(
"b2b_get_GetB2BAllCancelOrder"
,
{
ID
:
item
.
erpOrderId
,
OrderTypeStr
:
item
.
goodsType
,
},
(
res
)
=>
{
that
.
submitCancel
=
false
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
title
:
"操作成功"
,
icon
:
"success"
,
});
that
.
$emit
(
'research'
);
}
},
(
err
)
=>
{
that
.
submitCancel
=
false
uni
.
showToast
({
title
:
err
.
message
,
icon
:
"none"
,
})
}
);
}
}
})
},
cancelModal
(){
this
.
showModal
=
false
},
goCancelZK
(
item
)
{
if
(
item
.
orderStatus
==
2
){
this
.
currentData
=
item
return
this
.
showModal
=
true
}
let
that
=
this
if
(
this
.
submit
||
this
.
submitCancel
)
return
wx
.
showModal
({
title
:
'提示'
,
content
:
'确定取消订单?'
,
success
:
(
tip
)
=>
{
if
(
tip
.
confirm
)
{
that
.
submitCancel
=
true
that
.
apipost
(
"GetCancelOrder_post"
,
{
OrderNo
:
item
.
orderNo
,
},
(
res
)
=>
{
that
.
submitCancel
=
false
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
title
:
"操作成功"
,
icon
:
"success"
,
});
that
.
$emit
(
'research'
);
}
},
(
err
)
=>
{
uni
.
showToast
({
title
:
err
.
message
,
icon
:
"none"
,
});
that
.
submitCancel
=
false
}
);
}
}
})
},
}
}
},
goPaySuccess
(
item
)
{
let
isFrom
=
null
if
(
item
.
goodsType
>
0
&&
item
.
goodsType
<
4
)
{
//线路
isFrom
=
1
}
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
)
{
//签证
isFrom
=
3
}
else
if
(
item
.
goodsType
==
16
)
{
//机票
isFrom
=
4
}
if
(
isFrom
)
{
setTimeout
(()
=>
{
uni
.
redirectTo
({
url
:
"/pages/jiuzhai/paysuccess?PreferPrice="
+
(
item
.
totalPrice
-
item
.
preferentialPrice
).
toFixed
(
2
)
+
"&isFrom="
+
isFrom
,
});
},
100
);
}
},
// 再来一单
AnotherOrder
(
item
)
{
let
url
=
''
if
(
item
.
goodsType
>
0
&&
item
.
goodsType
<
4
)
{
//线路
const
pts
=
[
''
,
2
,
0
,
1
]
const
productType
=
pts
[
item
.
goodsType
]
url
=
`jiuzhai/jz_Line?teamType=
${
productType
}
`
}
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/visaList"
}
else
if
(
item
.
goodsType
==
16
)
{
//机票
url
=
"airTicket/airIndex"
}
if
(
url
)
{
uni
.
navigateTo
({
url
:
`/pages/
${
url
}
`
,
});
}
},
// 详情
goDetails
(
item
)
{
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
,
});
}
},
//取消订单
goCancel
(
item
)
{
let
that
=
this
if
(
this
.
submit
||
this
.
submitCancel
)
return
wx
.
showModal
({
title
:
'提示'
,
content
:
'确定取消订单?'
,
success
:
(
tip
)
=>
{
if
(
tip
.
confirm
)
{
that
.
submitCancel
=
true
that
.
apipost
(
"b2b_get_GetB2BAllCancelOrder"
,
{
ID
:
item
.
erpOrderId
,
OrderTypeStr
:
item
.
goodsType
,
},
(
res
)
=>
{
that
.
submitCancel
=
false
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
title
:
"操作成功"
,
icon
:
"success"
,
});
that
.
$emit
(
'research'
);
}
},
(
err
)
=>
{
that
.
submitCancel
=
false
uni
.
showToast
({
title
:
err
.
message
,
icon
:
"none"
,
})
}
);
}
}
})
},
cancelModal
()
{
this
.
showModal
=
false
},
goCancelZK
(
item
)
{
if
(
item
.
orderStatus
==
2
)
{
this
.
currentData
=
item
return
this
.
showModal
=
true
}
let
that
=
this
if
(
this
.
submit
||
this
.
submitCancel
)
return
wx
.
showModal
({
title
:
'提示'
,
content
:
'确定取消订单?'
,
success
:
(
tip
)
=>
{
if
(
tip
.
confirm
)
{
that
.
submitCancel
=
true
that
.
apipost
(
"GetCancelOrder_post"
,
{
OrderNo
:
item
.
orderNo
,
},
(
res
)
=>
{
that
.
submitCancel
=
false
if
(
res
.
resultCode
==
1
)
{
uni
.
showToast
({
title
:
"操作成功"
,
icon
:
"success"
,
});
that
.
$emit
(
'research'
);
}
},
(
err
)
=>
{
uni
.
showToast
({
title
:
err
.
message
,
icon
:
"none"
,
});
that
.
submitCancel
=
false
}
);
}
}
})
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.AggOrdListBox
{
padding
:
0
36rpx
;
}
.AggOrdList
{
border-radius
:
18rpx
;
background
:
#fff
;
padding
:
20rpx
30rpx
;
margin-bottom
:
20rpx
;
}
.AggOrdListH
{
font-size
:
22rpx
;
color
:
#080A09
;
}
.AggOrdListH-left
text
{
color
:
#e91e63
;
background
:
rgba
(
234
,
32
,
100
,.
2
);
border-radius
:
10rpx
;
display
:
block
;
padding
:
2rpx
10rpx
;
}
.AggOrdListH-RBBox
{
display
:
block
;
color
:
#1d1d1d
;
position
:
relative
;
}
.AggOrdListH-RS
{
color
:
#9e9e9e
;
margin-left
:
40rpx
;
}
.AggOrdListH-RBut
{
position
:
absolute
;
left
:
0
;
top
:
0
;
right
:
0
;
bottom
:
0
;
z-index
:
1
;
opacity
:
0
;
}
.AggOrdListH-RBut
{
position
:
absolute
;
left
:
0
;
top
:
0
;
right
:
0
;
bottom
:
0
;
z-index
:
1
;
opacity
:
0
;
}
.jz_Zailai
{
border-radius
:
16px
;
width
:
150rpx
;
height
:
60rpx
;
text-align
:
center
;
color
:
#111111
;
line-height
:
60rpx
;
font-size
:
24rpx
;
position
:
relative
;
border
:
1rpx
solid
rgba
(
164
,
164
,
164
,
.3
);
}
.jz_Zailai.jz_ZailaiZF
{
color
:
#B99846
;
border
:
1rpx
solid
#B99846
;
}
.jz_ZailaiZX
img
{
position
:
relative
;
top
:
10rpx
;
}
.visaList
{
padding
:
30rpx
;
margin-bottom
:
20rpx
;
background
:
#fff
;
overflow
:
hidden
;
border-radius
:
14rpx
;
}
.visaListL
{
width
:
161rpx
;
height
:
190rpx
;
overflow
:
hidden
;
margin-right
:
19rpx
;
position
:
relative
;
border-radius
:
14rpx
;
}
.visaListL
image
{
width
:
100%
;
height
:
100%
;
border-radius
:
14rpx
;
}
.visaListTitle
{
font-weight
:
bold
;
font-size
:
28rpx
;
color
:
#111111
;
word-break
:
break-all
;
text-overflow
:
ellipsis
;
display
:
-
webkit-box
;
-webkit-box-orient
:
vertical
;
-webkit-line-clamp
:
2
;
overflow
:
hidden
;
margin-bottom
:
10rpx
;
}
.visaListText
text
{
background-color
:
rgba
(
226
,
194
,
122
,
.3
);
color
:
#B99846
;
margin-right
:
16rpx
;
white-space
:
nowrap
;
border-radius
:
6rpx
;
padding
:
5rpx
9rpx
;
font-size
:
20rpx
;
}
.visaListNum
{
justify-content
:
space-between
;
align-items
:
center
;
}
.visaListNumL
text
{
font-family
:
PingFang
SC
;
font-weight
:
500
;
font-size
:
20rpx
;
color
:
#080A09
;
margin-left
:
10rpx
;
}
.visaListNum
{
margin-bottom
:
15rpx
;
}
.visaListNumR
{
color
:
rgba
(
255
,
49
,
102
,
1
);
}
.price-Num
{
font-size
:
34rpx
;
margin-left
:
5rpx
;
font-weight
:
bold
;
}
.uDropdownText
text
{
color
:
#444
;
}
.uDropdownText.active
text
{
color
:
#B99846
;
font-weight
:
bold
;
}
.visaListLText
{
position
:
absolute
;
left
:
0
;
top
:
0
;
border-radius
:
14rpx
0rpx
14rpx
0rpx
;
background
:
#B99846
;
padding
:
4rpx
9rpx
;
font-size
:
20rpx
;
color
:
#fff
;
}
.visaList.active
.visaListTitle
,
.visaList.active
.visaListNumR
,
.visaList.active
.visaListNumL
{
color
:
#CBCBCB
;
}
.visaList.active
.visaListLText
{
background
:
#CBCBCB
;
}
.visaList.active
.visaListL
image
{
// filter: grayscale(100%);
}
@import
url("@/asset/css/flex.css")
;
.AggOrdListBox
{
padding
:
0
36rpx
;
}
.AggOrdList
{
border-radius
:
18rpx
;
background
:
#fff
;
padding
:
20rpx
30rpx
;
margin-bottom
:
20rpx
;
}
.AggOrdListH
{
font-size
:
22rpx
;
color
:
#080A09
;
}
.AggOrdListH-left
text
{
color
:
#e91e63
;
background
:
rgba
(
234
,
32
,
100
,
.2
);
border-radius
:
10rpx
;
display
:
block
;
padding
:
2rpx
10rpx
;
}
.AggOrdListH-RBBox
{
display
:
block
;
color
:
#1d1d1d
;
position
:
relative
;
}
.AggOrdListH-RS
{
color
:
#9e9e9e
;
margin-left
:
40rpx
;
}
.AggOrdListH-RBut
{
position
:
absolute
;
left
:
0
;
top
:
0
;
right
:
0
;
bottom
:
0
;
z-index
:
1
;
opacity
:
0
;
}
.AggOrdListH-RBut
{
position
:
absolute
;
left
:
0
;
top
:
0
;
right
:
0
;
bottom
:
0
;
z-index
:
1
;
opacity
:
0
;
}
.jz_Zailai
{
border-radius
:
16px
;
width
:
150rpx
;
height
:
60rpx
;
text-align
:
center
;
color
:
#111111
;
line-height
:
60rpx
;
font-size
:
24rpx
;
position
:
relative
;
border
:
1rpx
solid
rgba
(
164
,
164
,
164
,
.3
);
}
.jz_Zailai.jz_ZailaiZF
{
color
:
#B99846
;
border
:
1rpx
solid
#B99846
;
}
.jz_ZailaiZX
img
{
position
:
relative
;
top
:
10rpx
;
}
.visaList
{
padding
:
30rpx
;
margin-bottom
:
20rpx
;
background
:
#fff
;
overflow
:
hidden
;
border-radius
:
14rpx
;
}
.visaListL
{
width
:
161rpx
;
height
:
190rpx
;
overflow
:
hidden
;
margin-right
:
19rpx
;
position
:
relative
;
border-radius
:
14rpx
;
}
.visaListL
image
{
width
:
100%
;
height
:
100%
;
border-radius
:
14rpx
;
}
.visaListTitle
{
font-weight
:
bold
;
font-size
:
28rpx
;
color
:
#111111
;
word-break
:
break-all
;
text-overflow
:
ellipsis
;
display
:
-
webkit-box
;
-webkit-box-orient
:
vertical
;
-webkit-line-clamp
:
2
;
overflow
:
hidden
;
margin-bottom
:
10rpx
;
}
.visaListText
text
{
background-color
:
rgba
(
226
,
194
,
122
,
.3
);
color
:
#B99846
;
margin-right
:
16rpx
;
white-space
:
nowrap
;
border-radius
:
6rpx
;
padding
:
5rpx
9rpx
;
font-size
:
20rpx
;
}
.visaListNum
{
justify-content
:
space-between
;
align-items
:
center
;
}
.visaListNumL
text
{
font-family
:
PingFang
SC
;
font-weight
:
500
;
font-size
:
20rpx
;
color
:
#080A09
;
margin-left
:
10rpx
;
}
.visaListNum
{
margin-bottom
:
15rpx
;
}
.visaListNumR
{
color
:
rgba
(
255
,
49
,
102
,
1
);
}
.price-Num
{
font-size
:
34rpx
;
margin-left
:
5rpx
;
font-weight
:
bold
;
}
.uDropdownText
text
{
color
:
#444
;
}
.uDropdownText.active
text
{
color
:
#B99846
;
font-weight
:
bold
;
}
.visaListLText
{
position
:
absolute
;
left
:
0
;
top
:
0
;
border-radius
:
14rpx
0rpx
14rpx
0rpx
;
background
:
#B99846
;
padding
:
4rpx
9rpx
;
font-size
:
20rpx
;
color
:
#fff
;
}
.visaList.active
.visaListTitle
,
.visaList.active
.visaListNumR
,
.visaList.active
.visaListNumL
{
color
:
#CBCBCB
;
}
.visaList.active
.visaListLText
{
background
:
#CBCBCB
;
}
.visaList.active
.visaListL
image
{
// filter: grayscale(100%);
}
</
style
>
\ No newline at end of file
pages/hotel/components/hotelRoom.vue
View file @
391066a7
...
...
@@ -300,10 +300,10 @@
}
if
(
this
.
HotelInfo
)
{
if
(
this
.
HotelInfo
.
images
&&
this
.
HotelInfo
.
images
.
length
>
0
)
{
//pHotel.images = this.HotelInfo.images
;
pHotel
.
images
.
push
(
this
.
HotelInfo
.
images
[
0
].
url
)
;
}
if
(
this
.
HotelInfo
.
address
)
{
pHotel
.
address
=
this
.
HotelInfo
.
address
;
if
(
this
.
HotelInfo
.
location
&&
this
.
HotelInfo
.
location
.
address
)
{
pHotel
.
address
=
this
.
HotelInfo
.
location
.
address
;
}
}
console
.
log
(
"hotelRoom"
,
pHotel
);
...
...
pages/hotel/order.vue
View file @
391066a7
...
...
@@ -350,15 +350,16 @@
}
,
onLoad
(
options
)
{
this
.
customer
=
uni
.
getStorageSync
(
"b2b_user"
)
console
.
log
(
"hotel_order"
,
options
);
if
(
options
.
searchObj
)
{
this
.
searchObj
=
JSON
.
parse
(
options
.
searchObj
)
}
if
(
options
.
HotelInfo
)
{
this
.
HotelInfo
=
JSON
.
parse
(
options
.
HotelInfo
)
console
.
log
(
"hotel_order_hotelInfo"
,
this
.
HotelInfo
)
this
.
orderMsg
.
hotelId
=
this
.
HotelInfo
.
hotelid
;
this
.
orderMsg
.
HotelName
=
this
.
HotelInfo
.
name
this
.
orderMsg
.
HotelName
=
this
.
HotelInfo
.
name
;
if
(
this
.
HotelInfo
.
images
&&
this
.
HotelInfo
.
images
.
length
>
0
)
{
this
.
orderMsg
.
HotelPic
=
this
.
HotelInfo
.
images
[
0
];
}
}
if
(
options
.
RoomInfo
)
{
this
.
RoomInfo
=
JSON
.
parse
(
options
.
RoomInfo
)
...
...
@@ -370,8 +371,6 @@
this
.
CreateBy
=
options
.
CreateBy
}
this
.
orderMsg
.
ProductId
=
this
.
RoomInfo
.
RoomTypeID
;
console
.
log
(
"hotel_order_this.searchObj"
,
this
.
searchObj
)
console
.
log
(
"hotel_order_this.RoomInfo"
,
this
.
RoomInfo
)
this
.
orderMsg
.
RatePlanID
=
this
.
RoomInfo
.
RatePlanID
this
.
orderMsg
.
CheckInDate
=
this
.
dayObj
.
start
;
this
.
orderMsg
.
CheckOutDate
=
this
.
dayObj
.
end
;
...
...
@@ -428,7 +427,8 @@
Name
:
this
.
customer
.
name
,
ContactNumber
:
this
.
orderMsg
.
guestPhoneNumber
,
Mailbox
:
this
.
orderMsg
.
guestEmail
,
GoodsId
:
this
.
orderMsg
.
RatePlanID
,
//GoodsId: this.orderMsg.RatePlanID,
GoodsId
:
this
.
HotelInfo
.
hotelId
,
GoodsName
:
this
.
HotelInfo
.
name
,
GoodsPic
:
""
,
GoodsType
:
9
,
...
...
@@ -480,7 +480,6 @@
signType
:
this
.
orderInfo
.
signType
,
paySign
:
this
.
orderInfo
.
sign
,
success
:
function
(
res
)
{
console
.
log
(
"success"
,
res
);
that
.
submit
=
false
;
uni
.
showToast
({
title
:
"支付成功"
,
...
...
@@ -495,7 +494,6 @@
}
,
100
);
}
,
fail
:
function
(
err
)
{
console
.
log
(
"fail:"
,
err
);
that
.
submit
=
true
;
uni
.
showToast
({
title
:
"支付失败"
,
...
...
@@ -667,9 +665,6 @@
}
,
changeDown
(
e
)
{
let
i
=
[
e
]
// this.customer.count = this.countrys[i].ID
// this.optionsTitle[0] = this.countrys[i].Name
// this.customer.PhoneCountryStr = '+'+this.countrys[i].PhoneCode
}
,
editNum
(
type
)
{
if
(
type
==
1
)
{
...
...
@@ -783,10 +778,9 @@
icon
:
'none'
}
)
uni
.
redirectTo
({
url
:
`/pages/AggregateOrders/AggregateOrdersList?OrderTypeStr=
3
`
,
url
:
`/pages/AggregateOrders/AggregateOrdersList?OrderTypeStr=
7
`
,
}
);
// #endif
console
.
log
(
res
,
'-------酒店erp下单成功'
)
}
}
);
...
...
utils/producttypeenum.js
View file @
391066a7
import
EnumHelper
from
"./enumhelper.js"
import
ListProductTypeEnum
from
"./listProductType.js"
const
ProductTypeEnum
=
[
{
value
:
1
,
desc
:
'机票产品'
},
/**
* 线路
*/
{
value
:
2
,
desc
:
'线路产品'
},
const
ProductTypeEnum
=
[{
value
:
1
,
desc
:
'机票产品'
},
/**
* 线路
*/
{
value
:
2
,
desc
:
'线路产品'
},
/**
* 酒店
*/
{
value
:
3
,
desc
:
'酒店产品'
},
/**
* 酒店
*/
{
value
:
3
,
desc
:
'酒店产品'
},
/**
* 景点门票
*/
{
value
:
4
,
desc
:
'景点门票产品'
},
/**
* 包车
*/
{
value
:
5
,
desc
:
'包车产品'
},
{
value
:
6
,
desc
:
'签证产品'
},
/**
* 景点门票
*/
{
value
:
4
,
desc
:
'景点门票产品'
},
/**
* 包车
*/
{
value
:
5
,
desc
:
'包车产品'
},
{
value
:
6
,
desc
:
'签证产品'
},
{
value
:
7
,
desc
:
'酒店产品'
},
]
const
mappingRules
=
[
[
-
1
],
[
1
,
2
,
3
],
[
4
,
5
,
6
,
7
],
[
-
1
],
[
12
,
13
,
14
],
[
8
,
9
,
10
,
11
],
[
15
],
[
16
]
[
-
1
],
[
1
,
2
,
3
],
[
4
,
5
,
6
,
7
],
[
-
1
],
[
12
,
13
,
14
],
[
8
,
9
,
10
,
11
],
[
15
],
[
16
]
]
const
mappingListType
=
(
value
)
=>
{
let
val
=
mappingRules
.
findIndex
(
x
=>
{
return
x
.
indexOf
(
value
)
!=
-
1
})
let
val
=
mappingRules
.
findIndex
(
x
=>
{
return
x
.
indexOf
(
value
)
!=
-
1
})
if
(
val
&&
val
>
0
)
{
return
EnumHelper
.
ParseToEnum
(
ListProductTypeEnum
,
val
,
'value'
)
}
return
{}
if
(
val
&&
val
>
0
)
{
return
EnumHelper
.
ParseToEnum
(
ListProductTypeEnum
,
val
,
'value'
)
}
return
{}
}
const
mappingListTypeTy
=
(
type
)
=>
{
let
val
=
ProductTypeEnum
.
findIndex
(
x
=>
{
return
x
.
value
==
Number
(
type
)
})
return
ProductTypeEnum
[
val
]
let
val
=
ProductTypeEnum
.
findIndex
(
x
=>
{
return
x
.
value
==
Number
(
type
)
})
return
ProductTypeEnum
[
val
]
}
const
transProductEnum
=
(
value
)
=>
{
return
mappingRules
[
value
]
return
mappingRules
[
value
]
}
export
default
ProductTypeEnum
export
{
mappingListType
,
transProductEnum
,
mappingListTypeTy
}
\ No newline at end of file
export
{
mappingListType
,
transProductEnum
,
mappingListTypeTy
}
\ No newline at end of file
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