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
37b33e72
Commit
37b33e72
authored
Apr 21, 2025
by
youjie
Browse files
Options
Browse Files
Download
Plain Diff
酒店
parents
5e45e1c7
391066a7
Show whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
1465 additions
and
1428 deletions
+1465
-1428
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
+28
-17
detail.vue
pages/hotel/detail.vue
+15
-77
list.vue
pages/hotel/list.vue
+0
-13
order.vue
pages/hotel/order.vue
+377
-351
producttypeenum.js
utils/producttypeenum.js
+65
-59
No files found.
pages/AggregateOrders/AggregateOrdersList.vue
View file @
37b33e72
<
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
;
...
...
@@ -42,36 +50,31 @@
}
}
/
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%;"
>
<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"
/>
<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>
...
...
@@ -79,22 +82,25 @@
</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
{
export
default
{
components
:
{
AggOrdHeader
,
orders
,
},
data
()
{
return
{
data
()
{
return
{
pageTitle
:
'所有订单'
,
msg
:{
pageSize
:
10
,
pageIndex
:
1
,
msg
:
{
pageSize
:
10
,
pageIndex
:
1
,
OrderStatus
:
0
,
GoodsName
:
''
,
OrderTypeStr
:
''
...
...
@@ -106,19 +112,19 @@
},
status
:
"loadmore"
,
showModal
:
false
,
barshow
:
0
,
barshow
:
0
,
statusList
:
[],
g
:
[],
page_count
:
1
,
index
:
0
,
payindex
:
0
,
showAuth
:
false
,
titleStyle
:{},
titleStyle
:
{},
}
},
onLoad
(
options
)
{
if
(
options
.
OrderTypeStr
)
this
.
msg
.
OrderTypeStr
=
options
.
OrderTypeStr
if
(
options
.
OrderStatus
)
this
.
msg
.
OrderStatus
=
options
.
OrderStatus
onLoad
(
options
)
{
if
(
options
.
OrderTypeStr
)
this
.
msg
.
OrderTypeStr
=
options
.
OrderTypeStr
if
(
options
.
OrderStatus
)
this
.
msg
.
OrderStatus
=
options
.
OrderStatus
this
.
research
()
},
created
()
{
...
...
@@ -131,15 +137,14 @@
},
});
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,12 +152,12 @@
this
.
g
=
[];
this
.
init
()
},
getOrderType
(
item
){
getOrderType
(
item
)
{
this
.
msg
.
OrderTypeStr
=
item
.
Id
this
.
pageTitle
=
item
.
Name
this
.
research
()
},
init
()
{
init
()
{
uni
.
showLoading
({
title
:
'加载中...'
})
...
...
@@ -163,19 +168,20 @@
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
;
...
...
@@ -221,23 +228,25 @@
},
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"
,
...
...
@@ -248,4 +257,3 @@
},
}
</
script
>
\ No newline at end of file
pages/AggregateOrders/AggregateOrdersSearch.vue
View file @
37b33e72
<
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,22 +43,26 @@
border-radius
:
10rpx
;
}
}
.AggregateTitle
{
.AggregateTitle
{
padding
:
40rpx
30rpx
40rpx
30rpx
;
font-size
:
36rpx
;
font-weight
:
bold
;
text-align
:
left
;
}
.AggregateTypeBox
{
.AggregateTypeBox
{
flex-wrap
:
wrap
;
padding
:
0
15rpx
;
}
.AggregateType
{
.AggregateType
{
width
:
33
.33%
;
padding
:
0
15rpx
;
margin-bottom
:
30rpx
;
}
.AggregateType
view
{
.AggregateType
view
{
display
:
block
;
padding
:
10rpx
0
15rpx
35rpx
;
background
:
#E3E6D2
;
...
...
@@ -60,7 +70,8 @@
border
:
1rpx
solid
#E3E6D2
;
overflow
:
hidden
;
}
.AggregateType
img
{
.AggregateType
img
{
width
:
40rpx
;
height
:
40rpx
;
display
:
inline-block
;
...
...
@@ -68,10 +79,12 @@
top
:
10rpx
;
right
:
20rpx
;
}
.AggregateType
text
{
.AggregateType
text
{
display
:
inline-block
;
}
.AggregateType.active
view
{
.AggregateType.active
view
{
border
:
1rpx
solid
#B99846
;
}
}
...
...
@@ -79,19 +92,16 @@
<
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
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)"
>
:class=
"[msg.OrderTypeStr==item.Id?'active':'']"
@
click=
"getTypeId(item)"
>
<view
class=
"row"
>
<img
:src=
"item.icon"
/>
<img
:src=
"item.icon"
/>
<text>
{{
item
.
Name
}}
</text>
...
...
@@ -100,13 +110,12 @@
</view>
</view>
</view>
<scroll-view
v-else
:scroll-y=
"true"
:enable-back-to-top=
"true"
:enable-flex=
"true"
@
scrolltolower=
"lower"
style=
"height: 100%;"
>
<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"
/>
<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>
...
...
@@ -118,21 +127,24 @@
</
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
{
export
default
{
components
:
{
AggOrdSearch
,
orders
,
},
data
()
{
return
{
msg
:{
pageSize
:
10
,
pageIndex
:
1
,
data
()
{
return
{
msg
:
{
pageSize
:
10
,
pageIndex
:
1
,
OrderStatus
:
0
,
GoodsName
:
''
,
OrderTypeStr
:
''
,
...
...
@@ -145,7 +157,7 @@
},
status
:
"loadmore"
,
showModal
:
false
,
barshow
:
0
,
barshow
:
0
,
g
:
[],
page_count
:
1
,
index
:
0
,
...
...
@@ -186,7 +198,7 @@
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'
,
...
...
@@ -197,8 +209,8 @@
titleStyle
:
{},
}
},
onLoad
(
options
)
{
if
(
options
.
OrderTypeStr
)
{
onLoad
(
options
)
{
if
(
options
.
OrderTypeStr
)
{
this
.
msg
.
OrderTypeStr
=
options
.
OrderTypeStr
}
},
...
...
@@ -215,26 +227,32 @@
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"
;
...
...
@@ -259,16 +277,16 @@
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
({
...
...
@@ -281,18 +299,19 @@
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
;
...
...
@@ -348,4 +368,3 @@
},
}
</
script
>
\ No newline at end of file
pages/AggregateOrders/components/header.vue
View file @
37b33e72
...
...
@@ -11,10 +11,12 @@
</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"
/>
<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"
/>
<img
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638772247012340060.jpg"
@
click=
"showModal=true"
/>
</view>
</view>
</view>
...
...
@@ -22,10 +24,8 @@
<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)"
>
<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>
...
...
@@ -34,13 +34,12 @@
</view>
</
template
>
<
script
>
export
default
{
props
:[
'title'
,
'params'
],
export
default
{
props
:
[
'title'
,
'params'
],
data
()
{
return
{
titleStyle
:{},
orderTypeList
:
[
{
titleStyle
:
{},
orderTypeList
:
[{
Id
:
''
,
Name
:
'所有订单'
},
...
...
@@ -70,7 +69,7 @@ export default {
}
],
showModal
:
false
,
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'
,
...
...
@@ -80,12 +79,12 @@ export default {
]
}
},
watch
:
{
params
:
{
watch
:
{
params
:
{
handler
(
newVal
,
oldVal
)
{
},
deep
:
true
deep
:
true
}
},
mounted
()
{
...
...
@@ -93,30 +92,35 @@ export default {
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
)
}
})
// this.orderTypeList = res.data
this
.
orderTypeList
.
unshift
({
Id
:
''
,
Name
:
'所有订单'
...
...
@@ -133,61 +137,70 @@ export default {
this
.
$emit
(
'change'
,
item
)
this
.
showModal
=
false
;
},
goSearch
(){
// ?OrderTypeStr=${this.params.OrderTypeStr}
goSearch
()
{
uni
.
navigateTo
({
url
:
`/pages/AggregateOrders/AggregateOrdersSearch`
})
},
goBack
(){
uni
.
navigateBack
({
delta
:
-
1
})
goBack
()
{
uni
.
navigateBack
({
delta
:
-
1
})
}
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.AggregateTitle
{
@import
url("@/asset/css/flex.css")
;
.AggregateTitle
{
padding
:
40rpx
30rpx
40rpx
30rpx
;
font-size
:
32rpx
;
font-weight
:
bold
;
text-align
:
left
;
}
.AggregateTypeBox
{
}
.AggregateTypeBox
{
flex-wrap
:
wrap
;
padding
:
0
15rpx
;
}
.AggregateType
{
}
.AggregateType
{
width
:
33
.33%
;
padding
:
0
15rpx
;
margin-bottom
:
30rpx
;
}
.AggregateType
text
{
}
.AggregateType
text
{
display
:
block
;
line-height
:
60rpx
;
background
:
#f5f5f5
;
border
:
1rpx
solid
#E3E6D2
;
border-radius
:
60rpx
;
text-align
:
center
;
}
.AggregateType.active
text
{
}
.AggregateType.active
text
{
border
:
1rpx
solid
#B99846
;
color
:
#B99846
;
}
.carrHeader-title
{
}
.carrHeader-title
{
position
:
relative
;
left
:
60rpx
;
right
:
0
;
text-align
:
left
;
font-size
:
32rpx
;
}
.carrHeader-left
{
}
.carrHeader-left
{
position
:
absolute
;
left
:
32rpx
;
bottom
:
23rpx
;
z-index
:
3
;
}
.carrHeaderBox
{
}
.carrHeaderBox
{
width
:
100%
;
height
:
88rpx
;
padding
:
0
32rpx
;
...
...
@@ -195,28 +208,33 @@ export default {
align-items
:
center
;
justify-content
:
space-between
;
position
:
relative
;
}
.carrHeader
{
}
.carrHeader
{
// padding-top: 85rpx;
}
.carrHeader-right
{
}
.carrHeader-right
{
padding-right
:
200rpx
;
display
:
flex
;
}
.carrHeader-right
img
{
}
.carrHeader-right
img
{
width
:
35rpx
;
height
:
35rpx
;
}
.carrHeader-S
{
}
.carrHeader-S
{
width
:
63rpx
;
height
:
63rpx
;
margin-right
:
20rpx
;
}
.carrHeader-T
{
}
.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 @
37b33e72
<
template
>
<view>
<view
class=
"AggOrdListBox"
>
<view
class=
"visaList row"
v-for=
"(item,index) in g"
:key=
"index"
@
click=
"goDetails(item)"
<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"
/>
<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>
...
...
@@ -40,8 +40,7 @@
<view
class=
"row"
>
<view
class=
"col"
></view>
<!-- #ifdef MP-DI -->
<view
class=
"jz_Zailai"
@
click
.
stop=
""
style=
"width: 110rpx;"
>
<view
class=
"jz_Zailai"
@
click
.
stop=
""
style=
"width: 110rpx;"
>
客服
<button
class=
"AggOrdListH-RBut"
open-type=
"contact"
show-message-card=
"true"
></button>
</view>
...
...
@@ -51,58 +50,57 @@
<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>
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>
<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"
<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'
],
import
cancelPrompt
from
"@/components/cancelPrompt/cancelPrompt.vue"
;
export
default
{
props
:
[
'orders'
],
components
:
{
cancelPrompt
},
data
()
{
return
{
g
:
[],
submitCancel
:
false
,
submitCancel
:
false
,
submit
:
false
,
orderInfo
:
null
,
orderInfo
:
null
,
showModal
:
false
,
currentData
:
null
,
}
},
watch
:
{
orders
:
{
handler
(
newVal
,
oldVal
)
{
watch
:
{
orders
:
{
handler
(
newVal
,
oldVal
)
{
this
.
g
=
newVal
},
deep
:
true
,
deep
:
true
,
}
},
mounted
()
{
},
methods
:
{
cancelSuccess
()
{
this
.
$emit
(
'research'
,
5
)
methods
:
{
cancelSuccess
()
{
this
.
$emit
(
'research'
,
5
)
},
submitGetCodeByOrderNo
(
item
)
{
uni
.
showLoading
({
...
...
@@ -115,17 +113,17 @@ 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
=>
{
},
e
=>
{
uni
.
hideLoading
()
uni
.
showToast
({
title
:
'无法发起支付,请稍后'
,
icon
:
'none'
,
duration
:
3000
title
:
'无法发起支付,请稍后'
,
icon
:
'none'
,
duration
:
3000
})
this
.
submit
=
false
this
.
submit
=
false
});
},
goPayHandler
(
item
)
{
...
...
@@ -156,82 +154,81 @@ export default {
},
});
},
goPaySuccess
(
item
)
{
goPaySuccess
(
item
)
{
let
isFrom
=
null
if
(
item
.
goodsType
>
0
&&
item
.
goodsType
<
4
){
//线路
if
(
item
.
goodsType
>
0
&&
item
.
goodsType
<
4
)
{
//线路
isFrom
=
1
}
else
if
(
item
.
goodsType
>
3
&&
item
.
goodsType
<
8
){
//景点门票
}
else
if
(
item
.
goodsType
>
3
&&
item
.
goodsType
<
8
)
{
//景点门票
}
else
if
(
item
.
goodsType
>
7
&&
item
.
goodsType
<
12
){
//酒店住宿
}
else
if
(
item
.
goodsType
>
7
&&
item
.
goodsType
<
12
)
{
//酒店住宿
}
else
if
(
item
.
goodsType
>
11
&&
item
.
goodsType
<
15
){
//目的地用车
}
else
if
(
item
.
goodsType
>
11
&&
item
.
goodsType
<
15
)
{
//目的地用车
}
else
if
(
item
.
goodsType
==
15
){
//签证
}
else
if
(
item
.
goodsType
==
15
)
{
//签证
isFrom
=
3
}
else
if
(
item
.
goodsType
==
16
){
//机票
}
else
if
(
item
.
goodsType
==
16
)
{
//机票
isFrom
=
4
}
if
(
isFrom
)
{
if
(
isFrom
)
{
setTimeout
(()
=>
{
uni
.
redirectTo
({
url
:
"/pages/jiuzhai/paysuccess?PreferPrice="
+
(
item
.
totalPrice
-
item
.
preferentialPrice
).
toFixed
(
2
)
+
"&isFrom="
+
isFrom
,
(
item
.
totalPrice
-
item
.
preferentialPrice
).
toFixed
(
2
)
+
"&isFrom="
+
isFrom
,
});
},
100
);
}
},
// 再来一单
AnotherOrder
(
item
)
{
AnotherOrder
(
item
)
{
let
url
=
''
if
(
item
.
goodsType
>
0
&&
item
.
goodsType
<
4
){
//线路
const
pts
=
[
''
,
2
,
0
,
1
]
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
>
3
&&
item
.
goodsType
<
8
)
{
//景点门票
}
else
if
(
item
.
goodsType
>
7
&&
item
.
goodsType
<
12
){
//酒店住宿
}
else
if
(
item
.
goodsType
>
7
&&
item
.
goodsType
<
12
)
{
//酒店住宿
}
else
if
(
item
.
goodsType
>
11
&&
item
.
goodsType
<
15
){
//目的地用车
}
else
if
(
item
.
goodsType
>
11
&&
item
.
goodsType
<
15
)
{
//目的地用车
}
else
if
(
item
.
goodsType
==
15
){
//签证
}
else
if
(
item
.
goodsType
==
15
)
{
//签证
url
=
"visa/visaList"
}
else
if
(
item
.
goodsType
==
16
){
//机票
}
else
if
(
item
.
goodsType
==
16
)
{
//机票
url
=
"airTicket/airIndex"
}
if
(
url
)
{
if
(
url
)
{
uni
.
navigateTo
({
url
:
`/pages/
${
url
}
`
,
});
}
},
// 详情
goDetails
(
item
)
{
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?`
//机票
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
){
//机票
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
)
{
if
(
url
)
{
let
path
=
`/pages/
${
url
}${
msg
}
`
uni
.
navigateTo
({
url
:
path
,
...
...
@@ -242,7 +239,7 @@ export default {
//取消订单
goCancel
(
item
)
{
let
that
=
this
if
(
this
.
submit
||
this
.
submitCancel
)
return
if
(
this
.
submit
||
this
.
submitCancel
)
return
wx
.
showModal
({
title
:
'提示'
,
content
:
'确定取消订单?'
,
...
...
@@ -276,16 +273,16 @@ export default {
}
})
},
cancelModal
()
{
cancelModal
()
{
this
.
showModal
=
false
},
goCancelZK
(
item
)
{
if
(
item
.
orderStatus
==
2
)
{
if
(
item
.
orderStatus
==
2
)
{
this
.
currentData
=
item
return
this
.
showModal
=
true
}
let
that
=
this
if
(
this
.
submit
||
this
.
submitCancel
)
return
if
(
this
.
submit
||
this
.
submitCancel
)
return
wx
.
showModal
({
title
:
'提示'
,
content
:
'确定取消订单?'
,
...
...
@@ -319,40 +316,47 @@ export default {
})
},
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
@import
url("@/asset/css/flex.css")
;
.AggOrdListBox
{
@import
url("@/asset/css/flex.css")
;
.AggOrdListBox
{
padding
:
0
36rpx
;
}
.AggOrdList
{
}
.AggOrdList
{
border-radius
:
18rpx
;
background
:
#fff
;
padding
:
20rpx
30rpx
;
margin-bottom
:
20rpx
;
}
.AggOrdListH
{
}
.AggOrdListH
{
font-size
:
22rpx
;
color
:
#080A09
;
}
.AggOrdListH-left
text
{
}
.AggOrdListH-left
text
{
color
:
#e91e63
;
background
:
rgba
(
234
,
32
,
100
,
.
2
);
background
:
rgba
(
234
,
32
,
100
,
.2
);
border-radius
:
10rpx
;
display
:
block
;
padding
:
2rpx
10rpx
;
}
.AggOrdListH-RBBox
{
}
.AggOrdListH-RBBox
{
display
:
block
;
color
:
#1d1d1d
;
position
:
relative
;
}
.AggOrdListH-RS
{
}
.AggOrdListH-RS
{
color
:
#9e9e9e
;
margin-left
:
40rpx
;
}
.AggOrdListH-RBut
{
}
.AggOrdListH-RBut
{
position
:
absolute
;
left
:
0
;
top
:
0
;
...
...
@@ -360,8 +364,9 @@ export default {
bottom
:
0
;
z-index
:
1
;
opacity
:
0
;
}
.AggOrdListH-RBut
{
}
.AggOrdListH-RBut
{
position
:
absolute
;
left
:
0
;
top
:
0
;
...
...
@@ -369,8 +374,9 @@ export default {
bottom
:
0
;
z-index
:
1
;
opacity
:
0
;
}
.jz_Zailai
{
}
.jz_Zailai
{
border-radius
:
16px
;
width
:
150rpx
;
height
:
60rpx
;
...
...
@@ -381,37 +387,42 @@ export default {
position
:
relative
;
border
:
1rpx
solid
rgba
(
164
,
164
,
164
,
.3
);
}
.jz_Zailai.jz_ZailaiZF
{
}
.jz_Zailai.jz_ZailaiZF
{
color
:
#B99846
;
border
:
1rpx
solid
#B99846
;
}
.jz_ZailaiZX
img
{
}
.jz_ZailaiZX
img
{
position
:
relative
;
top
:
10rpx
;
}
}
.visaList
{
.visaList
{
padding
:
30rpx
;
margin-bottom
:
20rpx
;
background
:
#fff
;
overflow
:
hidden
;
border-radius
:
14rpx
;
}
.visaListL
{
}
.visaListL
{
width
:
161rpx
;
height
:
190rpx
;
overflow
:
hidden
;
margin-right
:
19rpx
;
position
:
relative
;
border-radius
:
14rpx
;
}
.visaListL
image
{
}
.visaListL
image
{
width
:
100%
;
height
:
100%
;
border-radius
:
14rpx
;
}
.visaListTitle
{
}
.visaListTitle
{
font-weight
:
bold
;
font-size
:
28rpx
;
color
:
#111111
;
...
...
@@ -422,8 +433,9 @@ export default {
-webkit-line-clamp
:
2
;
overflow
:
hidden
;
margin-bottom
:
10rpx
;
}
.visaListText
text
{
}
.visaListText
text
{
background-color
:
rgba
(
226
,
194
,
122
,
.3
);
color
:
#B99846
;
margin-right
:
16rpx
;
...
...
@@ -431,54 +443,66 @@ export default {
border-radius
:
6rpx
;
padding
:
5rpx
9rpx
;
font-size
:
20rpx
;
}
.visaListNum
{
}
.visaListNum
{
justify-content
:
space-between
;
align-items
:
center
;
}
.visaListNumL
text
{
}
.visaListNumL
text
{
font-family
:
PingFang
SC
;
font-weight
:
500
;
font-size
:
20rpx
;
color
:
#080A09
;
margin-left
:
10rpx
;
}
.visaListNum
{
}
.visaListNum
{
margin-bottom
:
15rpx
;
}
.visaListNumR
{
}
.visaListNumR
{
color
:
rgba
(
255
,
49
,
102
,
1
);
}
.price-Num
{
}
.price-Num
{
font-size
:
34rpx
;
margin-left
:
5rpx
;
font-weight
:
bold
;
}
.uDropdownText
text
{
}
.uDropdownText
text
{
color
:
#444
;
}
.uDropdownText.active
text
{
}
.uDropdownText.active
text
{
color
:
#B99846
;
font-weight
:
bold
;
}
.visaListLText
{
}
.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
{
font-size
:
20rpx
;
color
:
#fff
;
}
.visaList.active
.visaListTitle
,
.visaList.active
.visaListNumR
,
.visaList.active
.visaListNumL
{
color
:
#CBCBCB
;
}
.visaList.active
.visaListLText
{
}
.visaList.active
.visaListLText
{
background
:
#CBCBCB
;
}
.visaList.active
.visaListL
image
{
}
.visaList.active
.visaListL
image
{
// filter: grayscale(100%);
}
}
</
style
>
\ No newline at end of file
pages/hotel/components/hotelRoom.vue
View file @
37b33e72
...
...
@@ -3,24 +3,29 @@
<view
style=
"padding: 0 31rpx;"
>
<view
class=
"hotelDetailBox activeTag"
v-for=
"(item,index) in RoomList"
:key=
"index"
>
<view
class=
"hotelDetailTag"
>
热门房型
{{
item
.
RoomName_CN
}}
</view>
<template
v-for=
"(subItem,subindex) in item.RatePlanList"
>
<view
class=
"hotelDetail row"
v-if=
"!subindex"
>
<template
v-if=
"item.images&&item.images.length>0"
>
<view
class=
"hotelDetailL"
@
click=
"openPicture(item.images)"
>
<image
mode=
"heightFix"
:src=
"item.Path
"
/>
<image
mode=
"heightFix"
:src=
"item.images[0].Url
"
/>
<view
class=
"hotelDetailLImgs"
v-if=
"item.images&&item.images.length>1"
>
{{
item
.
images
.
length
}}
</view>
</view>
</
template
>
<
template
v-else
>
<view
class=
"hotelDetailL"
>
<image
mode=
"heightFix"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/defaultHotelImg.png"
/>
</view>
</
template
>
<view
class=
"hotelDetailR column"
>
<view
class=
"hotelDetailRTitle row items-center"
>
<view>
<!--
{{
getRoomType
(
subItem
.
BedType
)
}}
-->
</view>
<!--
<img
:src=
"openImg[0]"
/>
-->
</view>
<view
class=
"hotelDetailRRoom"
>
{{ subItem.RoomName_CN }}
...
...
@@ -287,17 +292,23 @@
return
mealtypeName
;
},
goUrl
(
subItem
)
{
let
HotelInfo
=
{
let
pHotel
=
{
hotelid
:
this
.
HotelInfo
.
hotelid
,
name
:
this
.
HotelInfo
.
name
,
location
:
this
.
HotelInfo
.
location
,
address
:
this
.
HotelInfo
.
address
,
destination
:
this
.
HotelInfo
.
destination
,
country
:
this
.
HotelInfo
.
country
,
images
:
this
.
HotelInfo
.
images
,
address
:
""
,
images
:
[],
}
if
(
this
.
HotelInfo
)
{
if
(
this
.
HotelInfo
.
images
&&
this
.
HotelInfo
.
images
.
length
>
0
)
{
pHotel
.
images
.
push
(
this
.
HotelInfo
.
images
[
0
].
url
);
}
if
(
this
.
HotelInfo
.
location
&&
this
.
HotelInfo
.
location
.
address
)
{
pHotel
.
address
=
this
.
HotelInfo
.
location
.
address
;
}
}
console
.
log
(
"hotelRoom"
,
pHotel
);
uni
.
navigateTo
({
url
:
`/pages/hotel/order?searchObj=
${
JSON
.
stringify
(
this
.
searchObj
)}
&dayObj=
${
JSON
.
stringify
(
this
.
dayObj
)}
&HotelInfo=
${
JSON
.
stringify
(
HotelInfo
)}
&RoomInfo=
${
JSON
.
stringify
(
subItem
)}
`
,
url
:
`/pages/hotel/order?searchObj=
${
JSON
.
stringify
(
this
.
searchObj
)}
&dayObj=
${
JSON
.
stringify
(
this
.
dayObj
)}
&HotelInfo=
${
JSON
.
stringify
(
pHotel
)}
&RoomInfo=
${
JSON
.
stringify
(
subItem
)}
`
,
});
},
openPicture
(
item
)
{
...
...
pages/hotel/detail.vue
View file @
37b33e72
...
...
@@ -16,19 +16,12 @@
style=
"width: 37rpx; height: 44rpx"
mode=
""
></image>
</view>
</view>
<!--
<view
class=
"type-box"
v-if=
"videoUrl!=''"
>
<u-tabs
bg-color=
"rgba(0,0,0,0)"
:is-scroll=
"false"
name=
"Name"
:list=
"typeList"
:active-color=
"mainColor"
:current=
"active"
@
change=
"changeHandler"
:show-bar=
"true"
:bold=
"false"
height=
"50"
duration=
"0"
font-size=
"24"
:activeFontSize=
"24"
:typeStyle=
"2"
>
</u-tabs>
</view>
-->
<view
class=
"media-info"
v-if=
"dataList.images"
>
<view
class=
"flex"
>
<view
class=
"mi-left"
>
<view
v-if=
"dataList.images.length > 0"
class=
"type-img-box"
>
<image
:src=
"dataList.images[0].url"
mode=
"aspectFill"
></image>
<view
class=
"content"
>
<!--
<u-icon
name=
"photo"
size=
"26"
color=
"#FFF"
></u-icon>
-->
<text>
{{
dataList
.
images
.
length
}}
</text>
</view>
</view>
...
...
@@ -205,8 +198,6 @@
<hotelPolicy
ref=
"hotelPolicy"
id=
"hotelPolicy"
:dataList=
"dataList"
></hotelPolicy>
<hotelFacilities
ref=
"hotelFacilities"
id=
"hotelFacilities"
:dataList=
"dataList"
>
</hotelFacilities>
</view>
</view>
</view>
...
...
@@ -351,7 +342,10 @@
loading
:
false
,
DidaHotelRoomDetails
:
{},
qRoomTypeList
:
[],
qMealTypeList
:
[],
qMealTypeList
:
[{
ID
:
''
,
MTypeName
:
"全部"
}],
HotelMealTypes
:
[],
qMsg
:
{
RoomTypeName
:
""
,
//房型筛选
...
...
@@ -483,7 +477,6 @@
if
(
options
.
searchObj
)
{
this
.
searchObj
=
JSON
.
parse
(
options
.
searchObj
);
}
// this.getRecomHotel();
this
.
getHotelPrices
()
this
.
getdidaMealType
()
},
...
...
@@ -561,32 +554,21 @@
console
.
log
(
"dmc_post_GetDiDaPriceSearchList"
,
tempData
);
this
.
DidaHotelRoomDetails
=
tempData
;
this
.
qRoomTypeList
=
tempData
.
qRoomTypeList
;
console
.
log
(
"qRoomTypeList"
,
this
.
qRoomTypeList
);
if
(
this
.
qRoomTypeList
&&
this
.
qRoomTypeList
.
length
>
0
)
this
.
qRoomTypeList
.
unshift
({
if
(
this
.
qRoomTypeList
&&
this
.
qRoomTypeList
.
length
>
0
)
{
this
.
qRoomTypeList
.
unshift
({
RoomTypeID
:
-
1
,
RoomName_CN
:
'全部
'
RoomName_CN
:
'房型(全部)
'
})
var
tempMealArray
=
tempData
.
qMealTypeList
;
if
(
tempMealArray
&&
tempMealArray
.
length
>
0
)
{
tempMealArray
.
forEach
(
mItem
=>
{
var
MTypeName
=
that
.
getMealtype
(
mItem
.
MealType
);
if
(
mItem
.
MealAmount
>
0
)
{
MTypeName
+=
mItem
.
MealAmount
+
"份"
;
}
mItem
.
MTypeName
=
MTypeName
});
}
this
.
qMealTypeList
=
tempMealArray
;
console
.
log
(
"qMealTypeList"
,
this
.
qMealTypeList
);
if
(
this
.
qMealTypeList
&&
this
.
qMealTypeList
.
length
>
0
)
this
.
qMealTypeList
.
unshift
({
MTypeName
:
"全部"
,
this
.
qMealTypeList
=
tempData
.
qMealTypeList
;
if
(
this
.
qMealTypeList
&&
this
.
qMealTypeList
.
length
>
0
)
{
this
.
qMealTypeList
.
unshift
({
MTypeName
:
"餐型(全部)"
,
MealAmount
:
0
,
MealType
:
0
,
})
}
}
})
},
//获取道旅餐食类型
...
...
@@ -628,7 +610,6 @@
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
// console.log(res, '推荐酒店');
this
.
HotelArr
=
[];
let
tempHotel
=
res
.
data
.
pageData
;
tempHotel
.
forEach
((
x
)
=>
{
...
...
@@ -785,9 +766,7 @@
longPressActions
:
{
itemList
:
[
"发送给朋友"
,
"保存图片"
,
"收藏"
],
success
:
function
(
data
)
{},
fail
:
function
(
err
)
{
// console.log(err.errMsg);
},
fail
:
function
(
err
)
{},
},
});
},
...
...
@@ -843,20 +822,8 @@
for
(
let
i
=
0
;
i
<
res
.
data
.
images
.
length
;
i
++
)
{
res
.
data
.
images
[
i
].
Path
=
res
.
data
.
images
[
i
].
url
}
// for(let i=0;i
<
res
.
data
.
rooms
.
length
;
i
++
){
// let list = res.data.rooms[i].images.filter(x=>{
// return x.isDefault
// })
// res.data.rooms[i].images.forEach(x=>{
// x.Path = x.url
// })
// if(list.length>0) res.data.rooms[i].Path = list[0].url
// else res.data.rooms[i].Path = res.data.rooms[i].images.length>0&&res.data.rooms[i].images[0].url?res.data.rooms[i].images[0].url:''
// this.RoomList.push(res.data.rooms[i])
// }
this
.
hotelData
.
hotelid
=
this
.
dataList
.
hotelid
;
this
.
hotelData
.
name
=
this
.
dataList
.
name
;
// this.hotelData.Booking = this.dataList.Booking;
setTimeout
(()
=>
{
this
.
hotelFacilities
.
forEach
((
x
)
=>
{
const
query
=
uni
.
createSelectorQuery
().
select
(
`#
${
x
.
val
}
`
);
...
...
@@ -867,35 +834,6 @@
},
1000
);
}
})
// let msg = {
// hotelid: id,
// StartDate: this.dayObj.start,
// EndDate: this.dayObj.end,
// };
// this.request2(
// {
// url: "/api/Hotel/GetHotelInfo",
// data: msg,
// },
// (res) => {
// if (res.resultCode == 1) {
// // console.log(res, '详情数据');
// this.dataList = res.data;
// this.RoomList = this.dataList.RoomList;
// this.hotelData.hotelid = this.dataList.hotelid;
// this.hotelData.name = this.dataList.name;
// this.hotelData.Booking = this.dataList.Booking;
// setTimeout(() => {
// this.hotelFacilities.forEach((x)=>{
// const query = uni.createSelectorQuery().select(`#${x.val}`);
// query.boundingClientRect((rect) => {
// x.top = rect.top+250;
// }).exec();
// })
// }, 1000);
// }
// }
// );
},
// #ifdef MP-WEIXIN
//分享朋友圈
...
...
pages/hotel/list.vue
View file @
37b33e72
...
...
@@ -46,15 +46,6 @@
pageIndex
:
1
,
pageSize
:
15
,
KeyWords
:
""
,
//关键字
// StartPrice: 0,
// EndPrice: 1000,
// QStartDate: "",//开始日期
// QEndDate: "",//结束日期
// OrderByType: "1", //排序类型
// QStars: "", //星级
// TagList: [], //查询标签
// City: 262, //市
// District: 0, //区
},
HotelList
:
[],
//酒店数据
tempRateAndPrice
:
{
...
...
@@ -251,13 +242,10 @@
}
.hotel-list
.hotel-city
{
// width: 105rpx;
height
:
40rpx
;
padding
:
0rpx
0
8rpx
0rpx
;
margin-right
:
27rpx
;
text-align
:
center
;
/* color: #DFBE6E; */
// border-right: 1px solid #e2e2e2;
font-size
:
28rpx
;
white-space
:
nowrap
;
overflow
:
hidden
;
...
...
@@ -277,7 +265,6 @@
}
.hotel-list
.search-box
.date
{
// width: 82rpx;
height
:
50rpx
;
font-size
:
20rpx
;
font-weight
:
500
;
...
...
pages/hotel/order.vue
View file @
37b33e72
...
...
@@ -7,7 +7,9 @@
<view
class=
"o-timer"
>
<view
class=
"row-sb-n"
>
<view
class=
"row items-center"
>
<view
class=
"time-item"
>
{{
getDate
(
dayObj
.
start
)?
getDate
(
dayObj
.
start
):
''
}}
<text>
今天
</text></view>
<view
class=
"time-item"
>
{{
getDate
(
dayObj
.
start
)?
getDate
(
dayObj
.
start
):
''
}}
<text>
今天
</text>
</view>
<view
class=
"time-itemZhi"
><text>
-
</text></view>
<view
class=
"time-item"
>
{{
getDate
(
dayObj
.
end
)
}}
</view>
<view
class=
"timeline"
></view>
...
...
@@ -22,9 +24,7 @@
<view
class=
"roomline"
></view>
<view
class=
"room-remark"
>
{{
searchObj
.
rooms
}}
间
<!-- |
{{
RoomInfo
.
BedTypeStr
}}
|
{{
RoomInfo
.
RoomSize
}}
㎡ |
{{
RoomInfo
.
HasWindowStr
}}
-->
</view>
<view
class=
"roomline"
></view>
<view
class=
"roomPrice"
>
...
...
@@ -97,8 +97,7 @@
<
/view> --
>
<
view
class
=
"form-items"
>
<
view
class
=
"label"
>
联系电话
<
/view
>
<
view
class
=
"form-itemsL row"
@
click
=
"showCountry=true"
>
<
view
class
=
"form-itemsL row"
@
click
=
"showCountry=true"
>
<
text
>+
86
<
/text
>
<!--
'arrow-up'
:
'arrow-down'
-->
<
u
-
icon
name
=
"arrow-down"
color
=
"#080A09"
size
=
"20"
/>
...
...
@@ -130,9 +129,11 @@
<
view
style
=
"font-size: 12px;width:1px;flex:1"
>
请选择优惠券
<
/view
>
<
view
style
=
"display: flex;align-items: center;"
>
<
text
style
=
"color:#F20707;font-size: 12px;"
@
click
=
"showCouponHandler"
>
<
text
style
=
"flex: 1;"
v
-
if
=
"useCouponIds == 0 &&couponList.length>0"
>
{{
couponList
.
length
}}
张可用优惠券
<
/text
>
<
text
style
=
"flex: 1;"
v
-
if
=
"useCouponIds == 0 &&couponList.length>0"
>
{{
couponList
.
length
}}
张可用优惠券
<
/text
>
<
text
class
=
"content"
style
=
"color:grey"
v
-
else
-
if
=
"couponList.length==0"
>
暂无优惠券
<
/text
>
<
text
class
=
"content"
v
-
else
:
style
=
"{ color: mainColor
}
"
>
已优惠
{{
currentCoupon
.
discountMoney
}}
元
<
/text
>
<
text
class
=
"content"
v
-
else
:
style
=
"{ color: mainColor
}
"
>
已优惠
{{
currentCoupon
.
discountMoney
}}
元
<
/text
>
<!--
<
u
-
icon
name
=
"ellipsis"
size
=
"36"
v
-
if
=
"couponList.length > 0"
><
/u-icon> --
>
<
/text
>
<
u
-
icon
name
=
"arrow"
:
size
=
"32"
color
=
"#111"
v
-
if
=
"couponList.length>0"
><
/u-icon
>
...
...
@@ -151,7 +152,8 @@
<
view
class
=
"val f14 regular"
style
=
"text-align: right;"
>
<
text
style
=
"margin-right: 30rpx;"
>
{{
searchObj
.
peoples
}}
人
<
/text
>
<
text
style
=
"margin-right: 30rpx;"
>
{{
orderMsg
.
RoomCount
}}
间房
<
/text
>
<
text
class
=
"red"
>
{{
RoomInfo
.
Currency
}}
{{
getPrice
(
orderMsg
.
TotalPrice
)
*
orderMsg
.
RoomCount
}}
<
/text
>
<
text
class
=
"red"
>
{{
RoomInfo
.
Currency
}}
{{
getPrice
(
orderMsg
.
TotalPrice
)
*
orderMsg
.
RoomCount
}}
<
/text
>
<
/view
>
<
/view
>
<
view
class
=
"form-items PriceMinXi"
style
=
"border-bottom: none;"
>
...
...
@@ -168,7 +170,8 @@
{{
orderMsg
.
RoomCount
}}
间×
{{
RoomInfo
.
Currency
}}
{{
getPrice
(
orderMsg
.
TotalPrice
)
}}
<
/view
>
<
/view
>
<
view
class
=
"flex f12 grey"
style
=
"margin-bottom: 40rpx"
:
style
=
"{'color':mainColor+' !important'
}
"
v
-
if
=
"useCouponIds.length>0"
>
<
view
class
=
"flex f12 grey"
style
=
"margin-bottom: 40rpx"
:
style
=
"{'color':mainColor+' !important'
}
"
v
-
if
=
"useCouponIds.length>0"
>
<
view
style
=
"flex: 1"
>
<
text
style
=
"margin-right: 30rpx"
>
优惠券
<
/text
>
<
/view
>
...
...
@@ -196,14 +199,16 @@
roomRateDetails.CancellationPolicyList &&
roomRateDetails.CancellationPolicyList.length > 0"
>
<
template
v
-
for
=
"(itemCancella, index1) in roomRateDetails.CancellationPolicyList"
>
<
template
v
-
if
=
"index1==0"
>
{{
getformatDateStr
(
itemCancella
.
FromDate
)
}}
之前免费取消
<
/template
>
<
template
v
-
if
=
"index1==0"
>
{{
getformatDateStr
(
itemCancella
.
FromDate
)
}}
之前免费取消
<
/template
>
<
template
v
-
if
=
"itemCancella.Amount==roomRateDetails.TotalPrice"
>
<
template
>
{{
getformatDateStr
(
itemCancella
.
FromDate
)
}}
起不可取消,取消将收取订单全额费用
;
<
/template
>
<
/template
>
<
template
v
-
else
>
<
template
>
{{
getformatDateStr
(
itemCancella
.
FromDate
)
}}
<
template
v
-
if
=
"index1!=(roomRateDetails.CancellationPolicyList.length-1)"
>-
{{
getformatDateStr
(
roomRateDetails
.
CancellationPolicyList
[
index1
+
1
].
FromDate
)
}}
之间
<
/template
>
{{
getformatDateStr
(
roomRateDetails
.
CancellationPolicyList
[
index1
+
1
].
FromDate
)
}}
之间
<
/template
>
取消,收费
{{
DanWei
}}
{{
getPrice
(
itemCancella
.
Amount
)
}}
;
<
/template
>
<
/template
>
<
/template
>
...
...
@@ -211,18 +216,6 @@
<
/view
>
<
/view
>
<
view
style
=
"height: 27rpx"
><
/view
>
<!--
<
view
style
=
"padding:50rpx 40rpx"
>
<
view
class
=
"big-title"
>
<
text
>
重要提醒
<
/text
>
<
/view
>
<
view
class
=
"sheshi"
v
-
for
=
"(item,index) in HotelInfo.Booking"
>
<
view
class
=
"she-title"
>
{{
item
.
Name
}}
<
/view
>
<
view
class
=
"she-content"
>
<
view
>
{{
item
.
Content
}}
<
/view
>
<
/view
>
<
/view
>
<
/view>--
>
<
/view
>
<
/scroll-view
>
<
view
class
=
"opera-box"
>
...
...
@@ -232,88 +225,81 @@
<
text
>
{{
(
getPrice
(
orderMsg
.
TotalPrice
)
*
orderMsg
.
RoomCount
)
-
currentCoupon
.
discountMoney
}}
<
/text
>
<
/view
>
<
view
class
=
"sum-detail"
>
共计
{{
orderMsg
.
RoomCount
}}
间房
<
/view
>
<
u
-
button
:
ripple
=
"true"
:
hair
-
line
=
"false"
:
custom
-
style
=
"submit?btnStyle2:btnStyle"
@
click
=
"buyRoom"
:
loading
=
"submit"
>
立即购买
<
/u-button
>
<
u
-
button
:
ripple
=
"true"
:
hair
-
line
=
"false"
:
custom
-
style
=
"submit?btnStyle2:btnStyle"
@
click
=
"buyRoom"
:
loading
=
"submit"
>
立即购买
<
/u-button
>
<
/view
>
<
/view
>
<
u
-
picker
v
-
model
=
"showtime"
mode
=
"time"
@
confirm
=
'confirm'
:
params
=
"paramsTime"
:
default
-
time
=
'orderMsg.ArrivalTime'
><
/u-picker
>
<
u
-
picker
v
-
model
=
"showtime"
mode
=
"time"
@
confirm
=
'confirm'
:
params
=
"paramsTime"
:
default
-
time
=
'orderMsg.ArrivalTime'
><
/u-picker
>
<
u
-
toast
ref
=
"uToast"
/>
<
u
-
picker
mode
=
"selector"
v
-
model
=
"showCountry"
:
default
-
selector
=
"[0]"
:
range
=
"countrys"
@
confirm
=
'(e)=>{changeDown(e,CountryType)
}
'
range
-
key
=
"label"
@
input
=
"showCountry=false"
><
/u-picker
>
<
coupon
v
-
if
=
"couponList.length > 0 && showCoupon"
:
price
=
"getPrice(orderMsg.TotalPrice)"
:
list
=
"couponList"
:
current
=
"useCouponIds"
@
close
=
"closeCouponHandler"
:
order
=
"orderMsg"
:
numberPeople
=
"searchObj.peoples"
><
/coupon
>
<
u
-
picker
mode
=
"selector"
v
-
model
=
"showCountry"
:
default
-
selector
=
"[0]"
:
range
=
"countrys"
@
confirm
=
'(e)=>{changeDown(e,CountryType)
}
'
range
-
key
=
"label"
@
input
=
"showCountry=false"
><
/u-picker
>
<
coupon
v
-
if
=
"couponList.length > 0 && showCoupon"
:
price
=
"getPrice(orderMsg.TotalPrice)"
:
list
=
"couponList"
:
current
=
"useCouponIds"
@
close
=
"closeCouponHandler"
:
order
=
"orderMsg"
:
numberPeople
=
"searchObj.peoples"
>
<
/coupon
>
<
/view
>
<
/template
>
<
script
>
import
coupon
from
'@/components/coupon/index'
;
export
default
{
import
coupon
from
'@/components/coupon/index'
;
export
default
{
components
:
{
coupon
}
,
data
()
{
return
{
btnStyle
:{
height
:
"80rpx"
,
lineHeight
:
"80rpx"
,
borderRadius
:
"16rpx"
,
background
:
"#111"
,
color
:
"#FFF"
,
fontSize
:
"28rpx"
,
fontWeight
:
"600"
,
width
:
'193rpx'
,
btnStyle
:
{
height
:
"80rpx"
,
lineHeight
:
"80rpx"
,
borderRadius
:
"16rpx"
,
background
:
"#111"
,
color
:
"#FFF"
,
fontSize
:
"28rpx"
,
fontWeight
:
"600"
,
width
:
'193rpx'
,
}
,
btnStyle2
:{
height
:
"80rpx"
,
lineHeight
:
"80rpx"
,
borderRadius
:
"16rpx"
,
background
:
"#eee"
,
color
:
"#000"
,
fontSize
:
"28rpx"
,
fontWeight
:
"600"
,
width
:
'193rpx'
,
btnStyle2
:
{
height
:
"80rpx"
,
lineHeight
:
"80rpx"
,
borderRadius
:
"16rpx"
,
background
:
"#eee"
,
color
:
"#000"
,
fontSize
:
"28rpx"
,
fontWeight
:
"600"
,
width
:
'193rpx'
,
}
,
RoomInfo
:{
}
,
dayObj
:{
}
,
HotelInfo
:{
}
,
orderMsg
:{
// ProductId:0, //房间id
// StartDate:'',
// EndDate:'',
// RoomNumber:1,
// Unit_Price:'',
// Final_Price:'',
// Consignee:'', //联系人
// ConsigneeMobile:'', //;联系电话
ArrivalTime
:
'14:00'
,
//预计到达时间
EmployeeIdStr
:
""
,
//销售id
CheckInDate
:
""
,
//到店时间
RoomInfo
:
{
}
,
dayObj
:
{
}
,
HotelInfo
:
{
}
,
orderMsg
:
{
ArrivalTime
:
'14:00'
,
//预计到达时间
EmployeeIdStr
:
""
,
//销售id
CheckInDate
:
""
,
//到店时间
RatePlanID
:
""
,
CheckOutDate
:
""
,
//离店时间
RoomCount
:
""
,
//房间数量
guestLastName
:
""
,
//英文姓
guestFirstName
:
""
,
//英文名
CheckOutDate
:
""
,
//离店时间
RoomCount
:
""
,
//房间数量
guestLastName
:
""
,
//英文姓
guestFirstName
:
""
,
//英文名
guestAddress
:
""
,
guestPhoneNumber
:
""
,
guestEmail
:
""
,
//Email
guestEmail
:
""
,
//Email
BookingID
:
""
,
HotelName
:
""
,
//酒店名称
HotelPic
:
""
,
//酒店封面
HotelName
:
""
,
//酒店名称
HotelPic
:
""
,
//酒店封面
GuestList
:
[],
TotalPrice
:
0
,
//总价
TotalPrice
:
0
,
//总价
CustomerPayMoney
:
0
,
DiscountMoney
:
0
,
//优惠
DiscountMoney
:
0
,
//优惠
OrderSource
:
2
,
OrderForm
:
4
,
//订单来源
OrderForm
:
4
,
//订单来源
//备注
guestRequest
:
""
,
hotelId
:
''
,
//酒店Id
hotelId
:
''
,
//酒店Id
roomType
:
0
,
CustomerId
:
0
,
//同行Id
DirectCustomerId
:
0
,
//直客Id
}
,
showtime
:
false
,
showtime
:
false
,
paramsTime
:
{
year
:
false
,
month
:
false
,
...
...
@@ -322,18 +308,18 @@ import coupon from '@/components/coupon/index';
minute
:
true
,
second
:
false
}
,
tipsText
:
''
,
tipsText
:
''
,
showCountry
:
false
,
countrys
:[],
countrys
:
[],
couponList
:
[],
showCoupon
:
false
,
useCouponIds
:
[],
currentCoupon
:
{
discountMoney
:
0
}
,
showPz
:
false
,
pzCoupon
:
null
,
searchObj
:
null
,
showPz
:
false
,
pzCoupon
:
null
,
searchObj
:
null
,
mainColor
:
''
,
activeStyle
:
''
,
params
:
{
...
...
@@ -364,36 +350,30 @@ import coupon from '@/components/coupon/index';
}
,
onLoad
(
options
)
{
this
.
customer
=
uni
.
getStorageSync
(
"b2b_user"
)
console
.
log
(
this
.
customer
,
'------this.customer'
)
if
(
options
.
searchObj
){
if
(
options
.
searchObj
)
{
this
.
searchObj
=
JSON
.
parse
(
options
.
searchObj
)
}
if
(
options
.
HotelInfo
)
{
if
(
options
.
HotelInfo
)
{
this
.
HotelInfo
=
JSON
.
parse
(
options
.
HotelInfo
)
console
.
log
(
this
.
HotelInfo
,
'-----------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
)
{
if
(
options
.
RoomInfo
)
{
this
.
RoomInfo
=
JSON
.
parse
(
options
.
RoomInfo
)
}
if
(
options
.
dayObj
)
{
if
(
options
.
dayObj
)
{
this
.
dayObj
=
JSON
.
parse
(
options
.
dayObj
)
}
if
(
options
.
CreateBy
)
{
this
.
CreateBy
=
options
.
CreateBy
}
this
.
orderMsg
.
ProductId
=
this
.
RoomInfo
.
RoomTypeID
;
console
.
log
(
this
.
searchObj
,
'-----------searchObj'
)
console
.
log
(
this
.
RoomInfo
,
'-----------RoomInfo'
)
this
.
orderMsg
.
RatePlanID
=
this
.
RoomInfo
.
RatePlanID
// this.orderMsg.TotalPrice = this.getPrice(this.RoomInfo.TotalPrice);
this
.
orderMsg
.
CheckInDate
=
this
.
dayObj
.
start
;
this
.
orderMsg
.
CheckOutDate
=
this
.
dayObj
.
end
;
this
.
orderMsg
.
RoomCount
=
this
.
searchObj
.
rooms
this
.
orderMsg
.
GuestList
=
[];
this
.
searchObj
.
searchroomGroup
.
forEach
((
item
,
index
)
=>
{
...
...
@@ -411,7 +391,7 @@ import coupon from '@/components/coupon/index';
RoomNum
:
index
+
1
,
numberOfAdults
:
item
.
numberOfAdults
,
numberOfChildren
:
item
.
numberOfChildren
,
ChildAgeDetails
:
item
.
ChildAgeDetails
!=
''
?
item
.
ChildAgeDetails
:
1
,
ChildAgeDetails
:
item
.
ChildAgeDetails
!=
''
?
item
.
ChildAgeDetails
:
1
,
GuestInfo
:
guestInfoList
}
;
this
.
orderMsg
.
GuestList
.
push
(
obj
);
...
...
@@ -435,7 +415,7 @@ import coupon from '@/components/coupon/index';
this
.
GetCountryInfo
()
this
.
initHotel
()
}
,
methods
:{
methods
:
{
submitB2COrderHandler
(
OrderId
)
{
let
userInfo
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
let
guestInfo
=
`成人x${this.searchObj.adultsNumber
}
; `
;
...
...
@@ -447,9 +427,10 @@ import coupon from '@/components/coupon/index';
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
:
this
.
HotelInfo
.
images
[
0
].
Path
,
GoodsPic
:
""
,
GoodsType
:
9
,
OrderMake
:
`${this.orderMsg.CheckInDate
}
入住;${this.orderMsg.CheckOutDate
}
离店 ${guestInfo
}
`
,
TotalPrice
:
this
.
getPrice
(
this
.
orderMsg
.
TotalPrice
),
...
...
@@ -460,17 +441,20 @@ import coupon from '@/components/coupon/index';
Income
:
0
,
Refund
:
0
,
MallBaseId
:
userInfo
.
MallBaseId
,
CreateBy
:
0
CreateBy
:
0
}
;
if
(
this
.
HotelInfo
.
images
&&
this
.
HotelInfo
.
images
.
length
>
0
)
{
msg
.
GoodsPic
=
this
.
HotelInfo
.
images
[
0
];
}
// #ifdef MP-DI
if
(
this
.
customer
.
salesBaseInfo
&&
this
.
customer
.
salesBaseInfo
.
employeeId
)
{
if
(
this
.
customer
.
salesBaseInfo
&&
this
.
customer
.
salesBaseInfo
.
employeeId
)
{
msg
.
CreateBy
=
this
.
customer
.
salesBaseInfo
.
employeeId
}
// #endif
this
.
apipost
(
"AddOrderInfo_post"
,
msg
,
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
orderInfo
=
JSON
.
parse
(
res
.
data
.
sPayInfo
)
this
.
orderInfo
=
JSON
.
parse
(
res
.
data
.
sPayInfo
)
uni
.
showToast
({
icon
:
'none'
,
title
:
'订单创建成功'
...
...
@@ -478,9 +462,9 @@ import coupon from '@/components/coupon/index';
this
.
goPayHandler
(
res
.
data
.
OrderNo
);
}
else
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
,
duration
:
3000
title
:
res
.
message
,
icon
:
'none'
,
duration
:
3000
}
)
this
.
submit
=
false
;
}
...
...
@@ -496,7 +480,6 @@ import coupon from '@/components/coupon/index';
signType
:
this
.
orderInfo
.
signType
,
paySign
:
this
.
orderInfo
.
sign
,
success
:
function
(
res
)
{
console
.
log
(
"success"
,
res
);
that
.
submit
=
false
;
uni
.
showToast
({
title
:
"支付成功"
,
...
...
@@ -504,13 +487,13 @@ import coupon from '@/components/coupon/index';
setTimeout
(()
=>
{
uni
.
redirectTo
({
url
:
"/pages/jiuzhai/paysuccess?PreferPrice="
+
(
that
.
getPrice
(
that
.
orderMsg
.
TotalPrice
)
-
that
.
currentCoupon
.
discountMoney
).
toFixed
(
2
)
+
(
that
.
getPrice
(
that
.
orderMsg
.
TotalPrice
)
-
that
.
currentCoupon
.
discountMoney
).
toFixed
(
2
)
+
"&isFrom=5"
,
}
);
}
,
100
);
}
,
fail
:
function
(
err
)
{
console
.
log
(
"fail:"
,
err
);
that
.
submit
=
true
;
uni
.
showToast
({
title
:
"支付失败"
,
...
...
@@ -538,7 +521,7 @@ import coupon from '@/components/coupon/index';
mask
:
true
}
);
this
.
apipost
(
"dmc_post_GetDiDaPriceConfirm"
,
this
.
params
,
"dmc_post_GetDiDaPriceConfirm"
,
this
.
params
,
res
=>
{
if
(
res
.
resultCode
==
1
)
{
uni
.
hideLoading
();
...
...
@@ -549,24 +532,12 @@ import coupon from '@/components/coupon/index';
this
.
roomRateDetails
=
res
.
data
.
PriceDetails
.
HotelList
[
0
];
this
.
orderMsg
.
BookingID
=
res
.
data
.
PriceDetails
.
ReferenceNo
;
this
.
orderMsg
.
checkInTime
=
res
.
data
.
PriceDetails
.
CheckInDate
;
this
.
orderMsg
.
TotalPrice
=
this
.
getPrice
(
this
.
roomRateDetails
.
TotalPrice
);
if
(
this
.
roomRateDetails
.
RatePlanList
&&
this
.
roomRateDetails
.
RatePlanList
.
length
>
0
){
if
(
this
.
roomRateDetails
.
RatePlanList
&&
this
.
roomRateDetails
.
RatePlanList
.
length
>
0
)
{
this
.
orderMsg
.
roomType
=
this
.
roomRateDetails
.
RatePlanList
[
0
].
BedType
}
// this.orderMsg.HotelPic = this.HotelInfo.HotelPic
if
(
Object
.
prototype
.
toString
.
call
(
this
.
dataList
.
HotelList
)
==
"[object Object]"
)
{
let
arr
=
[];
arr
.
push
(
this
.
dataList
.
HotelList
);
this
.
dataList
.
HotelList
=
arr
;
}
}
}
,
err
=>
{
}
,
err
=>
{
uni
.
hideLoading
();
this
.
submit
=
false
;
}
);
...
...
@@ -574,7 +545,7 @@ import coupon from '@/components/coupon/index';
getPrice
(
price
)
{
return
Math
.
ceil
(
price
);
}
,
goUrl
(){
goUrl
()
{
uni
.
navigateTo
({
url
:
`/pages/hotel/orderInfor?msg=${encodeURIComponent(JSON.stringify(this.params))
}
&dayObj=${JSON.stringify(this.dayObj)
}
&searchObj=${JSON.stringify(this.searchObj)
}
&HotelInfo=${JSON.stringify(this.HotelInfo)
}
`
}
)
...
...
@@ -587,46 +558,48 @@ import coupon from '@/components/coupon/index';
this
.
useCouponIds
=
e
;
//叠加使用优惠券
let
TotalDiscountAmount
=
0
this
.
couponList
.
forEach
(
x
=>
{
let
findIndex
=
this
.
useCouponIds
.
findIndex
(
y
=>
x
.
id
==
y
)
if
(
findIndex
!=-
1
)
{
this
.
couponList
.
forEach
(
x
=>
{
let
findIndex
=
this
.
useCouponIds
.
findIndex
(
y
=>
x
.
id
==
y
)
if
(
findIndex
!=
-
1
)
{
let
discountMoney
=
0
if
(
x
.
couponsType
==
1
)
{
if
(
x
.
couponsType
==
1
)
{
discountMoney
=
x
.
denomination
}
else
{
}
else
{
discountMoney
=
(
parseFloat
(
this
.
price
)
*
(
1
-
parseFloat
(
x
.
denomination
/
10
)))
.
toFixed
(
2
)
}
TotalDiscountAmount
+=
discountMoney
}
}
)
if
(
TotalDiscountAmount
)
this
.
currentCoupon
.
discountMoney
=
TotalDiscountAmount
if
(
TotalDiscountAmount
)
this
.
currentCoupon
.
discountMoney
=
TotalDiscountAmount
else
this
.
currentCoupon
.
discountMoney
=
0
}
else
{
}
else
{
this
.
currentCoupon
.
discountMoney
=
0
this
.
useCouponIds
=
[]
}
this
.
showCoupon
=
false
;
}
,
calcMaxCouponHandle
(){
if
(
this
.
couponList
&&
this
.
couponList
.
length
>
0
)
{
calcMaxCouponHandle
()
{
if
(
this
.
couponList
&&
this
.
couponList
.
length
>
0
)
{
let
maxCouponId
=
0
let
discount
=
0
const
money
=
this
.
price
this
.
couponList
.
forEach
(
x
=>
{
if
(
x
.
couponsType
==
1
&&
x
.
denomination
>
discount
&&
(
this
.
orderMsg
.
AdultPeopleNum
>=
x
.
orderGuestNum
||!
x
.
orderGuestNum
))
{
discount
=
x
.
denomination
this
.
couponList
.
forEach
(
x
=>
{
if
(
x
.
couponsType
==
1
&&
x
.
denomination
>
discount
&&
(
this
.
orderMsg
.
AdultPeopleNum
>=
x
.
orderGuestNum
||
!
x
.
orderGuestNum
))
{
discount
=
x
.
denomination
maxCouponId
=
x
.
id
}
if
(
x
.
couponsType
==
2
){
let
disMoney
=
money
*
(
1
-
x
.
denomination
)
if
(
discount
<
disMoney
&&
(
this
.
orderMsg
.
AdultPeopleNum
>=
x
.
orderGuestNum
||!
x
.
orderGuestNum
)){
discount
=
disMoney
if
(
x
.
couponsType
==
2
)
{
let
disMoney
=
money
*
(
1
-
x
.
denomination
)
if
(
discount
<
disMoney
&&
(
this
.
orderMsg
.
AdultPeopleNum
>=
x
.
orderGuestNum
||
!
x
.
orderGuestNum
))
{
discount
=
disMoney
maxCouponId
=
x
.
id
}
}
}
)
if
(
maxCouponId
>
0
)
this
.
closeCouponHandler
([
maxCouponId
])
if
(
maxCouponId
>
0
)
this
.
closeCouponHandler
([
maxCouponId
])
else
this
.
closeCouponHandler
(
-
1
)
}
}
,
...
...
@@ -649,9 +622,7 @@ import coupon from '@/components/coupon/index';
"coupon_post_GetUserCanUseCouponList"
,
couponParams
,
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
console
.
log
(
"coupon_post_GetUserCanUseCouponList_res"
,
res
);
this
.
couponList
=
res
.
data
// this.calcPzCouponHandler()
this
.
calcMaxCouponHandle
()
}
}
,
...
...
@@ -660,26 +631,26 @@ import coupon from '@/components/coupon/index';
}
);
}
,
usePzCouponHandler
(){
usePzCouponHandler
()
{
this
.
showPz
=
false
this
.
closeCouponHandler
([
this
.
pzCoupon
.
id
])
this
.
pzCoupon
=
null
}
,
calcPzCouponHandler
(){
this
.
couponList
.
forEach
((
x
)
=>
{
if
(
x
.
expansionModel
.
denomination
>
0
){
if
(
this
.
pzCoupon
&&
this
.
pzCoupon
.
expansionModel
.
denomination
<
x
.
expansionModel
.
denomination
)
this
.
pzCoupon
=
x
calcPzCouponHandler
()
{
this
.
couponList
.
forEach
((
x
)
=>
{
if
(
x
.
expansionModel
.
denomination
>
0
)
{
if
(
this
.
pzCoupon
&&
this
.
pzCoupon
.
expansionModel
.
denomination
<
x
.
expansionModel
.
denomination
)
this
.
pzCoupon
=
x
else
this
.
pzCoupon
=
x
this
.
pzCoupon
=
x
x
.
realDenomination
=
x
.
denomination
x
.
denomination
=
x
.
expansionModel
.
denomination
x
.
denomination
=
x
.
expansionModel
.
denomination
}
}
)
this
.
showPz
=
this
.
pzCoupon
?
true
:
false
this
.
showPz
=
this
.
pzCoupon
?
true
:
false
}
,
GetCountryInfo
(){
GetCountryInfo
()
{
this
.
apipost
(
"GetCountryInfo_post"
,
{
}
,
(
r
)
=>
{
for
(
let
i
=
0
;
i
<
r
.
data
.
phoneCountList
.
length
;
i
++
)
{
let
Count
=
r
.
data
.
phoneCountList
[
i
]
...
...
@@ -692,115 +663,108 @@ import coupon from '@/components/coupon/index';
}
}
)
}
,
changeDown
(
e
){
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
)
{
if
(
this
.
orderMsg
.
RoomCount
>
1
)
{
if
(
this
.
orderMsg
.
RoomCount
>
1
)
{
this
.
orderMsg
.
RoomCount
--
;
this
.
orderMsg
.
GuestList
.
splice
(
this
.
orderMsg
.
GuestList
.
length
-
1
,
1
)
this
.
orderMsg
.
GuestList
.
splice
(
this
.
orderMsg
.
GuestList
.
length
-
1
,
1
)
}
}
else
{
}
else
{
this
.
orderMsg
.
RoomCount
++
;
this
.
orderMsg
.
GuestList
.
push
({
RoomNum
:
this
.
orderMsg
.
GuestList
.
length
+
1
,
RoomNum
:
this
.
orderMsg
.
GuestList
.
length
+
1
,
numberOfAdults
:
1
,
numberOfChildren
:
0
,
ChildAgeDetails
:
''
,
GuestInfo
:
[
{
GuestInfo
:
[{
LastName
:
""
,
FirstName
:
""
,
Age
:
""
}
]
}
]
}
)
}
this
.
searchObj
.
rooms
=
this
.
orderMsg
.
GuestList
.
length
this
.
CalTotalPrice
();
}
,
getDate
(
date
){
if
(
date
)
{
getDate
(
date
)
{
if
(
date
)
{
let
arr
=
date
.
split
(
'-'
);
return
arr
[
1
]
+
'月'
+
arr
[
2
]
+
'日'
return
arr
[
1
]
+
'月'
+
arr
[
2
]
+
'日'
}
}
,
getWeek
(
date
)
{
var
weekArray
=
new
Array
(
"日"
,
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
);
var
week
=
weekArray
[
new
Date
(
date
).
getDay
()];
//注意此处必须是先new一个Date
return
'周'
+
week
;
}
,
//选择时间
confirm
(
val
){
this
.
orderMsg
.
ArrivalTime
=
val
.
hour
+
':'
+
val
.
minute
;
confirm
(
val
)
{
this
.
orderMsg
.
ArrivalTime
=
val
.
hour
+
':'
+
val
.
minute
;
}
,
//计算总价
CalTotalPrice
(){
CalTotalPrice
()
{
}
,
validate
(){
validate
()
{
let
email
=
/^
[
a-zA-Z0-9_.-
]
+@
[
a-zA-Z0-9-
]
+
(\.[
a-zA-Z0-9-
]
+
)
*
\.[
a-zA-Z0-9
]
{2,6
}
$/
let
msg
=
''
for
(
let
i
=
0
;
i
<
this
.
orderMsg
.
GuestList
.
length
;
i
++
)
{
for
(
let
j
=
0
;
j
<
this
.
orderMsg
.
GuestList
[
i
].
GuestInfo
.
length
;
j
++
)
{
if
(
this
.
orderMsg
.
GuestList
[
i
].
GuestInfo
[
j
].
LastName
==
''
)
{
for
(
let
i
=
0
;
i
<
this
.
orderMsg
.
GuestList
.
length
;
i
++
)
{
for
(
let
j
=
0
;
j
<
this
.
orderMsg
.
GuestList
[
i
].
GuestInfo
.
length
;
j
++
)
{
if
(
this
.
orderMsg
.
GuestList
[
i
].
GuestInfo
[
j
].
LastName
==
''
)
{
return
msg
=
'请输入住客姓'
}
if
(
this
.
orderMsg
.
GuestList
[
i
].
GuestInfo
[
j
].
FirstName
==
''
)
{
if
(
this
.
orderMsg
.
GuestList
[
i
].
GuestInfo
[
j
].
FirstName
==
''
)
{
return
msg
=
'请输入住客名'
}
}
}
if
(
this
.
orderMsg
.
guestLastName
==
''
)
{
if
(
this
.
orderMsg
.
guestLastName
==
''
)
{
msg
=
'请输入姓名'
}
else
if
(
this
.
orderMsg
.
guestPhoneNumber
==
''
)
{
}
else
if
(
this
.
orderMsg
.
guestPhoneNumber
==
''
)
{
msg
=
'请输入联系电话'
}
else
if
(
this
.
orderMsg
.
guestPhoneNumber
&&
this
.
orderMsg
.
guestPhoneNumber
.
length
!=
11
)
{
}
else
if
(
this
.
orderMsg
.
guestPhoneNumber
&&
this
.
orderMsg
.
guestPhoneNumber
.
length
!=
11
)
{
msg
=
'请输入正确的电话号码'
}
else
if
(
this
.
orderMsg
.
guestEmail
==
''
||!
this
.
orderMsg
.
guestEmail
)
{
}
else
if
(
this
.
orderMsg
.
guestEmail
==
''
||
!
this
.
orderMsg
.
guestEmail
)
{
msg
=
'请输入邮箱地址'
}
else
if
(
!
email
.
test
(
this
.
orderMsg
.
guestEmail
))
{
}
else
if
(
!
email
.
test
(
this
.
orderMsg
.
guestEmail
))
{
msg
=
'请输入正确的邮箱地址'
}
else
if
(
this
.
orderMsg
.
CheckInDate
==
''
)
{
}
else
if
(
this
.
orderMsg
.
CheckInDate
==
''
)
{
msg
=
'入住时间不能为空'
}
else
if
(
this
.
orderMsg
.
CheckOutDate
==
''
)
{
}
else
if
(
this
.
orderMsg
.
CheckOutDate
==
''
)
{
msg
=
'离店时间不能为空'
}
return
msg
}
,
//立即购买
buyRoom
(){
buyRoom
()
{
const
error
=
this
.
validate
()
if
(
error
!=
''
)
{
if
(
error
!=
''
)
{
uni
.
showToast
({
icon
:
'none'
,
title
:
error
icon
:
'none'
,
title
:
error
}
)
return
}
if
(
this
.
submit
)
return
;
if
(
this
.
submit
)
return
;
this
.
submit
=
true
;
let
that
=
this
;
var
CustomerId
=
0
var
CreateBy
=
0
//同行id
var
DirectCustomerId
=
0
//直客id
// #ifdef MP-DI
DirectCustomerId
=
this
.
customer
.
customerId
CreateBy
=
this
.
customer
.
customerId
that
.
orderMsg
.
DirectCustomerId
=
this
.
customer
.
customerId
;
if
(
this
.
customer
&&
this
.
customer
.
erpBaseInfo
&&
this
.
customer
.
erpBaseInfo
.
employeeId
)
{
that
.
orderMsg
.
EmployeeIdStr
=
this
.
customer
.
erpBaseInfo
.
employeeId
;
}
this
.
orderMsg
.
OrderSource
=
7
// #endif
// #ifdef MP-AG
CreateBy
=
this
.
CreateBy
CustomerId
=
this
.
customer
.
customerId
that
.
orderMsg
.
CustomerId
=
this
.
customer
.
customerId
this
.
orderMsg
.
OrderSource
=
5
if
(
this
.
customer
&&
this
.
customer
.
salesBaseInfo
&&
this
.
customer
.
salesBaseInfo
.
employeeId
)
{
this
.
orderMsg
.
EmployeeIdStr
=
this
.
customer
.
salesBaseInfo
.
employeeId
}
// #endif
this
.
orderMsg
.
EmployeeIdStr
=
CreateBy
;
console
.
log
(
that
.
orderMsg
,
'-----酒店下单'
);
that
.
apipost
(
'dmc_post_GetDiDaBookingConfirm'
,
that
.
orderMsg
,
console
.
log
(
"酒店下单"
,
that
.
orderMsg
);
that
.
apipost
(
'dmc_post_GetDiDaBookingConfirm'
,
that
.
orderMsg
,
res
=>
{
if
(
res
.
resultCode
==
1
)
{
const
tempData
=
res
.
data
...
...
@@ -814,25 +778,25 @@ import coupon from '@/components/coupon/index';
icon
:
'none'
}
)
uni
.
redirectTo
({
url
:
`/pages/AggregateOrders/AggregateOrdersList?OrderTypeStr=3
`
,
url
:
`/pages/AggregateOrders/AggregateOrdersList?OrderTypeStr=7
`
,
}
);
// #endif
console
.
log
(
res
,
'-------酒店erp下单成功'
)
}
}
);
}
,
}
}
<
/script
>
<
style
>
@
import
url
(
"@/asset/css/flex.css"
);
.
hotel
-
order
{
@
import
url
(
"@/asset/css/flex.css"
);
.
hotel
-
order
{
color
:
#
111111
;
}
.
opera
-
box
{
.
opera
-
box
{
background
-
color
:
#
FFF
;
padding
:
20
rpx
45
rpx
40
rpx
45
rpx
;
/* position: fixed;
...
...
@@ -841,7 +805,8 @@ import coupon from '@/components/coupon/index';
right: 0; */
z
-
index
:
5
;
}
.
opera
-
box
.
box
{
.
opera
-
box
.
box
{
height
:
100
rpx
;
background
:
#
FFFFFF
;
box
-
shadow
:
0
px
10
rpx
30
rpx
0
px
rgba
(
36
,
36
,
36
,
0.2
);
...
...
@@ -850,32 +815,38 @@ import coupon from '@/components/coupon/index';
align
-
items
:
center
;
padding
:
0
10
rpx
0
36
rpx
;
}
.
opera
-
box
.
box
.
price
{
.
opera
-
box
.
box
.
price
{
font
-
size
:
40
rpx
;
font
-
weight
:
500
;
color
:
#
D91818
;
margin
-
right
:
20
rpx
;
}
.
opera
-
box
.
box
.
sum
-
detail
{
.
opera
-
box
.
box
.
sum
-
detail
{
font
-
size
:
24
rpx
;
flex
:
1
;
font
-
weight
:
500
;
color
:
#
6
E6E6E
;
}
.
hotel
-
order
.
red
{
color
:
#
D91818
!
important
.
hotel
-
order
.
red
{
color
:
#
D91818
!
important
}
.
hotel
-
order
.
grey
{
color
:
#
6
E6E6E
!
important
.
hotel
-
order
.
grey
{
color
:
#
6
E6E6E
!
important
}
.
hotel
-
order
.
form
{
.
hotel
-
order
.
form
{
margin
-
top
:
60
rpx
;
padding
:
0
19
rpx
44
rpx
19
rpx
;
padding
:
0
19
rpx
44
rpx
19
rpx
;
background
:
#
fff
;
border
-
radius
:
18
rpx
;
margin
:
28
rpx
31
rpx
;
}
.
hotel
-
order
.
form
.
form
-
items
{
.
hotel
-
order
.
form
.
form
-
items
{
display
:
flex
;
align
-
items
:
center
;
padding
:
22
rpx
15
rpx
;
...
...
@@ -883,30 +854,37 @@ import coupon from '@/components/coupon/index';
font
-
weight
:
500
;
color
:
#
303133
;
}
.
hotel
-
order
.
form
.
form
-
items
:
first
-
child
{
.
hotel
-
order
.
form
.
form
-
items
:
first
-
child
{
padding
:
10
rpx
15
rpx
20
rpx
15
rpx
;
}
.
hotel
-
order
.
form
.
form
-
items
.
label
{
.
hotel
-
order
.
form
.
form
-
items
.
label
{
width
:
130
rpx
;
font
-
size
:
28
rpx
;
font
-
weight
:
500
;
margin
-
right
:
57
rpx
;
flex
-
shrink
:
0
;
}
.
hotel
-
order
.
form
.
form
-
items
.
val
{
flex
:
1
;
.
hotel
-
order
.
form
.
form
-
items
.
val
{
flex
:
1
;
}
.
hotel
-
order
.
sheshi
{
.
hotel
-
order
.
sheshi
{
margin
-
top
:
50
rpx
;
}
.
hotel
-
order
.
sheshi
.
she
-
title
{
.
hotel
-
order
.
sheshi
.
she
-
title
{
font
-
size
:
28
rpx
;
font
-
weight
:
800
;
}
.
hotel
-
order
.
sheshi
.
she
-
content
{
.
hotel
-
order
.
sheshi
.
she
-
content
{
margin
-
top
:
24
rpx
;
}
.
hotel
-
order
.
sheshi
.
she
-
content
text
{
.
hotel
-
order
.
sheshi
.
she
-
content
text
{
font
-
size
:
24
rpx
;
font
-
weight
:
500
;
...
...
@@ -914,8 +892,9 @@ import coupon from '@/components/coupon/index';
line
-
height
:
40
rpx
;
margin
-
right
:
24
rpx
;
}
.
hotel
-
order
.
form
.
form
-
items
.
val
input
{
border
:
none
;
.
hotel
-
order
.
form
.
form
-
items
.
val
input
{
border
:
none
;
padding
:
0
;
margin
:
0
;
outline
:
none
;
...
...
@@ -929,54 +908,67 @@ import coupon from '@/components/coupon/index';
.
hotel
-
order
.
king
{
color
:
#
DFBE6E
!
important
;
}
.
hotel
-
order
.
f12
{
font
-
size
:
24
rpx
!
important
;
font
-
size
:
24
rpx
!
important
;
}
.
f11
{
font
-
size
:
22
rpx
!
important
;
font
-
size
:
22
rpx
!
important
;
}
.
hotel
-
order
.
f14
{
font
-
size
:
28
rpx
!
important
;
font
-
size
:
28
rpx
!
important
;
}
.
hotel
-
order
.
regular
{
font
-
weight
:
500
!
important
;
}
.
hotel
-
order
.
flex
{
.
hotel
-
order
.
flex
{
display
:
flex
;
align
-
items
:
center
;
}
.
hotel
-
order
.
empty
-
block
{
.
hotel
-
order
.
empty
-
block
{
height
:
20
rpx
;
background
:
#
ECF1F4
;
}
.
hotel
-
order
.
flex
-
wrap
{
.
hotel
-
order
.
flex
-
wrap
{
flex
-
wrap
:
wrap
;
}
.
hotel
-
order
.
o
-
head
{
.
hotel
-
order
.
o
-
head
{
padding
:
20
rpx
31
rpx
46
rpx
31
rpx
;
background
:
#
FFFFFF
;
box
-
shadow
:
0
px
2
rpx
15
rpx
0
px
rgba
(
76
,
76
,
76
,
0.13
);
border
-
radius
:
0
px
0
px
40
rpx
40
rpx
;
}
.
hotel
-
order
.
o
-
head
.
o
-
timer
{
.
hotel
-
order
.
o
-
head
.
o
-
timer
{
background
:
#
ECF1F4
;
border
-
radius
:
18
rpx
;
padding
:
30
rpx
30
rpx
;
}
.
hotel
-
order
.
o
-
head
.
o
-
timer
.
time
-
item
{
.
hotel
-
order
.
o
-
head
.
o
-
timer
.
time
-
item
{
font
-
weight
:
800
;
font
-
size
:
32
rpx
;
color
:
#
080
A09
;
}
.
hotel
-
order
.
o
-
head
.
o
-
timer
.
time
-
item
text
{
.
hotel
-
order
.
o
-
head
.
o
-
timer
.
time
-
item
text
{
margin
-
left
:
15
rpx
;
}
.
hotel
-
order
.
o
-
head
.
o
-
timer
.
time
-
itemZhi
{
.
hotel
-
order
.
o
-
head
.
o
-
timer
.
time
-
itemZhi
{
font
-
size
:
32
rpx
;
color
:
#
080
A09
;
padding
:
0
10
rpx
;
}
.
hotel
-
order
.
o
-
head
.
o
-
timer
.
timeline
{
.
hotel
-
order
.
o
-
head
.
o
-
timer
.
timeline
{
width
:
1
rpx
;
height
:
24
rpx
;
background
:
#
BCBCBC
;
...
...
@@ -984,29 +976,34 @@ import coupon from '@/components/coupon/index';
margin
-
left
:
18
rpx
;
margin
-
right
:
18
rpx
;
}
.
hotel
-
order
.
o
-
head
.
o
-
timer
.
time
-
split
{
.
hotel
-
order
.
o
-
head
.
o
-
timer
.
time
-
split
{
font
-
weight
:
800
;
font
-
size
:
32
rpx
;
text
-
align
:
center
;
}
.
hotel
-
order
.
o
-
head
.
room
-
name
{
.
hotel
-
order
.
o
-
head
.
room
-
name
{
font
-
weight
:
500
;
font
-
size
:
28
rpx
;
color
:
#
1
D1D20
;
}
.
hotel
-
order
.
o
-
head
.
room
-
remark
{
.
hotel
-
order
.
o
-
head
.
room
-
remark
{
font
-
weight
:
500
;
font
-
size
:
28
rpx
;
color
:
#
1
D1D20
;
flex
-
shrink
:
0
;
}
.
hotel
-
order
.
o
-
head
.
rule
{
.
hotel
-
order
.
o
-
head
.
rule
{
font
-
size
:
22
rpx
;
font
-
weight
:
500
;
color
:
#
6
E6E6E
;
margin
-
top
:
18
rpx
;
}
.
hotel
-
order
.
big
-
title
{
position
:
relative
;
}
...
...
@@ -1024,6 +1021,7 @@ import coupon from '@/components/coupon/index';
// bottom: 6rpx;
// z-index: 1;
}
.
hotel
-
order
.
big
-
title
text
{
font
-
size
:
34
rpx
;
font
-
weight
:
bold
;
...
...
@@ -1031,130 +1029,158 @@ import coupon from '@/components/coupon/index';
position
:
relative
;
z
-
index
:
2
;
}
.
o
-
head
-
title
{
.
o
-
head
-
title
{
font
-
weight
:
bold
;
font
-
size
:
32
rpx
;
color
:
#
080
A09
;
margin
-
bottom
:
20
rpx
;
}
.
o
-
detail
{
.
o
-
detail
{
font
-
weight
:
800
;
font
-
size
:
32
rpx
;
color
:
#
B99846
;
}
.
room
-
dateil
{
.
room
-
dateil
{
margin
-
top
:
3
rpx
;
}
.
roomline
{
.
roomline
{
width
:
1
rpx
;
height
:
24
rpx
;
background
:
#
BCBCBC
;
margin
-
left
:
14
rpx
;
margin
-
right
:
14
rpx
;
}
.
roomPrice
{
.
roomPrice
{
font
-
weight
:
500
;
font
-
size
:
28
rpx
;
color
:
#
1
D1D20
;
flex
-
shrink
:
0
;
}
.
visaProductTextBox
{
.
visaProductTextBox
{
padding
:
29
rpx
0
21
rpx
0
;
font
-
family
:
PingFang
SC
;
}
.
visaProductTitle
{
.
visaProductTitle
{
font
-
weight
:
800
;
font
-
size
:
32
rpx
;
}
.
visaProductTextL
{
.
visaProductTextL
{
font
-
size
:
35
rpx
;
font
-
weight
:
bold
;
}
.
visaProductTextR
{
.
visaProductTextR
{
font
-
size
:
20
rpx
;
margin
-
left
:
24
rpx
;
}
.
visaProduct_rColor
{
.
visaProduct_rColor
{
color
:
#
FF3166
;
}
.
addPnum
{
.
addPnum
{
padding
:
9
rpx
10
rpx
;
}
.
addPnumL
{
.
addPnumL
{
margin
-
right
:
17
rpx
;
}
.
addPnumR
{
.
addPnumR
{
margin
-
left
:
17
rpx
;
}
.
visaProductTetx
{
.
visaProductTetx
{
font
-
weight
:
bold
;
font
-
size
:
28
rpx
;
color
:
#
080
A09
;
}
.
form
-
itemsTime
{
.
form
-
itemsTime
{
font
-
weight
:
bold
;
font
-
size
:
28
rpx
;
color
:
#
080
A09
;
}
.
form
-
itemsL
text
{
.
form
-
itemsL
text
{
font
-
weight
:
bold
;
font
-
size
:
28
rpx
;
color
:
#
B99846
;
margin
-
right
:
26
rpx
;
}
.
CouponBox
{
.
CouponBox
{
margin
:
0
31
rpx
32
rpx
31
rpx
;
padding
:
18
rpx
34
rpx
35
rpx
34
rpx
;
background
:
#
fff
;
border
-
radius
:
18
rpx
;
}
.
PriceBox
{
.
PriceBox
{
margin
:
0
31
rpx
32
rpx
31
rpx
;
padding
:
18
rpx
34
rpx
35
rpx
34
rpx
;
background
:
#
fff
;
border
-
radius
:
18
rpx
;
}
.
PriceZaiXian
{
border
-
bottom
:
1
rpx
solid
#
F0F0F0
;
.
PriceZaiXian
{
border
-
bottom
:
1
rpx
solid
#
F0F0F0
;
}
.
PriceZaiXian
.
label
{
.
PriceZaiXian
.
label
{
font
-
weight
:
bold
;
}
.
hotel
-
order
.
form
.
form
-
items
.
PriceZaiXian
{
.
hotel
-
order
.
form
.
form
-
items
.
PriceZaiXian
{
padding
:
0
;
padding
-
top
:
15
rpx
;
padding
-
bottom
:
20
rpx
;
}
.
hotel
-
order
.
form
.
form
-
items
.
PriceMinXi
{
.
hotel
-
order
.
form
.
form
-
items
.
PriceMinXi
{
padding
:
0
;
padding
-
top
:
20
rpx
;
padding
-
bottom
:
30
rpx
;
}
.
PriceTole
{
.
PriceTole
{
color
:
#
BFB9B9
;
}
.
buyTispBox
{
.
buyTispBox
{
border
-
radius
:
18
rpx
;
background
:
#
fff
;
margin
:
0
31
rpx
27
rpx
31
rpx
;
padding
:
37
rpx
18
rpx
47
rpx
18
rpx
;
}
.
buyTispBox
.
big
-
title
{
.
buyTispBox
.
big
-
title
{
font
-
weight
:
800
;
font
-
size
:
32
rpx
;
color
:
#
080
A09
;
margin
-
bottom
:
37
rpx
;
}
.
buyTispBox
.
rule
{
.
buyTispBox
.
rule
{
font
-
weight
:
500
;
font
-
size
:
24
rpx
;
color
:
#
1
D1D20
;
line
-
height
:
42
rpx
;
}
.
LastNameBox
view
{
.
LastNameBox
view
{
margin
-
bottom
:
20
rpx
;
}
.
LastNameBox
view
:
last
-
child
{
.
LastNameBox
view
:
last
-
child
{
margin
-
bottom
:
0
;
}
<
/style>
\ No newline at end of file
utils/producttypeenum.js
View file @
37b33e72
import
EnumHelper
from
"./enumhelper.js"
import
ListProductTypeEnum
from
"./listProductType.js"
const
ProductTypeEnum
=
[
{
const
ProductTypeEnum
=
[{
value
:
1
,
desc
:
'机票产品'
},
...
...
@@ -41,7 +40,10 @@ const ProductTypeEnum = [
value
:
6
,
desc
:
'签证产品'
},
{
value
:
7
,
desc
:
'酒店产品'
},
]
const
mappingRules
=
[
...
...
@@ -68,7 +70,7 @@ const mappingListType = (value) => {
const
mappingListTypeTy
=
(
type
)
=>
{
let
val
=
ProductTypeEnum
.
findIndex
(
x
=>
{
return
x
.
value
==
Number
(
type
)
return
x
.
value
==
Number
(
type
)
})
return
ProductTypeEnum
[
val
]
}
...
...
@@ -79,4 +81,8 @@ const transProductEnum = (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