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
25a4d88e
Commit
25a4d88e
authored
Mar 03, 2025
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
酒店产品相关 布局
parent
43c3269a
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
2891 additions
and
51 deletions
+2891
-51
pages.json
pages.json
+20
-2
order.vue
pages/hotel/order.vue
+263
-49
orderInfor.vue
pages/hotel/orderInfor.vue
+1237
-0
orderdetails.vue
pages/hotel/orderdetails.vue
+1371
-0
No files found.
pages.json
View file @
25a4d88e
...
...
@@ -661,8 +661,8 @@
"path"
:
"description"
},
{
"path"
:
"order"
},
{
"path"
:
"detail"
,
},{
"path"
:
"detail"
,
//酒店详情
"enablePullDownRefresh"
:
true
,
"style"
:
{
"navigationStyle"
:
"custom"
,
...
...
@@ -671,6 +671,24 @@
"titlePenetrate"
:
"YES"
}
}
},{
"path"
:
"orderInfor"
,
//下单就到信息
"style"
:
{
"navigationStyle"
:
"custom"
,
"mp-alipay"
:
{
"transparentTitle"
:
"always"
,
"titlePenetrate"
:
"YES"
}
}
},
{
"path"
:
"orderdetails"
,
//酒店订单详情
"style"
:
{
"navigationStyle"
:
"custom"
,
"mp-alipay"
:
{
"transparentTitle"
:
"always"
,
"titlePenetrate"
:
"YES"
}
}
}
]
},
...
...
pages/hotel/order.vue
View file @
25a4d88e
...
...
@@ -15,7 +15,7 @@
<view>
{{
dayObj
.
day
?
dayObj
.
day
:
''
}}
晚
</view>
</view>
</view>
<view
class=
"o-detail"
>
详情
</view>
<view
class=
"o-detail"
@
click=
"goUrl"
>
详情
</view>
</view>
<view
class=
"room-dateil row items-center"
>
<view
class=
"room-name"
>
{{
HotelInfo
.
HotelName
?
HotelInfo
.
HotelName
:
''
}}
</view>
...
...
@@ -62,6 +62,7 @@
</view>
</view>
</view>
<view>
<view
class=
"form-items"
>
<view
class=
"label"
>
住客姓名
</view>
<view
class=
"val"
>
...
...
@@ -70,15 +71,21 @@
</view>
<view
class=
"form-items"
>
<view
class=
"label"
>
联系电话
</view>
<view
class=
"form-itemsL row"
@
click=
"showCountry=true"
>
<text>
+86
</text>
<!--'arrow-up':'arrow-down'-->
<u-icon
name=
"arrow-down"
color=
"#080A09"
size=
"20"
/>
</view>
<view
class=
"val"
>
<input
type=
"text"
v-model=
"orderMsg.ConsigneeMobile"
placeholder=
"输入电话号码"
/>
</view>
</view>
<view
class=
"form-items"
>
<view
class=
"label"
>
预计到店
</view>
<view
class=
"val flex
"
@
click=
"showtime=true"
>
<view
style=
"flex: 1;"
class=
"f14"
>
{{
orderMsg
.
ArrivalTime
}}
</view>
<u-icon
name=
"arrow"
color=
"#D9D9D9"
size=
"20"
/>
<view
class=
"val flex form-itemsTime
"
@
click=
"showtime=true"
>
<view
style=
"flex: 1;"
class=
"f14"
>
{{
orderMsg
.
ArrivalTime
}}
房间整晚保留
</view>
<!--
<u-icon
name=
"arrow"
color=
"#D9D9D9"
size=
"20"
/>
-->
</view>
</view>
<view
class=
"form-items"
>
...
...
@@ -88,24 +95,42 @@
</view>
</view>
</view>
<view
class=
"empty-block"
></view>
<view
style=
"padding:50rpx 40rpx"
>
</view>
<view
class=
"CouponBox"
>
<view
class=
"big-title"
>
<text>
优惠券
</text>
</view>
<view
style=
"margin-top: 20px;display: flex; align-items: center;"
>
<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
class=
"content"
style=
"color:grey"
v-else-if=
"couponList.length==0"
>
暂无优惠券
</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>
</view>
</view>
</view>
<view
class=
"PriceBox"
>
<view
class=
"big-title"
>
<text>
费用明细
</text>
<text>
订单金额
</text>
</view>
<view
class=
"form"
style=
"margin:
40
rpx 0;padding: 0;"
>
<view
class=
"form-items"
>
<view
class=
"form"
style=
"margin:
20rpx 0 15
rpx 0;padding: 0;"
>
<view
class=
"form-items
PriceZaiXian
"
>
<view
class=
"label"
>
在线支付
</view>
<view
class=
"val f14 regular"
style=
"text-align: right;"
>
<text
style=
"margin-right: 30rpx;"
>
{{
orderMsg
.
RoomNumber
}}
人
</text>
<text
style=
"margin-right: 30rpx;"
>
{{
orderMsg
.
RoomNumber
}}
间房
</text>
<text
class=
"red"
>
¥
{{
orderMsg
.
Final_Price
}}
</text>
</view>
</view>
<view
class=
"form-items"
style=
"border-bottom: none;"
>
<view
class=
"form-items
PriceMinXi
"
style=
"border-bottom: none;"
>
<view
class=
"label"
>
房费
明细
明细
</view>
</view>
<view
class=
"flex f12 grey"
style=
"margin-bottom:40rpx;"
v-for=
"(item,index) in priceList"
:key=
"index"
>
...
...
@@ -114,14 +139,19 @@
<text
v-if=
"index!=0"
>
{{
item
.
BreakfastTypeStr
}}
</text>
</view>
<view
style=
"text-align: right;"
v-if=
"index!=priceList.length-1"
>
{{
orderMsg
.
RoomNumber
}}
间 × ¥
{{
$utils
.
getretailer
()
==
true
?
item
.
B2BPrice
:
item
.
SalesPrice
}}
</view>
</view
>
<view
class=
"PriceTole row-sb-n"
>
<view>
合计
</view>
<view>
¥100
</view>
</view>
</view>
</view>
<view
class=
"empty-block"
></view>
<view>
<view
class=
"buyTispBox"
>
<view
class=
"big-title"
>
<text
class=
"
f12"
>
订房必知
</text>
<text
class=
"
"
>
购买说明
</text>
</view>
<view
class=
"rule"
>
<text
class=
"king"
>
此房间
...
...
@@ -131,6 +161,8 @@
<text>
订单需要等待酒店或供应商确认后生效,订单确认结果我们将会通知推送到您的微信,请您在下单时同意结果订阅,以便您能正常收到消息。
</text>
</view>
</view>
<view
style=
"height: 27rpx"
></view>
<!--
<view style="padding:50rpx 40rpx">
<view class="big-title">
<text>重要提醒</text>
...
...
@@ -141,7 +173,7 @@
<view>{{item.Content}}</view>
</view>
</view>
</view>
</view>
-->
</view>
</scroll-view>
<view
class=
"opera-box"
>
...
...
@@ -156,11 +188,24 @@
</view>
<u-picker
v-model=
"showtime"
mode=
"time"
@
confirm=
'confirm'
:params=
"params"
: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=
"price"
:list=
"couponList"
:current=
"useCouponIds"
@
close=
"closeCouponHandler"
:current-price=
"realCurrentPriceInfo"
:order=
"orderMsg"
></coupon>
</view>
</template>
<
script
>
import
coupon
from
'@/components/coupon/index'
;
export
default
{
components
:
{
coupon
},
data
()
{
return
{
order
:
{
...
...
@@ -208,6 +253,18 @@
EndDate
:
''
},
tipsText
:
''
,
showCountry
:
false
,
countrys
:[],
couponList
:
[],
showCoupon
:
false
,
price
:
0
,
useCouponIds
:
[],
realCurrentPriceInfo
:
{},
currentCoupon
:
{
discountMoney
:
0
},
showPz
:
false
,
pzCoupon
:
null
,
}
},
created
()
{
...
...
@@ -236,8 +293,105 @@
});
this
.
CalTotalPrice
();
this
.
getRoomPrice
();
this
.
GetCountryInfo
()
},
methods
:{
goUrl
(){
uni
.
navigateTo
({
url
:
'/pages/hotel/orderInfor'
})
},
showCouponHandler
()
{
this
.
showCoupon
=
this
.
couponList
.
length
>
0
;
},
closeCouponHandler
(
e
)
{
if
(
e
!=
-
1
)
{
this
.
useCouponIds
=
e
;
//叠加使用优惠券
let
TotalDiscountAmount
=
0
this
.
couponList
.
forEach
(
x
=>
{
let
findIndex
=
this
.
useCouponIds
.
findIndex
(
y
=>
x
.
id
==
y
)
if
(
findIndex
!=-
1
){
let
discountMoney
=
0
if
(
x
.
couponsType
==
1
){
discountMoney
=
x
.
denomination
}
else
{
discountMoney
=
(
parseFloat
(
this
.
price
)
*
(
1
-
parseFloat
(
x
.
denomination
/
10
)))
.
toFixed
(
2
)
}
TotalDiscountAmount
+=
discountMoney
}
})
if
(
TotalDiscountAmount
)
this
.
currentCoupon
.
discountMoney
=
TotalDiscountAmount
else
this
.
currentCoupon
.
discountMoney
=
0
}
else
{
this
.
currentCoupon
.
discountMoney
=
0
this
.
useCouponIds
=
[]
}
this
.
showCoupon
=
false
;
},
getUserCouponList
()
{
let
couponParams
=
{
"lineId"
:
''
,
//线路ID
"lineteamId"
:
0
,
//系列ID
"userId"
:
this
.
customer
.
accountId
,
"CouponsUseScope"
:
9
,
//特定使用平台(当地游=8 跟团游=2 小包团=10)
"isExpansion"
:
0
,
//是否启动膨胀金1-是
"CustomerType"
:
0
,
//客户类型 0-同行,1-直客
"TCID"
:
''
,
}
this
.
apipost
(
"coupon_post_GetUserCanUseCouponList"
,
couponParams
,
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
console
.
log
(
"coupon_post_GetUserCanUseCouponList_res"
,
res
);
this
.
couponList
=
res
.
data
this
.
calcPzCouponHandler
()
}
},
(
err
)
=>
{
console
.
log
(
"coupon_post_GetUserCanUseCouponList_err"
,
err
);
}
);
},
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
else
this
.
pzCoupon
=
x
x
.
realDenomination
=
x
.
denomination
x
.
denomination
=
x
.
expansionModel
.
denomination
}
})
this
.
showPz
=
this
.
pzCoupon
?
true
:
false
},
GetCountryInfo
(){
this
.
apipost
(
"GetCountryInfo_post"
,
{},
(
r
)
=>
{
for
(
let
i
=
0
;
i
<
r
.
data
.
phoneCountList
.
length
;
i
++
)
{
let
Count
=
r
.
data
.
phoneCountList
[
i
]
let
obj
=
{
...
Count
,
value
:
Count
.
ID
,
label
:
Count
.
Name
,
}
this
.
countrys
.
push
(
obj
)
}
})
},
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
.
RoomNumber
>
1
)
this
.
orderMsg
.
RoomNumber
--
;
...
...
@@ -434,27 +588,27 @@
}
.hotel-order
.form
{
margin-top
:
60
rpx
;
padding
:
0
45
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
{
margin-bottom
:
40
rpx
;
display
:
flex
;
align-items
:
center
;
padding-bottom
:
36
rpx
;
border-bottom
:
1px
solid
#f5f5f5
;
padding
:
22
rpx
15
rpx
;
font-size
:
28px
;
font-weight
:
500
;
color
:
#303133
;
}
.hotel-order
.form
.form-items
:
la
st-child
{
border-bottom
:
none
;
.hotel-order
.form
.form-items
:
fir
st-child
{
padding
:
10
rpx
15
rpx
20
rpx
15
rpx
;
}
.hotel-order
.form
.form-items
.label
{
width
:
112
rpx
;
font-size
:
28
rpx
;
font-weight
:
6
00
;
margin-right
:
60
rpx
;
font-weight
:
5
00
;
margin-right
:
57
rpx
;
flex-shrink
:
0
;
}
.hotel-order
.form
.form-items
.val
{
...
...
@@ -575,17 +729,17 @@
}
.hotel-order
.big-title
::before
{
display
:
block
;
width
:
71
rpx
;
height
:
12
rpx
;
background
:
#DFBE6E
;
border-radius
:
4
rpx
;
content
:
' '
;
//
display
:
block
;
//
width
:
71
rpx
;
//
height
:
12
rpx
;
//
background
:
#DFBE6E
;
//
border-radius
:
4
rpx
;
//
content
:
' '
;
position
:
absolute
;
left
:
0
;
bottom
:
6
rpx
;
z-index
:
1
;
//
position
:
absolute
;
//
left
:
0
;
//
bottom
:
6
rpx
;
//
z-index
:
1
;
}
.hotel-order
.big-title
text
{
font-size
:
34
rpx
;
...
...
@@ -621,7 +775,7 @@
color
:
#1D1D20
;
}
.visaProductTextBox
{
padding
:
3
9
rpx
0
21
rpx
0
;
padding
:
2
9
rpx
0
21
rpx
0
;
font-family
:
PingFang
SC
;
}
.visaProductTitle
{
...
...
@@ -653,4 +807,64 @@
font-size
:
28
rpx
;
color
:
#080A09
;
}
.form-itemsTime
{
font-weight
:
bold
;
font-size
:
28
rpx
;
color
:
#080A09
;
}
.form-itemsL
text
{
font-weight
:
bold
;
font-size
:
28
rpx
;
color
:
#B99846
;
margin-right
:
26
rpx
;
}
.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
{
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
.label
{
font-weight
:
bold
;
}
.hotel-order
.form
.form-items.PriceZaiXian
{
padding
:
0
;
padding-top
:
15
rpx
;
padding-bottom
:
20
rpx
;
}
.hotel-order
.form
.form-items.PriceMinXi
{
padding
:
0
;
padding-top
:
20
rpx
;
padding-bottom
:
30
rpx
;
}
.PriceTole
{
color
:
#BFB9B9
;
}
.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
{
font-weight
:
800
;
font-size
:
32
rpx
;
color
:
#080A09
;
margin-bottom
:
37
rpx
;
}
.buyTispBox
.rule
{
font-weight
:
500
;
font-size
:
24
rpx
;
color
:
#1D1D20
;
line-height
:
42
rpx
;
}
</
style
>
pages/hotel/orderInfor.vue
0 → 100644
View file @
25a4d88e
<
template
>
<view
class=
"hotel-detail"
>
<scroll-view
ref=
"scrollView"
scroll-y=
"true"
style=
"width: 100%; height: 100%"
@
scroll=
"scroll"
:scroll-top=
"scrollTop"
>
<view
class=
"media"
:style=
"
{ opacity: 100 - boxOption + '%' }"
@click="openPicture"
>
<u-swiper
:list=
"dataList.HotelImg"
:effect3d=
"false"
:height=
"545"
:interval=
"5000"
:border-radius=
"0"
name=
"Path"
v-if=
"active == 1"
></u-swiper>
<view
class=
"video-box"
v-if=
"active == 0"
>
<video
id=
"myVideo"
:src=
"detailData.VideoUrl"
style=
"width: 100%; height: 100%"
:controls=
"controls"
:show-center-play-btn=
"false"
:show-fullscreen-btn=
"false"
@
fullscreenchange=
"videoControl"
object-fit=
"fill"
></video>
<view
@
click=
"enlarge"
class=
"play-btn"
>
<!-- 播放按钮 -->
<image
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Test/Upload/Goods/1616471847000_345.png"
style=
"width: 37rpx; height: 44rpx"
mode=
""
></image>
</view>
</view>
<!-- #ifdef MP-WEIXIN -->
<view
@
click=
"goback"
:style=
"[titleStyle,
{ opacity: '100% !important' }]"
style="position: fixed; top: 0; left: 0; padding-left: 6rpx"
>
<u-icon
name=
"arrow-left"
size=
"44"
color=
"#FFF"
style=
"margin-top: 22rpx"
></u-icon>
</view>
<!-- #endif -->
<view
class=
"orderIforDiZhi"
>
<view
class=
"orderIforDiZhiL"
>
成田国际花园酒店
</view>
<view
class=
"orderIforDiZhiR row"
>
<view
class=
"orderIforDiZhiRImg"
>
<img
style=
"width: 23rpx;height:28rpx;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638766148323678002.png"
/>
</view>
<view
class=
"orderIforDiZhiRText"
>
95 Cheongpa-ro 20-gil, 龙山区, 首尔, 首尔(及其周边地区),韩国
</view>
</view>
</view>
</view>
<view
class=
"hotel-title"
:style=
"[titleStyle]"
>
<view
@
click=
"goback"
>
<!-- #ifdef MP-WEIXIN -->
<u-icon
name=
"arrow-left"
size=
"44"
></u-icon>
<!-- #endif -->
</view>
<view
style=
"flex: 1; margin-left: 30rpx; text-align: left"
class=
"name-ali"
>
{{
dataList
.
HotelName
}}
</view
>
</view>
<view
class=
"ReservationInforBox"
>
<view
class=
"ReservationInforTitle"
>
预定信息
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
入住时间
</view>
<view
class=
"ResInforR"
>
2025-02-05(周二)
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
离店日期
</view>
<view
class=
"ResInforR"
>
2025-02-05(周二)
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
入住时间
</view>
<view
class=
"ResInforR"
>
共 1晚
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
房型
</view>
<view
class=
"ResInforR"
>
高级双床房(1间)
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
餐型
</view>
<view
class=
"ResInforR"
>
含早餐 x2份
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
窗户
</view>
<view
class=
"ResInforR"
>
有窗
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
人数
</view>
<view
class=
"ResInforR"
>
最多入住2人
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
面积
</view>
<view
class=
"ResInforR"
>
32㎡
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
网络
</view>
<view
class=
"ResInforR"
>
WIFI
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
楼层数
</view>
<view
class=
"ResInforR"
>
1-20
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
取消政策
</view>
<view
class=
"ResInforR"
>
不可修改
</view>
</view>
</view>
<view
class=
"ReservationInforBox"
>
<view
class=
"ReservationInforTitle"
>
立即确认
</view>
<view
class=
"ResInforText ResInforTtisp row-sb-n"
>
<view
class=
"ResInforTisp"
>
订单提交后,酒店将立即确认您的订单,保障您的住房需求。
</view>
</view>
</view>
<view
style=
"height: 36rpx;"
></view>
</scroll-view>
<u-popup
v-model=
"showTimePopup"
mode=
"bottom"
border-radius=
"20"
length=
"85%"
:safe-area-inset-bottom=
"true"
>
<view
style=
"
width: 100%;
height: 100%;
display: flex;
flex-direction: column;"
>
<view
style=
"flex: 1; width: 100%; height: 1rpx"
>
<canlendar
@
finish=
"chosenDateResult"
title=
"日期和人数"
></canlendar>
</view>
<view
style=
"background: #ecf1f4; padding: 20rpx 0;margin-bottom: 80rpx;"
>
<view
class=
"row line-flex"
style=
"padding: 30rpx; background: #fff"
>
<text
style=
"font-size: 28rpx; color: #111; font-weight: 500"
>
房间
</text>
<text
style=
"
font-size: 22rpx;
color: #999;
margin-left: 30rpx;
flex: 1;
"
></text>
<u-number-box
size=
"28"
:min=
"1"
:max=
"100000"
v-model=
"searchObj.rooms"
></u-number-box>
</view>
<view
class=
"row line-flex"
style=
"padding: 30rpx; background: #fff"
>
<text
style=
"font-size: 28rpx; color: #111; font-weight: 500"
>
成人
</text>
<text
style=
"
font-size: 22rpx;
color: #999;
margin-left: 30rpx;
flex: 1;
"
>
18周岁以上
</text>
<u-number-box
size=
"28"
:min=
"1"
:max=
"100000"
v-model=
"searchObj.adultsNumber"
@
change=
"crChange"
></u-number-box>
</view>
<view
class=
"row line-flex"
style=
"padding: 30rpx; background: #fff"
>
<text
style=
"font-size: 28rpx; color: #111; font-weight: 500"
>
儿童(占床)
</text>
<text
style=
"
font-size: 22rpx;
color: #999;
margin-left: 30rpx;
flex: 1;
"
>
2-18周岁(不含)
</text>
<u-number-box
size=
"28"
:min=
"0"
:max=
"100000"
v-model=
"searchObj.childrenNumberZC"
@
change=
"etChange"
></u-number-box>
</view>
</view>
</view>
</u-popup>
</view>
</
template
>
<
script
>
import
roomGood
from
"./components/room-good.vue"
;
import
nearGood
from
"./components/near-good.vue"
;
import
recommedHotel
from
"./components/recommed-hotel.vue"
;
import
canlendar
from
"./components/time/index.vue"
;
import
hotelRoom
from
"./components/hotelRoom.vue"
;
import
hotelInfor
from
"./components/hotelInfor.vue"
;
import
hotelPolicy
from
"./components/hotelPolicy.vue"
;
import
hotelFacilities
from
"./components/hotelFacilities.vue"
;
export
default
{
components
:
{
roomGood
,
nearGood
,
recommedHotel
,
canlendar
,
hotelInfor
,
hotelPolicy
,
hotelFacilities
,
hotelRoom
,
},
data
()
{
return
{
imgsList
:
[],
id
:
0
,
typeList
:
[
{
Id
:
0
,
Name
:
"视频"
,
},
{
Id
:
1
,
Name
:
"图片"
,
},
],
boxOption
:
0
,
titleStyle
:
{
opacity
:
0
,
},
mainColor
:
""
,
showTimePopup
:
false
,
controls
:
false
,
videoUrl
:
"https://video.c-ctrip.com/videos/230i1r000001hxb2mEEE4.mp4"
,
active
:
1
,
islike
:
false
,
nearbyType
:
0
,
searchObj
:
{
date
:
{},
},
roomMsg
:
{
HotelId
:
0
,
StartDate
:
""
,
EndDate
:
""
,
},
day
:
0
,
threeLevelList
:
[
{
name
:
"单人床"
,
id
:
1
,
isCheck
:
0
,
},
{
name
:
"大床房"
,
id
:
2
,
isCheck
:
0
,
},
{
name
:
"双床房"
,
id
:
3
,
isCheck
:
0
,
},
{
name
:
"含早餐"
,
id
:
4
,
isCheck
:
0
,
},
{
name
:
"可取消"
,
id
:
5
,
isCheck
:
0
,
},
],
RoomList
:
[],
//可过滤房间
dataList
:
{},
//数据
isShowAll
:
false
,
//显示全部
HotelArr
:
[],
//推荐酒店
searchObj
:
{},
dayObj
:
{},
hotelData
:
{},
//传递到房间预订组件
startDay
:
""
,
endDay
:
""
,
Up
:
0
,
StarImgs
:
[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/hotel3stars.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/hotel4stars.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/hotel5stars.png'
,
],
openImg
:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638762717498946531.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638762717498917358.png'
],
optionsTitle
:
[
"房型"
,
"床型"
,
"餐食"
],
hotelFacilities
:
[
{
Name
:
'酒店信息'
,
ID
:
1
,
val
:
'hotelInfor'
,
top
:
0
,},
{
Name
:
'酒店政策'
,
ID
:
2
,
val
:
'hotelPolicy'
,
top
:
0
,},
{
Name
:
'设施服务'
,
ID
:
3
,
val
:
'hotelFacilities'
,
top
:
0
,},
],
current
:
1
,
scrollTop
:
100
,
old
:{
scrollTop
:
0
}
};
},
created
()
{
this
.
Up
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserPageType
:
0
;
},
onLoad
(
options
)
{
this
.
id
=
options
.
id
;
this
.
roomMsg
.
HotelId
=
options
.
id
;
let
that
=
this
;
uni
.
getSystemInfo
({
success
(
res
)
{
that
.
titleStyle
=
{
height
:
"45px"
,
paddingTop
:
`
${
res
.
statusBarHeight
}
px`
,
opacity
:
"0"
,
};
},
});
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
if
(
options
.
dayObj
)
{
var
tempDay
=
JSON
.
parse
(
options
.
dayObj
);
this
.
roomMsg
.
StartDate
=
tempDay
.
start
;
this
.
roomMsg
.
EndDate
=
tempDay
.
end
;
this
.
startDay
=
tempDay
.
startDay
;
this
.
endDay
=
tempDay
.
endDay
;
this
.
day
=
tempDay
.
day
;
this
.
dayObj
=
tempDay
;
}
else
{
let
d1
=
new
Date
();
let
d
=
new
Date
();
let
d2
=
new
Date
(
d
.
setDate
(
d
.
getDate
()
+
1
));
let
startWeek
=
"周"
+
"日一二三四五六"
.
charAt
(
new
Date
().
getDay
());
let
endWeek
=
"周"
+
"日一二三四五六"
.
charAt
(
new
Date
().
getDay
()
+
1
);
let
month1
=
d1
.
getMonth
()
+
1
;
let
day1
=
d1
.
getDate
();
let
Month1
=
month1
>
9
?
month1
:
'0'
+
month1
;
let
Day1
=
day1
>
9
?
day1
:
'0'
+
day1
;
let
month2
=
d2
.
getMonth
()
+
1
;
let
day2
=
d2
.
getDate
();
let
Month2
=
month2
>
9
?
month2
:
'0'
+
month2
;
let
Day2
=
day2
>
9
?
day2
:
'0'
+
day2
;
var
obj
=
{
start
:
`
${
d1
.
getFullYear
()}
-
${
Month1
}
-
${
Day1
}
`
,
end
:
`
${
d2
.
getFullYear
()}
-
${
Month2
}
-
${
Day2
}
`
,
startDay
:
`
${
Month1
}
-
${
Day1
}
`
,
endDay
:
`
${
Month2
}
-
${
Day2
}
`
,
day
:
1
,
startWeek
:
startWeek
,
endWeek
:
endWeek
,
};
this
.
roomMsg
.
StartDate
=
obj
.
start
;
this
.
roomMsg
.
EndDate
=
obj
.
end
;
this
.
startDay
=
obj
.
startDay
;
this
.
endDay
=
obj
.
endDay
;
this
.
day
=
obj
.
day
;
this
.
dayObj
=
obj
;
}
if
(
this
.
id
>
0
)
{
this
.
getHotelDetail
(
this
.
id
);
}
if
(
options
.
searchObj
)
{
this
.
searchObj
=
JSON
.
parse
(
options
.
searchObj
);
}
this
.
getRecomHotel
();
},
methods
:
{
goFacil
(
item
){
this
.
current
=
item
.
ID
;
this
.
scrollTop
=
this
.
old
.
scrollTop
this
.
$nextTick
(
function
()
{
this
.
scrollTop
=
item
.
top
});
},
openTime
()
{
this
.
showTimePopup
=
true
;
},
etChange
(
e
){
this
.
searchObj
.
childrenNumberZC
=
e
.
value
;
this
.
peopleChange
()
},
crChange
(
e
){
this
.
searchObj
.
adultsNumber
=
e
.
value
;
this
.
peopleChange
()
},
peopleChange
(){
this
.
searchObj
.
peoples
=
this
.
searchObj
.
adultsNumber
+
this
.
searchObj
.
childrenNumberZC
console
.
log
(
this
.
searchObj
.
peoples
,
'人数'
)
},
//获取推荐酒店
getRecomHotel
()
{
this
.
searchObj
.
HotelId
=
this
.
id
;
this
.
request2
(
{
url
:
"/api/Hotel/AppGetHotelPage"
,
data
:
this
.
searchObj
,
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
// console.log(res, '推荐酒店');
this
.
HotelArr
=
[];
let
tempHotel
=
res
.
data
.
pageData
;
tempHotel
.
forEach
((
x
)
=>
{
if
(
this
.
HotelArr
.
length
<
2
)
{
this
.
HotelArr
.
push
(
x
);
}
});
}
}
);
},
goMap
(
name
,
lon
,
lat
)
{
let
newLon
=
parseFloat
(
lon
);
let
newLat
=
parseFloat
(
lat
);
uni
.
openLocation
({
latitude
:
newLat
,
longitude
:
newLon
,
scale
:
18
,
name
:
name
,
address
:
name
,
success
:
(
res
)
=>
{},
fail
:
(
err
)
=>
{},
});
},
openPicture
()
{
let
imgObj
=
JSON
.
stringify
(
this
.
dataList
.
HotelImg
);
uni
.
navigateTo
({
url
:
"/pages/hotel/picture?imgObj="
+
imgObj
,
});
},
openDescription
()
{
let
hotelObj
=
JSON
.
stringify
({
id
:
this
.
id
,
start
:
this
.
dayObj
.
start
,
end
:
this
.
dayObj
.
end
,
});
uni
.
navigateTo
({
url
:
"/pages/hotel/description?hotelObj="
+
encodeURIComponent
(
hotelObj
),
});
},
chosenDateResult
(
obj
)
{
this
.
roomMsg
.
StartDate
=
obj
.
start
;
this
.
roomMsg
.
EndDate
=
obj
.
end
;
this
.
startDay
=
obj
.
startDay
;
this
.
endDay
=
obj
.
endDay
;
this
.
day
=
obj
.
day
;
this
.
getRoomType
();
this
.
dayObj
=
obj
;
this
.
showTimePopup
=
false
;
},
//切换日期获取房型
getRoomType
()
{
this
.
request2
(
{
url
:
"/api/Hotel/GetHotelRoom"
,
data
:
this
.
roomMsg
,
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
RoomList
=
res
.
data
.
RoomList
;
}
}
);
},
formatMonthDay
(
str
)
{
let
temp
=
str
.
split
(
"-"
);
// temp[0] = temp[0] > 9 ? temp[0] : "0" + temp[0];
// temp[1] = temp[1] > 9 ? temp[1] : "0" + temp[1];
return
`
${
temp
[
0
]}
月
${
temp
[
1
]}
日`
;
},
getMonth
(
date
)
{
let
m
=
date
.
getMonth
()
+
1
;
return
m
>
9
?
m
:
"0"
+
m
;
},
getDay
(
date
)
{
let
d
=
date
.
getDate
();
return
d
>
9
?
d
:
"0"
+
d
;
},
getWeek
(
date
)
{
var
weekArray
=
new
Array
(
"日"
,
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
);
var
week
=
weekArray
[
new
Date
(
date
).
getDay
()];
//注意此处必须是先new一个Date
return
"周"
+
week
;
},
changeNearbyType
(
t
)
{
this
.
nearbyType
=
t
;
},
//显示全部
getAllRoom
()
{
this
.
isShowAll
=
!
this
.
isShowAll
;
if
(
this
.
isShowAll
)
{
this
.
threeLevelList
.
forEach
((
x
)
=>
{
x
.
isCheck
=
1
;
});
this
.
RoomList
=
this
.
dataList
.
RoomList
;
}
else
{
this
.
threeLevelList
.
forEach
((
x
)
=>
{
x
.
isCheck
=
0
;
});
}
},
//点击过滤房间
changeRoomType
(
obj
)
{
if
(
obj
.
isCheck
==
0
)
{
obj
.
isCheck
=
1
;
}
else
{
obj
.
isCheck
=
0
;
}
this
.
RoomList
=
[];
let
num
=
0
;
this
.
threeLevelList
.
forEach
((
x
)
=>
{
if
(
x
.
isCheck
==
1
)
{
num
++
;
this
.
dataList
.
RoomList
.
forEach
((
y
)
=>
{
if
(
x
.
id
==
1
&&
y
.
BedType
==
1
)
{
this
.
RoomList
.
push
(
y
);
}
if
(
x
.
id
==
2
&&
y
.
BedType
==
2
)
{
this
.
RoomList
.
push
(
y
);
}
if
(
x
.
id
==
3
&&
y
.
BedType
==
3
)
{
this
.
RoomList
.
push
(
y
);
}
if
(
x
.
id
==
4
&&
y
.
BreakfastType
!=
4
)
{
this
.
RoomList
.
push
(
y
);
}
if
(
x
.
id
==
5
&&
y
.
IsCancel
==
2
)
{
this
.
RoomList
.
push
(
y
);
}
});
}
});
if
(
num
==
this
.
threeLevelList
.
length
)
{
this
.
isShowAll
=
true
;
}
else
{
this
.
isShowAll
=
false
;
}
if
(
num
==
0
)
{
this
.
RoomList
=
this
.
dataList
.
RoomList
;
}
},
changeLike
()
{
this
.
islike
=
!
this
.
islike
;
},
previewImage
(
i
)
{
uni
.
previewImage
({
urls
:
this
.
imgsList
,
current
:
i
,
longPressActions
:
{
itemList
:
[
"发送给朋友"
,
"保存图片"
,
"收藏"
],
success
:
function
(
data
)
{},
fail
:
function
(
err
)
{
// console.log(err.errMsg);
},
},
});
},
scroll
(
e
)
{
this
.
old
.
scrollTop
=
e
.
detail
.
scrollTop
this
.
boxOption
=
Math
.
floor
((
e
.
detail
.
scrollTop
-
50
)
/
1.5
);
this
.
titleStyle
.
opacity
=
e
.
detail
.
scrollTop
-
100
<
0
?
0
:
Math
.
floor
(
e
.
detail
.
scrollTop
-
100
)
/
100
>
1
?
1
:
Math
.
floor
(
e
.
detail
.
scrollTop
-
100
)
/
100
;
this
.
$forceUpdate
();
},
enlarge
(
file
)
{
// 全屏
this
.
videoContext
=
uni
.
createVideoContext
(
"myVideo"
);
this
.
videoContext
.
requestFullScreen
({
direction
:
0
,
});
},
videoControl
(
e
)
{
if
(
e
.
detail
.
fullScreen
==
false
)
{
this
.
videoContext
.
stop
();
this
.
controls
=
false
;
}
else
{
this
.
videoContext
.
play
();
this
.
controls
=
true
;
}
},
goback
()
{
uni
.
navigateBack
({
delta
:
1
,
});
},
changeHandler
(
i
)
{
this
.
active
=
i
;
},
//获取酒店详情
getHotelDetail
(
id
)
{
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
.
HotelName
=
this
.
dataList
.
HotelName
;
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
//分享朋友圈
onShareTimeline
()
{
let
uid
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserId
:
0
;
if
(
uid
==
0
)
{
uid
=
uni
.
getStorageSync
(
"pid"
)
?
uni
.
getStorageSync
(
"pid"
).
pid
:
0
;
}
let
SmallShopId
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
SmallShopId
:
0
;
if
(
SmallShopId
==
0
)
{
//如果微店id为0 去找所属微店id
SmallShopId
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserSmallShopId
:
0
;
}
let
title
=
this
.
dataList
.
HotelName
?
this
.
dataList
.
HotelName
:
"帖子"
;
let
imageUrl
=
this
.
dataList
.
HotelImg
&&
this
.
dataList
.
HotelImg
.
length
>
0
?
this
.
dataList
.
HotelImg
[
0
]
:
""
;
let
id
=
this
.
id
;
return
{
title
:
title
,
query
:
"id="
+
this
.
id
+
"&user_id="
+
uid
+
"&SmallShopId="
+
SmallShopId
+
"&Up="
+
this
.
Up
+
"&JumpType=18"
+
"&dayObj="
+
JSON
.
stringify
(
this
.
dayObj
)
+
"&searchObj="
+
JSON
.
stringify
(
this
.
searchObj
),
imageUrl
:
imageUrl
,
};
},
//分享给朋友
onShareAppMessage
(
res
)
{
let
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
let
uid
=
u
.
UserId
?
u
.
UserId
:
0
;
if
(
uid
==
0
)
{
uid
=
uni
.
getStorageSync
(
"pid"
)
?
uni
.
getStorageSync
(
"pid"
).
pid
:
0
;
}
let
SmallShopId
=
u
.
SmallShopId
?
u
.
SmallShopId
:
0
;
if
(
SmallShopId
==
0
)
{
//如果微店id为0 去找所属微店id
SmallShopId
=
u
.
UserSmallShopId
?
u
.
UserSmallShopId
:
0
;
}
return
{
title
:
this
.
dataList
.
HotelName
?
this
.
dataList
.
HotelName
:
"帖子"
,
path
:
"/pages/index/index?id="
+
this
.
id
+
"&user_id="
+
uid
+
"&SmallShopId="
+
SmallShopId
+
"&Up="
+
this
.
Up
+
"&JumpType=18"
+
"&dayObj="
+
JSON
.
stringify
(
this
.
dayObj
)
+
"&searchObj="
+
JSON
.
stringify
(
this
.
searchObj
),
imageUrl
:
this
.
dataList
.
HotelImg
&&
this
.
dataList
.
HotelImg
.
length
>
0
?
this
.
dataList
.
HotelImg
[
0
]
:
""
,
};
},
// #endif
},
};
</
script
>
<
style
scoped
>
@import
url("@/asset/css/flex.css")
;
.hotel-detail
{
height
:
100vh
;
overflow
:
hidden
;
width
:
100vw
;
font-family
:
"pingfang"
;
background
:
#F3F3F3
;
}
.hotel-detail
.flex
{
display
:
flex
;
align-items
:
center
;
}
.hotel-detail
.f12
{
font-size
:
24
rpx
!important
;
}
.hotel-detail
.king
{
width
:
44
rpx
;
height
:
44
rpx
;
border-radius
:
50%
;
overflow
:
hidden
;
background
:
rgba
(
255
,
255
,
255
,
0.2
);
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
position
:
relative
;
}
.hotel-detail
.regular
{
font-weight
:
500
!important
;
}
.hotel-detail
.hotel-content
{
position
:
relative
;
z-index
:
2
;
top
:
-110
rpx
;
}
.hotel-detail
.hotel-content
.date-box
{
margin
:
30
rpx
0
;
background
:
#ecf1f4
;
border-radius
:
16
rpx
;
padding
:
25
rpx
;
justify-content
:
space-between
;
}
.hotel-detail
.hotel-content
.date-box
.hr-line
{
width
:
24
rpx
;
height
:
4
rpx
;
background
:
#222
;
margin-right
:
24
rpx
;
}
.hotel-detail
.hotel-content
.date-box
.ver-line
{
width
:
1px
;
height
:
49
rpx
;
background
:
#a8a8a8
;
opacity
:
0.3
;
margin-right
:
24
rpx
;
}
.hotel-detail
.hotel-content
.date-box
.date
{
font-size
:
24
rpx
;
font-weight
:
bold
;
color
:
#111111
;
margin-right
:
24
rpx
;
}
.hotel-detail
.hotel-content
.date-box
.date
.date-week
{
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#6e6e6e
;
margin-left
:
18
rpx
;
}
.hotel-detail
.hotel-content
.hotel-more-info
{
width
:
140
rpx
;
height
:
60
rpx
;
line-height
:
60
rpx
;
background
:
#ffffff
;
border
:
1px
solid
#111111
;
border-radius
:
8
rpx
;
margin
:
0
auto
;
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#1f1f1f
;
text-align
:
center
;
}
.hotel-detail
.empty-block
{
height
:
20
rpx
;
background-color
:
#ecf1f4
;
}
.hotel-detail
.hotel-content
.detail-box
{
padding
:
33
rpx
30
rpx
0
30
rpx
;
}
.hotel-detail
.hotel-content
.detail-box
.nearby-type
{
padding
:
0
16
rpx
;
height
:
40
rpx
;
line-height
:
40
rpx
;
background
:
#fff
;
border-radius
:
20
rpx
;
margin-right
:
10
rpx
;
font-size
:
28
rpx
;
font-weight
:
500
;
color
:
#1f1f1f
;
}
.hotel-detail
.hotel-content
.detail-box
.nearby-type.active
{
color
:
#dfbe6e
;
background
:
rgba
(
223
,
190
,
110
,
0.2
);
}
.hotel-detail
.hotel-content
.title-style-one
{
font-weight
:
500
;
font-size
:
24
rpx
;
color
:
#080A09
;
line-height
:
43
rpx
;
text-indent
:
21
rpx
;
}
.hotel-detail
.hotel-content
.title-style-one
item-title
{
line-height
:
36
rpx
;
}
.hotel-detail
.hotel-content
.title-style-one
.item-content
{
color
:
#B99846
;
margin-left
:
5
rpx
;
line-height
:
36
rpx
;
}
.title-style-one
li
{
margin-bottom
:
5
rpx
;
}
.hotel-detail
.hotel-content
.big-title
{
position
:
relative
;
font-size
:
32
rpx
;
font-weight
:
bold
;
margin-bottom
:
35
rpx
;
}
.hotel-detail
.hotel-content
.big-title
::before
{
display
:
block
;
width
:
18
rpx
;
height
:
18
rpx
;
background
:
#E2C27A
;
border-radius
:
5
rpx
;
content
:
" "
;
position
:
absolute
;
left
:
0
;
bottom
:
-4
rpx
;
z-index
:
1
;
}
.hotel-detail
.hotel-content
.big-title
text
{
font-size
:
34
rpx
;
font-weight
:
bold
;
color
:
#1f1f1f
;
position
:
relative
;
z-index
:
2
;
}
.hotel-detail
.hotel-content
.hotel-base
.hotel-room
.room-type
{
/* padding:10rpx 30rpx; */
display
:
flex
;
align-items
:
center
;
overflow-x
:
auto
;
flex-wrap
:
nowrap
;
}
.hotel-detail
.hotel-content
.hotel-base
.room-list
{
padding-top
:
40
rpx
;
}
.hotel-detail
.hotel-content
.hotel-base
.hotel-room
.room-type
.item
{
padding
:
16
rpx
30
rpx
;
background
:
#ecf1f4
;
border-radius
:
8
rpx
;
margin-right
:
26
rpx
;
font-size
:
22
rpx
;
color
:
#999999
;
font-weight
:
400
;
flex-shrink
:
0
;
}
.hotel-detail
.hotel-content
.hotel-base
.hotel-room
.room-type
.item.active
{
background
:
#111111
;
color
:
#ffffff
;
}
.hotel-detail
.hotel-content
.hotel-base
.hotel-room
.room-type
.item
:last-child
{
margin-right
:
0
;
}
.hotel-detail
.hotel-content
.hotel-base
{
/* position: relative;
top: -140rpx; */
border-top-left-radius
:
60
rpx
;
border-top-right-radius
:
60
rpx
;
background
:
url(https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/hoteldetailbj.png)
no-repeat
#F3F3F3
;
background-size
:
100%
auto
;
padding
:
39
rpx
0
44
rpx
0
;
}
.location
{
display
:
flex
;
align-items
:
center
;
}
.location
.loc-left
{
width
:
1px
;
flex
:
1
;
}
.location
.loc-left
.loc-name
{
font-size
:
28
rpx
;
font-weight
:
800
;
color
:
#111111
;
display
:
flex
;
align-items
:
center
;
margin-bottom
:
20
rpx
;
}
.location
.loc-left
.loc-remark
{
font-size
:
22
rpx
;
font-weight
:
500
;
color
:
#6e6e6e
;
line-height
:
34
rpx
;
}
.location
.loc-right
{
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#111111
;
display
:
flex
;
align-items
:
center
;
}
.hotel-detail
.hotel-content
.hotel-base
.head
{
display
:
flex
;
align-items
:
center
;
margin-bottom
:
40
rpx
;
}
.hotel-detail
.hotel-content
.hotel-base
.head
.hotel-name
{
font-size
:
36
rpx
;
font-weight
:
800
;
color
:
#111111
;
}
.hotel-detail
.hotel-content
.hotel-base
.head
.hotel-tag
{
font-size
:
22
rpx
;
font-weight
:
500
;
color
:
#6e6e6e
;
}
.hotel-Opening
{
font-weight
:
500
;
font-size
:
24
rpx
;
color
:
#B99846
;
margin-right
:
31
rpx
;
margin-bottom
:
20
rpx
;
display
:
inline-block
;
}
.hotel-tagText
{
background
:
#FFFFFF
;
border-radius
:
4
rpx
;
border
:
1
rpx
solid
#B99846
;
color
:
#B99846
;
text-align
:
center
;
margin-right
:
8
rpx
;
margin-bottom
:
20
rpx
;
height
:
34
rpx
;
line-height
:
26
rpx
;
padding
:
0
12
rpx
;
display
:
inline-block
;
}
.hotel-detail
.hotel-content
.hotel-base
.head
.op-box
image
{
width
:
58
rpx
;
height
:
58
rpx
;
}
.hotel-detail
.hotel-content
.hotel-base
.shebei
{
padding
:
34
rpx
0
;
margin-bottom
:
34
rpx
;
border-bottom
:
1px
solid
rgba
(
0
,
0
,
0
,
0.1
);
display
:
flex
;
align-items
:
center
;
}
.hotel-detail
.hotel-content
.hotel-base
.shebei
.sb-left
{
width
:
1px
;
flex
:
1
;
/* display: flex; */
align-items
:
center
;
display
:
-webkit-box
;
overflow
:
auto
;
margin-right
:
20
rpx
;
}
.hotel-detail
.hotel-content
.hotel-base
.shebei
.sb-left
.sb-item
{
padding
:
7
rpx
13
rpx
;
background
:
#ecf1f4
;
border-radius
:
4
rpx
;
font-size
:
22
rpx
;
font-weight
:
500
;
color
:
#111111
;
margin-right
:
10
rpx
;
}
.hotel-detail
.hotel-content
.hotel-base
.shebei
.sb-right
{
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#111111
;
display
:
flex
;
align-items
:
center
;
}
.hotel-detail
.hotel-title
{
line-height
:
45px
!important
;
font-size
:
16px
;
text-align
:
center
;
position
:
fixed
;
left
:
0
;
top
:
0
;
width
:
100%
;
color
:
#111
;
box-sizing
:
content-box
;
z-index
:
5
;
display
:
flex
;
align-items
:
center
;
background-color
:
#f6f6f6
;
padding-left
:
6
rpx
;
}
.hotel-detail
.media
{
position
:
relative
;
z-index
:
1
;
background
:
#fff
;
box-shadow
:
0
rpx
14
rpx
40
rpx
0
rpx
rgba
(
76
,
76
,
76
,
0.06
);
border-radius
:
0
rpx
0
rpx
40
rpx
40
rpx
;
overflow
:
hidden
;
}
.hotel-detail
.media
.play-btn
{
position
:
absolute
;
left
:
50%
;
top
:
50%
;
margin-top
:
-49
rpx
;
margin-left
:
-49
rpx
;
width
:
98
rpx
;
height
:
98
rpx
;
border-radius
:
20
rpx
;
background-color
:
rgba
(
255
,
255
,
255
,
0.4
);
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.hotel-detail
.media
.video-box
{
background-color
:
#111
;
height
:
545
rpx
;
position
:
relative
;
}
.hotel-detail
.media
.type-box
{
width
:
100px
;
height
:
50
rpx
;
position
:
absolute
;
background-color
:
rgba
(
255
,
255
,
255
,
0.6
);
border-radius
:
50
rpx
;
left
:
50%
;
bottom
:
80px
;
margin-left
:
-50px
;
}
.hotel-detail
.media
.media-info
.type-img-box
{
background-color
:
rgba
(
255
,
255
,
255
,
0.5
);
color
:
#fff
;
display
:
flex
;
align-items
:
center
;
height
:
96
rpx
;
width
:
96
rpx
;
padding
:
8
rpx
;
border-radius
:
12
rpx
;
position
:
relative
;
}
.hotel-detail
.media
.media-info
.type-img-box
image
{
height
:
80
rpx
;
width
:
80
rpx
;
border-radius
:
12
rpx
;
opacity
:
0.5
;
}
.hotel-detail
.media
.media-info
.type-img-box
.content
{
position
:
absolute
;
left
:
0
;
top
:
0
;
right
:
0
;
bottom
:
0
;
text-align
:
center
;
font-size
:
20
rpx
;
color
:
#fff
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
center
;
justify-items
:
center
;
}
.hotel-detail
.media
.media-info
.type-img-box
text
{
font-size
:
22
rpx
;
font-family
:
pingfang
;
margin-left
:
6
rpx
;
}
.hotel-detail
.media
.media-info
{
position
:
absolute
;
background-color
:
rgba
(
0
,
0
,
0
,
0.35
);
top
:
287
rpx
;
bottom
:
0
;
left
:
0
;
right
:
0
;
padding
:
30
rpx
50
rpx
;
}
.hotel-detail
.media
.media-info
.mi-left
{
flex
:
1
;
}
.detail_ShareBtn
{
width
:
100%
;
height
:
100%
;
position
:
absolute
;
left
:
0
;
top
:
0
;
opacity
:
0
;
}
.name-ali
{
/* #ifdef MP-ALIPAY */
box-sizing
:
border-box
;
padding-left
:
30
rpx
;
/* #endif */
}
.orderIforDiZhi
{
padding
:
27
rpx
32
rpx
41
rpx
32
rpx
;
}
.orderIforDiZhiL
{
font-weight
:
800
;
font-size
:
32
rpx
;
color
:
#080A09
;
padding-bottom
:
18
rpx
;
}
.orderIforDiZhiRImg
{
width
:
23
rpx
;
margin-right
:
13
rpx
;
}
.orderIforDiZhiRText
{
width
:
1px
;
flex
:
1
;
font-weight
:
500
;
font-size
:
28
rpx
;
color
:
#1D1D20
;
line-height
:
38
rpx
;
}
.ReservationInforBox
{
border-radius
:
18
rpx
;
background
:
#fff
;
margin
:
28
rpx
31
rpx
28
rpx
31
rpx
;
padding
:
37
rpx
18
rpx
49
rpx
18
rpx
;
}
.ReservationInforTitle
{
font-weight
:
800
;
font-size
:
32
rpx
;
color
:
#080A09
;
padding-bottom
:
24
rpx
;
}
.ResInforText
{
padding
:
21
rpx
19
rpx
;
}
.ResInforL
{
width
:
120
rpx
;
text-align
:
right
;
margin-right
:
57
rpx
;
font-weight
:
500
;
font-size
:
28
rpx
;
color
:
#303133
;
}
.ResInforR
{
width
:
1px
;
flex
:
1
;
font-weight
:
bold
;
font-size
:
28
rpx
;
color
:
#080A09
;
}
.ResInforR.active
{
color
:
#B99846
;
}
.ResInforTisp
{
font-weight
:
500
;
font-size
:
24
rpx
;
color
:
#1D1D20
;
line-height
:
42
rpx
;
}
.ResInforText.ResInforTtisp
{
padding
:
14
rpx
19
rpx
21
rpx
19
rpx
;
}
</
style
>
\ No newline at end of file
pages/hotel/orderdetails.vue
0 → 100644
View file @
25a4d88e
<
template
>
<view
class=
"hotel-detail"
>
<scroll-view
ref=
"scrollView"
scroll-y=
"true"
style=
"height: 1px;flex: 1;box-sizing: border-box;"
@
scroll=
"scroll"
>
<view
class=
"media"
:style=
"
{ opacity: 100 - boxOption + '%' }"
>
<!-- #ifdef MP-WEIXIN -->
<view
@
click=
"goback"
:style=
"[titleStyle,
{ opacity: '100% !important' }]"
style="position: fixed; top: 0; left: 0; padding-left: 6rpx"
>
<u-icon
name=
"arrow-left"
size=
"44"
style=
"margin-top: 22rpx"
></u-icon>
</view>
<!-- #endif -->
<view
class=
"orderStatusBox flex"
style=
"margin-bottom: 30rpx"
>
<u-icon
customPrefix=
"iconfont"
name=
"icondaizhifu-"
size=
"52"
color=
"#DFBE6E"
v-if=
"orderStatus.code == 0"
></u-icon>
<u-icon
customPrefix=
"iconfont"
name=
"iconquxiao"
size=
"52"
color=
"#f26c6c"
v-if=
"orderStatus.code == -1"
></u-icon>
<u-icon
customPrefix=
"iconfont"
name=
"iconshenhezhong"
size=
"52"
color=
"#86d9a5"
v-if=
"orderStatus.code == -2"
></u-icon>
<u-icon
customPrefix=
"iconfont"
name=
"iconzhengchang"
size=
"52"
color=
"#111"
v-if=
"orderStatus.code == 1"
></u-icon>
<text
style=
"
margin-left: 26rpx;
font-size: 40rpx;
font-weight: 600;
color: #111;
"
>
{{
orderStatus
.
text
}}
</text>
</view>
<view
class=
"orderIforRzBox row"
>
<view
class=
"orderIforRzImg"
>
<img
style=
"width: 14rpx;height: 68rpx;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638766174213789755.png"
/>
</view>
<view
class=
"orderIforRzTime column"
>
<view>
入住:
<text>
2月25日 周二 14:00后
</text></view>
<view
style=
"margin-top: 28rpx;"
>
离店:
<text>
2月28日 周五 12:00前
</text></view>
</view>
<view
class=
"orderIforRzNum"
>
3晚
</view>
</view>
<view
class=
"orderIforDiZhi"
>
<view
class=
"orderIforDiZhiL"
>
成田国际花园酒店
</view>
<view
class=
"orderIforDiZhiR row"
>
<view
class=
"orderIforDiZhiRImg"
>
<img
style=
"width: 23rpx;height:28rpx;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638766148323678002.png"
/>
</view>
<view
class=
"orderIforDiZhiRText"
>
95 Cheongpa-ro 20-gil, 龙山区, 首尔, 首尔(及其周边地区),韩国
</view>
</view>
</view>
</view>
<view
class=
"hotel-title"
:style=
"[titleStyle]"
>
<view
@
click=
"goback"
>
<!-- #ifdef MP-WEIXIN -->
<u-icon
name=
"arrow-left"
size=
"44"
></u-icon>
<!-- #endif -->
</view>
<view
style=
"flex: 1; margin-left: 30rpx; text-align: left"
class=
"name-ali"
>
{{
dataList
.
HotelName
}}
</view
>
</view>
<view
class=
"ReservationInforBox"
>
<view
class=
"ReservationInforTitle"
>
预定信息
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
房型
</view>
<view
class=
"ResInforR"
>
高级双床房(1间)
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
餐型
</view>
<view
class=
"ResInforR active"
>
含早餐 x2份
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
窗户
</view>
<view
class=
"ResInforR"
>
有窗
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
人数
</view>
<view
class=
"ResInforR"
>
最多入住2人
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
面积
</view>
<view
class=
"ResInforR"
>
32㎡
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
网络
</view>
<view
class=
"ResInforR"
>
WIFI
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
楼层数
</view>
<view
class=
"ResInforR"
>
1-20
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
取消政策
</view>
<view
class=
"ResInforR"
>
不可修改
</view>
</view>
</view>
<view
class=
"ReservationInforBox"
>
<view
class=
"ReservationInforTitle"
>
订房信息
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
住客姓名
</view>
<view
class=
"ResInforR"
>
李伟
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
联系电话
</view>
<view
class=
"ResInforR"
>
1956555
</view>
</view>
<view
class=
"ResInforText row-sb-n"
>
<view
class=
"ResInforL"
>
E-mail
</view>
<view
class=
"ResInforR"
>
ran****un@aliyun.com
</view>
</view>
</view>
<view
style=
"height: 36rpx;"
></view>
</scroll-view>
<view
class=
"opera-box"
>
<view
class=
"box flex"
>
<view
class=
"price"
>
<text
class=
"f11"
>
¥
</text>
<text>
11111
</text>
</view>
<view
class=
"sum-detail"
>
共计 222间房
</view>
<u-button
:ripple=
"true"
:hair-line=
"false"
:custom-style=
"btnStyle"
@
click=
"buyRoom"
>
立即购买
</u-button>
</view>
</view>
<u-popup
v-model=
"showTimePopup"
mode=
"bottom"
border-radius=
"20"
length=
"85%"
:safe-area-inset-bottom=
"true"
>
<view
style=
"
width: 100%;
height: 100%;
display: flex;
flex-direction: column;"
>
<view
style=
"flex: 1; width: 100%; height: 1rpx"
>
<canlendar
@
finish=
"chosenDateResult"
title=
"日期和人数"
></canlendar>
</view>
<view
style=
"background: #ecf1f4; padding: 20rpx 0;margin-bottom: 80rpx;"
>
<view
class=
"row line-flex"
style=
"padding: 30rpx; background: #fff"
>
<text
style=
"font-size: 28rpx; color: #111; font-weight: 500"
>
房间
</text>
<text
style=
"
font-size: 22rpx;
color: #999;
margin-left: 30rpx;
flex: 1;
"
></text>
<u-number-box
size=
"28"
:min=
"1"
:max=
"100000"
v-model=
"searchObj.rooms"
></u-number-box>
</view>
<view
class=
"row line-flex"
style=
"padding: 30rpx; background: #fff"
>
<text
style=
"font-size: 28rpx; color: #111; font-weight: 500"
>
成人
</text>
<text
style=
"
font-size: 22rpx;
color: #999;
margin-left: 30rpx;
flex: 1;
"
>
18周岁以上
</text>
<u-number-box
size=
"28"
:min=
"1"
:max=
"100000"
v-model=
"searchObj.adultsNumber"
@
change=
"crChange"
></u-number-box>
</view>
<view
class=
"row line-flex"
style=
"padding: 30rpx; background: #fff"
>
<text
style=
"font-size: 28rpx; color: #111; font-weight: 500"
>
儿童(占床)
</text>
<text
style=
"
font-size: 22rpx;
color: #999;
margin-left: 30rpx;
flex: 1;
"
>
2-18周岁(不含)
</text>
<u-number-box
size=
"28"
:min=
"0"
:max=
"100000"
v-model=
"searchObj.childrenNumberZC"
@
change=
"etChange"
></u-number-box>
</view>
</view>
</view>
</u-popup>
</view>
</
template
>
<
script
>
import
roomGood
from
"./components/room-good.vue"
;
import
nearGood
from
"./components/near-good.vue"
;
import
recommedHotel
from
"./components/recommed-hotel.vue"
;
import
canlendar
from
"./components/time/index.vue"
;
import
hotelRoom
from
"./components/hotelRoom.vue"
;
import
hotelInfor
from
"./components/hotelInfor.vue"
;
import
hotelPolicy
from
"./components/hotelPolicy.vue"
;
import
hotelFacilities
from
"./components/hotelFacilities.vue"
;
export
default
{
components
:
{
roomGood
,
nearGood
,
recommedHotel
,
canlendar
,
hotelInfor
,
hotelPolicy
,
hotelFacilities
,
hotelRoom
,
},
data
()
{
return
{
imgsList
:
[],
id
:
0
,
typeList
:
[
{
Id
:
0
,
Name
:
"视频"
,
},
{
Id
:
1
,
Name
:
"图片"
,
},
],
boxOption
:
0
,
titleStyle
:
{
opacity
:
0
,
},
mainColor
:
""
,
showTimePopup
:
false
,
controls
:
false
,
videoUrl
:
"https://video.c-ctrip.com/videos/230i1r000001hxb2mEEE4.mp4"
,
active
:
1
,
islike
:
false
,
nearbyType
:
0
,
searchObj
:
{
date
:
{},
},
roomMsg
:
{
HotelId
:
0
,
StartDate
:
""
,
EndDate
:
""
,
},
day
:
0
,
threeLevelList
:
[
{
name
:
"单人床"
,
id
:
1
,
isCheck
:
0
,
},
{
name
:
"大床房"
,
id
:
2
,
isCheck
:
0
,
},
{
name
:
"双床房"
,
id
:
3
,
isCheck
:
0
,
},
{
name
:
"含早餐"
,
id
:
4
,
isCheck
:
0
,
},
{
name
:
"可取消"
,
id
:
5
,
isCheck
:
0
,
},
],
RoomList
:
[],
//可过滤房间
dataList
:
{},
//数据
isShowAll
:
false
,
//显示全部
HotelArr
:
[],
//推荐酒店
searchObj
:
{},
dayObj
:
{},
hotelData
:
{},
//传递到房间预订组件
startDay
:
""
,
endDay
:
""
,
Up
:
0
,
StarImgs
:
[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/hotel3stars.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/hotel4stars.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/hotel5stars.png'
,
],
openImg
:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638762717498946531.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638762717498917358.png'
],
optionsTitle
:
[
"房型"
,
"床型"
,
"餐食"
],
hotelFacilities
:
[
{
Name
:
'酒店信息'
,
ID
:
1
,
val
:
'hotelInfor'
,
top
:
0
,},
{
Name
:
'酒店政策'
,
ID
:
2
,
val
:
'hotelPolicy'
,
top
:
0
,},
{
Name
:
'设施服务'
,
ID
:
3
,
val
:
'hotelFacilities'
,
top
:
0
,},
],
current
:
1
,
scrollTop
:
100
,
old
:{
scrollTop
:
0
},
orderStatus
:
{
text
:
"待支付"
,
code
:
0
,
},
showPayBtn
:
false
,
btnStyle
:
{
height
:
"80rpx"
,
lineHeight
:
"80rpx"
,
borderRadius
:
"16rpx"
,
background
:
"#111"
,
color
:
"#FFF"
,
fontSize
:
"28rpx"
,
fontWeight
:
"600"
,
width
:
'193rpx'
,
},
};
},
created
()
{
this
.
Up
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserPageType
:
0
;
},
onLoad
(
options
)
{
this
.
id
=
options
.
id
;
this
.
roomMsg
.
HotelId
=
options
.
id
;
let
that
=
this
;
uni
.
getSystemInfo
({
success
(
res
)
{
that
.
titleStyle
=
{
height
:
"45px"
,
paddingTop
:
`
${
res
.
statusBarHeight
}
px`
,
opacity
:
"0"
,
};
},
});
this
.
mainColor
=
this
.
$uiConfig
.
mainColor
;
if
(
options
.
dayObj
)
{
var
tempDay
=
JSON
.
parse
(
options
.
dayObj
);
this
.
roomMsg
.
StartDate
=
tempDay
.
start
;
this
.
roomMsg
.
EndDate
=
tempDay
.
end
;
this
.
startDay
=
tempDay
.
startDay
;
this
.
endDay
=
tempDay
.
endDay
;
this
.
day
=
tempDay
.
day
;
this
.
dayObj
=
tempDay
;
}
else
{
let
d1
=
new
Date
();
let
d
=
new
Date
();
let
d2
=
new
Date
(
d
.
setDate
(
d
.
getDate
()
+
1
));
let
startWeek
=
"周"
+
"日一二三四五六"
.
charAt
(
new
Date
().
getDay
());
let
endWeek
=
"周"
+
"日一二三四五六"
.
charAt
(
new
Date
().
getDay
()
+
1
);
let
month1
=
d1
.
getMonth
()
+
1
;
let
day1
=
d1
.
getDate
();
let
Month1
=
month1
>
9
?
month1
:
'0'
+
month1
;
let
Day1
=
day1
>
9
?
day1
:
'0'
+
day1
;
let
month2
=
d2
.
getMonth
()
+
1
;
let
day2
=
d2
.
getDate
();
let
Month2
=
month2
>
9
?
month2
:
'0'
+
month2
;
let
Day2
=
day2
>
9
?
day2
:
'0'
+
day2
;
var
obj
=
{
start
:
`
${
d1
.
getFullYear
()}
-
${
Month1
}
-
${
Day1
}
`
,
end
:
`
${
d2
.
getFullYear
()}
-
${
Month2
}
-
${
Day2
}
`
,
startDay
:
`
${
Month1
}
-
${
Day1
}
`
,
endDay
:
`
${
Month2
}
-
${
Day2
}
`
,
day
:
1
,
startWeek
:
startWeek
,
endWeek
:
endWeek
,
};
this
.
roomMsg
.
StartDate
=
obj
.
start
;
this
.
roomMsg
.
EndDate
=
obj
.
end
;
this
.
startDay
=
obj
.
startDay
;
this
.
endDay
=
obj
.
endDay
;
this
.
day
=
obj
.
day
;
this
.
dayObj
=
obj
;
}
if
(
this
.
id
>
0
)
{
this
.
getHotelDetail
(
this
.
id
);
}
if
(
options
.
searchObj
)
{
this
.
searchObj
=
JSON
.
parse
(
options
.
searchObj
);
}
this
.
getRecomHotel
();
},
methods
:
{
//立即购买
buyRoom
(){
let
that
=
this
;
if
(
that
.
orderMsg
.
Consignee
==
''
)
{
this
.
$refs
.
uToast
.
show
({
title
:
'请输入住客姓名!'
,
type
:
'warning'
});
return
;
}
if
(
that
.
orderMsg
.
ConsigneeMobile
==
''
)
{
this
.
$refs
.
uToast
.
show
({
title
:
'请输入联系电话!'
,
type
:
'warning'
});
return
;
}
var
tempObj
=
uni
.
getStorageSync
(
'basedata'
).
mall
.
wechatmessage
;
var
tmplIds
=
[];
if
(
tempObj
&&
tempObj
.
length
>
0
){
tempObj
.
forEach
(
x
=>
{
if
(
x
.
Name
==
'下单成功提醒'
||
x
.
Name
==
'订单取消提醒'
||
x
.
Name
==
'订单确认通知'
){
tmplIds
.
push
(
x
.
MessageId
)
}
})
}
uni
.
requestSubscribeMessage
({
tmplIds
:
tmplIds
,
complete
(
res
)
{
that
.
request2
({
url
:
'/api/Hotel/SetAppletHotelOrder'
,
data
:
that
.
orderMsg
},
res
=>
{
if
(
res
.
resultCode
==
1
)
{
that
.
queren
(
res
.
data
)
}
}
);
}
})
},
formatStatus
(
status
,
loss
,
isCancel
)
{
loss
=
loss
?
loss
:
-
1
;
//1、已申请;!=1未申请
if
(
loss
==
1
||
status
==
4
)
{
this
.
orderStatus
.
code
=
-
1
;
this
.
orderStatus
.
text
=
"已取消"
;
this
.
showPayBtn
=
false
;
}
else
if
(
status
==
2
&&
isCancel
!=
1
)
{
this
.
orderStatus
.
code
=
0
;
this
.
orderStatus
.
text
=
"待付款"
;
this
.
showPayBtn
=
true
;
}
else
if
(
status
==
3
&&
isCancel
!=
1
)
{
this
.
orderStatus
.
code
=
0
;
this
.
orderStatus
.
text
=
"候补中"
;
this
.
showPayBtn
=
true
;
}
else
if
(
status
==
2
&&
isCancel
==
1
)
{
this
.
orderStatus
.
code
=
-
2
;
this
.
orderStatus
.
text
=
"审核中"
;
this
.
showPayBtn
=
false
;
}
else
if
(
status
==
1
)
{
this
.
orderStatus
.
code
=
1
;
this
.
orderStatus
.
text
=
"正常"
;
this
.
showPayBtn
=
false
;
}
},
goFacil
(
item
){
this
.
current
=
item
.
ID
;
this
.
scrollTop
=
this
.
old
.
scrollTop
this
.
$nextTick
(
function
()
{
this
.
scrollTop
=
item
.
top
});
},
openTime
()
{
this
.
showTimePopup
=
true
;
},
etChange
(
e
){
this
.
searchObj
.
childrenNumberZC
=
e
.
value
;
this
.
peopleChange
()
},
crChange
(
e
){
this
.
searchObj
.
adultsNumber
=
e
.
value
;
this
.
peopleChange
()
},
peopleChange
(){
this
.
searchObj
.
peoples
=
this
.
searchObj
.
adultsNumber
+
this
.
searchObj
.
childrenNumberZC
console
.
log
(
this
.
searchObj
.
peoples
,
'人数'
)
},
//获取推荐酒店
getRecomHotel
()
{
this
.
searchObj
.
HotelId
=
this
.
id
;
this
.
request2
(
{
url
:
"/api/Hotel/AppGetHotelPage"
,
data
:
this
.
searchObj
,
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
// console.log(res, '推荐酒店');
this
.
HotelArr
=
[];
let
tempHotel
=
res
.
data
.
pageData
;
tempHotel
.
forEach
((
x
)
=>
{
if
(
this
.
HotelArr
.
length
<
2
)
{
this
.
HotelArr
.
push
(
x
);
}
});
}
}
);
},
goMap
(
name
,
lon
,
lat
)
{
let
newLon
=
parseFloat
(
lon
);
let
newLat
=
parseFloat
(
lat
);
uni
.
openLocation
({
latitude
:
newLat
,
longitude
:
newLon
,
scale
:
18
,
name
:
name
,
address
:
name
,
success
:
(
res
)
=>
{},
fail
:
(
err
)
=>
{},
});
},
openPicture
()
{
let
imgObj
=
JSON
.
stringify
(
this
.
dataList
.
HotelImg
);
uni
.
navigateTo
({
url
:
"/pages/hotel/picture?imgObj="
+
imgObj
,
});
},
openDescription
()
{
let
hotelObj
=
JSON
.
stringify
({
id
:
this
.
id
,
start
:
this
.
dayObj
.
start
,
end
:
this
.
dayObj
.
end
,
});
uni
.
navigateTo
({
url
:
"/pages/hotel/description?hotelObj="
+
encodeURIComponent
(
hotelObj
),
});
},
chosenDateResult
(
obj
)
{
this
.
roomMsg
.
StartDate
=
obj
.
start
;
this
.
roomMsg
.
EndDate
=
obj
.
end
;
this
.
startDay
=
obj
.
startDay
;
this
.
endDay
=
obj
.
endDay
;
this
.
day
=
obj
.
day
;
this
.
getRoomType
();
this
.
dayObj
=
obj
;
this
.
showTimePopup
=
false
;
},
//切换日期获取房型
getRoomType
()
{
this
.
request2
(
{
url
:
"/api/Hotel/GetHotelRoom"
,
data
:
this
.
roomMsg
,
},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
RoomList
=
res
.
data
.
RoomList
;
}
}
);
},
formatMonthDay
(
str
)
{
let
temp
=
str
.
split
(
"-"
);
// temp[0] = temp[0] > 9 ? temp[0] : "0" + temp[0];
// temp[1] = temp[1] > 9 ? temp[1] : "0" + temp[1];
return
`
${
temp
[
0
]}
月
${
temp
[
1
]}
日`
;
},
getMonth
(
date
)
{
let
m
=
date
.
getMonth
()
+
1
;
return
m
>
9
?
m
:
"0"
+
m
;
},
getDay
(
date
)
{
let
d
=
date
.
getDate
();
return
d
>
9
?
d
:
"0"
+
d
;
},
getWeek
(
date
)
{
var
weekArray
=
new
Array
(
"日"
,
"一"
,
"二"
,
"三"
,
"四"
,
"五"
,
"六"
);
var
week
=
weekArray
[
new
Date
(
date
).
getDay
()];
//注意此处必须是先new一个Date
return
"周"
+
week
;
},
changeNearbyType
(
t
)
{
this
.
nearbyType
=
t
;
},
//显示全部
getAllRoom
()
{
this
.
isShowAll
=
!
this
.
isShowAll
;
if
(
this
.
isShowAll
)
{
this
.
threeLevelList
.
forEach
((
x
)
=>
{
x
.
isCheck
=
1
;
});
this
.
RoomList
=
this
.
dataList
.
RoomList
;
}
else
{
this
.
threeLevelList
.
forEach
((
x
)
=>
{
x
.
isCheck
=
0
;
});
}
},
//点击过滤房间
changeRoomType
(
obj
)
{
if
(
obj
.
isCheck
==
0
)
{
obj
.
isCheck
=
1
;
}
else
{
obj
.
isCheck
=
0
;
}
this
.
RoomList
=
[];
let
num
=
0
;
this
.
threeLevelList
.
forEach
((
x
)
=>
{
if
(
x
.
isCheck
==
1
)
{
num
++
;
this
.
dataList
.
RoomList
.
forEach
((
y
)
=>
{
if
(
x
.
id
==
1
&&
y
.
BedType
==
1
)
{
this
.
RoomList
.
push
(
y
);
}
if
(
x
.
id
==
2
&&
y
.
BedType
==
2
)
{
this
.
RoomList
.
push
(
y
);
}
if
(
x
.
id
==
3
&&
y
.
BedType
==
3
)
{
this
.
RoomList
.
push
(
y
);
}
if
(
x
.
id
==
4
&&
y
.
BreakfastType
!=
4
)
{
this
.
RoomList
.
push
(
y
);
}
if
(
x
.
id
==
5
&&
y
.
IsCancel
==
2
)
{
this
.
RoomList
.
push
(
y
);
}
});
}
});
if
(
num
==
this
.
threeLevelList
.
length
)
{
this
.
isShowAll
=
true
;
}
else
{
this
.
isShowAll
=
false
;
}
if
(
num
==
0
)
{
this
.
RoomList
=
this
.
dataList
.
RoomList
;
}
},
changeLike
()
{
this
.
islike
=
!
this
.
islike
;
},
previewImage
(
i
)
{
uni
.
previewImage
({
urls
:
this
.
imgsList
,
current
:
i
,
longPressActions
:
{
itemList
:
[
"发送给朋友"
,
"保存图片"
,
"收藏"
],
success
:
function
(
data
)
{},
fail
:
function
(
err
)
{
// console.log(err.errMsg);
},
},
});
},
scroll
(
e
)
{
this
.
old
.
scrollTop
=
e
.
detail
.
scrollTop
this
.
boxOption
=
Math
.
floor
((
e
.
detail
.
scrollTop
-
50
)
/
1.5
);
this
.
titleStyle
.
opacity
=
e
.
detail
.
scrollTop
-
100
<
0
?
0
:
Math
.
floor
(
e
.
detail
.
scrollTop
-
100
)
/
100
>
1
?
1
:
Math
.
floor
(
e
.
detail
.
scrollTop
-
100
)
/
100
;
this
.
$forceUpdate
();
},
enlarge
(
file
)
{
// 全屏
this
.
videoContext
=
uni
.
createVideoContext
(
"myVideo"
);
this
.
videoContext
.
requestFullScreen
({
direction
:
0
,
});
},
videoControl
(
e
)
{
if
(
e
.
detail
.
fullScreen
==
false
)
{
this
.
videoContext
.
stop
();
this
.
controls
=
false
;
}
else
{
this
.
videoContext
.
play
();
this
.
controls
=
true
;
}
},
goback
()
{
uni
.
navigateBack
({
delta
:
1
,
});
},
changeHandler
(
i
)
{
this
.
active
=
i
;
},
//获取酒店详情
getHotelDetail
(
id
)
{
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
.
HotelName
=
this
.
dataList
.
HotelName
;
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
//分享朋友圈
onShareTimeline
()
{
let
uid
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserId
:
0
;
if
(
uid
==
0
)
{
uid
=
uni
.
getStorageSync
(
"pid"
)
?
uni
.
getStorageSync
(
"pid"
).
pid
:
0
;
}
let
SmallShopId
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
SmallShopId
:
0
;
if
(
SmallShopId
==
0
)
{
//如果微店id为0 去找所属微店id
SmallShopId
=
uni
.
getStorageSync
(
"mall_UserInfo"
)
?
uni
.
getStorageSync
(
"mall_UserInfo"
).
UserSmallShopId
:
0
;
}
let
title
=
this
.
dataList
.
HotelName
?
this
.
dataList
.
HotelName
:
"帖子"
;
let
imageUrl
=
this
.
dataList
.
HotelImg
&&
this
.
dataList
.
HotelImg
.
length
>
0
?
this
.
dataList
.
HotelImg
[
0
]
:
""
;
let
id
=
this
.
id
;
return
{
title
:
title
,
query
:
"id="
+
this
.
id
+
"&user_id="
+
uid
+
"&SmallShopId="
+
SmallShopId
+
"&Up="
+
this
.
Up
+
"&JumpType=18"
+
"&dayObj="
+
JSON
.
stringify
(
this
.
dayObj
)
+
"&searchObj="
+
JSON
.
stringify
(
this
.
searchObj
),
imageUrl
:
imageUrl
,
};
},
//分享给朋友
onShareAppMessage
(
res
)
{
let
u
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
let
uid
=
u
.
UserId
?
u
.
UserId
:
0
;
if
(
uid
==
0
)
{
uid
=
uni
.
getStorageSync
(
"pid"
)
?
uni
.
getStorageSync
(
"pid"
).
pid
:
0
;
}
let
SmallShopId
=
u
.
SmallShopId
?
u
.
SmallShopId
:
0
;
if
(
SmallShopId
==
0
)
{
//如果微店id为0 去找所属微店id
SmallShopId
=
u
.
UserSmallShopId
?
u
.
UserSmallShopId
:
0
;
}
return
{
title
:
this
.
dataList
.
HotelName
?
this
.
dataList
.
HotelName
:
"帖子"
,
path
:
"/pages/index/index?id="
+
this
.
id
+
"&user_id="
+
uid
+
"&SmallShopId="
+
SmallShopId
+
"&Up="
+
this
.
Up
+
"&JumpType=18"
+
"&dayObj="
+
JSON
.
stringify
(
this
.
dayObj
)
+
"&searchObj="
+
JSON
.
stringify
(
this
.
searchObj
),
imageUrl
:
this
.
dataList
.
HotelImg
&&
this
.
dataList
.
HotelImg
.
length
>
0
?
this
.
dataList
.
HotelImg
[
0
]
:
""
,
};
},
// #endif
},
};
</
script
>
<
style
scoped
>
@import
url("@/asset/css/flex.css")
;
.hotel-detail
{
height
:
100vh
;
overflow
:
hidden
;
width
:
100vw
;
font-family
:
"pingfang"
;
background
:
#F3F3F3
;
display
:
flex
;
flex-direction
:
column
;
}
.hotel-detail
.flex
{
display
:
flex
;
align-items
:
center
;
}
.hotel-detail
.f12
{
font-size
:
24
rpx
!important
;
}
.hotel-detail
.king
{
width
:
44
rpx
;
height
:
44
rpx
;
border-radius
:
50%
;
overflow
:
hidden
;
background
:
rgba
(
255
,
255
,
255
,
0.2
);
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
position
:
relative
;
}
.hotel-detail
.regular
{
font-weight
:
500
!important
;
}
.hotel-detail
.hotel-content
{
position
:
relative
;
z-index
:
2
;
top
:
-110
rpx
;
}
.hotel-detail
.hotel-content
.date-box
{
margin
:
30
rpx
0
;
background
:
#ecf1f4
;
border-radius
:
16
rpx
;
padding
:
25
rpx
;
justify-content
:
space-between
;
}
.hotel-detail
.hotel-content
.date-box
.hr-line
{
width
:
24
rpx
;
height
:
4
rpx
;
background
:
#222
;
margin-right
:
24
rpx
;
}
.hotel-detail
.hotel-content
.date-box
.ver-line
{
width
:
1px
;
height
:
49
rpx
;
background
:
#a8a8a8
;
opacity
:
0.3
;
margin-right
:
24
rpx
;
}
.hotel-detail
.hotel-content
.date-box
.date
{
font-size
:
24
rpx
;
font-weight
:
bold
;
color
:
#111111
;
margin-right
:
24
rpx
;
}
.hotel-detail
.hotel-content
.date-box
.date
.date-week
{
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#6e6e6e
;
margin-left
:
18
rpx
;
}
.hotel-detail
.hotel-content
.hotel-more-info
{
width
:
140
rpx
;
height
:
60
rpx
;
line-height
:
60
rpx
;
background
:
#ffffff
;
border
:
1px
solid
#111111
;
border-radius
:
8
rpx
;
margin
:
0
auto
;
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#1f1f1f
;
text-align
:
center
;
}
.hotel-detail
.empty-block
{
height
:
20
rpx
;
background-color
:
#ecf1f4
;
}
.hotel-detail
.hotel-content
.detail-box
{
padding
:
33
rpx
30
rpx
0
30
rpx
;
}
.hotel-detail
.hotel-content
.detail-box
.nearby-type
{
padding
:
0
16
rpx
;
height
:
40
rpx
;
line-height
:
40
rpx
;
background
:
#fff
;
border-radius
:
20
rpx
;
margin-right
:
10
rpx
;
font-size
:
28
rpx
;
font-weight
:
500
;
color
:
#1f1f1f
;
}
.hotel-detail
.hotel-content
.detail-box
.nearby-type.active
{
color
:
#dfbe6e
;
background
:
rgba
(
223
,
190
,
110
,
0.2
);
}
.hotel-detail
.hotel-content
.title-style-one
{
font-weight
:
500
;
font-size
:
24
rpx
;
color
:
#080A09
;
line-height
:
43
rpx
;
text-indent
:
21
rpx
;
}
.hotel-detail
.hotel-content
.title-style-one
item-title
{
line-height
:
36
rpx
;
}
.hotel-detail
.hotel-content
.title-style-one
.item-content
{
color
:
#B99846
;
margin-left
:
5
rpx
;
line-height
:
36
rpx
;
}
.title-style-one
li
{
margin-bottom
:
5
rpx
;
}
.hotel-detail
.hotel-content
.big-title
{
position
:
relative
;
font-size
:
32
rpx
;
font-weight
:
bold
;
margin-bottom
:
35
rpx
;
}
.hotel-detail
.hotel-content
.big-title
::before
{
display
:
block
;
width
:
18
rpx
;
height
:
18
rpx
;
background
:
#E2C27A
;
border-radius
:
5
rpx
;
content
:
" "
;
position
:
absolute
;
left
:
0
;
bottom
:
-4
rpx
;
z-index
:
1
;
}
.hotel-detail
.hotel-content
.big-title
text
{
font-size
:
34
rpx
;
font-weight
:
bold
;
color
:
#1f1f1f
;
position
:
relative
;
z-index
:
2
;
}
.hotel-detail
.hotel-content
.hotel-base
.hotel-room
.room-type
{
/* padding:10rpx 30rpx; */
display
:
flex
;
align-items
:
center
;
overflow-x
:
auto
;
flex-wrap
:
nowrap
;
}
.hotel-detail
.hotel-content
.hotel-base
.room-list
{
padding-top
:
40
rpx
;
}
.hotel-detail
.hotel-content
.hotel-base
.hotel-room
.room-type
.item
{
padding
:
16
rpx
30
rpx
;
background
:
#ecf1f4
;
border-radius
:
8
rpx
;
margin-right
:
26
rpx
;
font-size
:
22
rpx
;
color
:
#999999
;
font-weight
:
400
;
flex-shrink
:
0
;
}
.hotel-detail
.hotel-content
.hotel-base
.hotel-room
.room-type
.item.active
{
background
:
#111111
;
color
:
#ffffff
;
}
.hotel-detail
.hotel-content
.hotel-base
.hotel-room
.room-type
.item
:last-child
{
margin-right
:
0
;
}
.hotel-detail
.hotel-content
.hotel-base
{
/* position: relative;
top: -140rpx; */
border-top-left-radius
:
60
rpx
;
border-top-right-radius
:
60
rpx
;
background
:
url(https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Static/hoteldetailbj.png)
no-repeat
#F3F3F3
;
background-size
:
100%
auto
;
padding
:
39
rpx
0
44
rpx
0
;
}
.location
{
display
:
flex
;
align-items
:
center
;
}
.location
.loc-left
{
width
:
1px
;
flex
:
1
;
}
.location
.loc-left
.loc-name
{
font-size
:
28
rpx
;
font-weight
:
800
;
color
:
#111111
;
display
:
flex
;
align-items
:
center
;
margin-bottom
:
20
rpx
;
}
.location
.loc-left
.loc-remark
{
font-size
:
22
rpx
;
font-weight
:
500
;
color
:
#6e6e6e
;
line-height
:
34
rpx
;
}
.location
.loc-right
{
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#111111
;
display
:
flex
;
align-items
:
center
;
}
.hotel-detail
.hotel-content
.hotel-base
.head
{
display
:
flex
;
align-items
:
center
;
margin-bottom
:
40
rpx
;
}
.hotel-detail
.hotel-content
.hotel-base
.head
.hotel-name
{
font-size
:
36
rpx
;
font-weight
:
800
;
color
:
#111111
;
}
.hotel-detail
.hotel-content
.hotel-base
.head
.hotel-tag
{
font-size
:
22
rpx
;
font-weight
:
500
;
color
:
#6e6e6e
;
}
.hotel-Opening
{
font-weight
:
500
;
font-size
:
24
rpx
;
color
:
#B99846
;
margin-right
:
31
rpx
;
margin-bottom
:
20
rpx
;
display
:
inline-block
;
}
.hotel-tagText
{
background
:
#FFFFFF
;
border-radius
:
4
rpx
;
border
:
1
rpx
solid
#B99846
;
color
:
#B99846
;
text-align
:
center
;
margin-right
:
8
rpx
;
margin-bottom
:
20
rpx
;
height
:
34
rpx
;
line-height
:
26
rpx
;
padding
:
0
12
rpx
;
display
:
inline-block
;
}
.hotel-detail
.hotel-content
.hotel-base
.head
.op-box
image
{
width
:
58
rpx
;
height
:
58
rpx
;
}
.hotel-detail
.hotel-content
.hotel-base
.shebei
{
padding
:
34
rpx
0
;
margin-bottom
:
34
rpx
;
border-bottom
:
1px
solid
rgba
(
0
,
0
,
0
,
0.1
);
display
:
flex
;
align-items
:
center
;
}
.hotel-detail
.hotel-content
.hotel-base
.shebei
.sb-left
{
width
:
1px
;
flex
:
1
;
/* display: flex; */
align-items
:
center
;
display
:
-webkit-box
;
overflow
:
auto
;
margin-right
:
20
rpx
;
}
.hotel-detail
.hotel-content
.hotel-base
.shebei
.sb-left
.sb-item
{
padding
:
7
rpx
13
rpx
;
background
:
#ecf1f4
;
border-radius
:
4
rpx
;
font-size
:
22
rpx
;
font-weight
:
500
;
color
:
#111111
;
margin-right
:
10
rpx
;
}
.hotel-detail
.hotel-content
.hotel-base
.shebei
.sb-right
{
font-size
:
24
rpx
;
font-weight
:
500
;
color
:
#111111
;
display
:
flex
;
align-items
:
center
;
}
.hotel-detail
.hotel-title
{
line-height
:
45px
!important
;
font-size
:
16px
;
text-align
:
center
;
position
:
fixed
;
left
:
0
;
top
:
0
;
width
:
100%
;
color
:
#111
;
box-sizing
:
content-box
;
z-index
:
5
;
display
:
flex
;
align-items
:
center
;
background-color
:
#f6f6f6
;
padding-left
:
6
rpx
;
}
.hotel-detail
.media
{
position
:
relative
;
z-index
:
1
;
background
:
#fff
;
box-shadow
:
0
rpx
14
rpx
40
rpx
0
rpx
rgba
(
76
,
76
,
76
,
0.06
);
border-radius
:
0
rpx
0
rpx
40
rpx
40
rpx
;
overflow
:
hidden
;
}
.hotel-detail
.media
.play-btn
{
position
:
absolute
;
left
:
50%
;
top
:
50%
;
margin-top
:
-49
rpx
;
margin-left
:
-49
rpx
;
width
:
98
rpx
;
height
:
98
rpx
;
border-radius
:
20
rpx
;
background-color
:
rgba
(
255
,
255
,
255
,
0.4
);
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.hotel-detail
.media
.video-box
{
background-color
:
#111
;
height
:
545
rpx
;
position
:
relative
;
}
.hotel-detail
.media
.type-box
{
width
:
100px
;
height
:
50
rpx
;
position
:
absolute
;
background-color
:
rgba
(
255
,
255
,
255
,
0.6
);
border-radius
:
50
rpx
;
left
:
50%
;
bottom
:
80px
;
margin-left
:
-50px
;
}
.hotel-detail
.media
.media-info
.type-img-box
{
background-color
:
rgba
(
255
,
255
,
255
,
0.5
);
color
:
#fff
;
display
:
flex
;
align-items
:
center
;
height
:
96
rpx
;
width
:
96
rpx
;
padding
:
8
rpx
;
border-radius
:
12
rpx
;
position
:
relative
;
}
.hotel-detail
.media
.media-info
.type-img-box
image
{
height
:
80
rpx
;
width
:
80
rpx
;
border-radius
:
12
rpx
;
opacity
:
0.5
;
}
.hotel-detail
.media
.media-info
.type-img-box
.content
{
position
:
absolute
;
left
:
0
;
top
:
0
;
right
:
0
;
bottom
:
0
;
text-align
:
center
;
font-size
:
20
rpx
;
color
:
#fff
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
center
;
justify-items
:
center
;
}
.hotel-detail
.media
.media-info
.type-img-box
text
{
font-size
:
22
rpx
;
font-family
:
pingfang
;
margin-left
:
6
rpx
;
}
.hotel-detail
.media
.media-info
{
position
:
absolute
;
background-color
:
rgba
(
0
,
0
,
0
,
0.35
);
top
:
287
rpx
;
bottom
:
0
;
left
:
0
;
right
:
0
;
padding
:
30
rpx
50
rpx
;
}
.hotel-detail
.media
.media-info
.mi-left
{
flex
:
1
;
}
.detail_ShareBtn
{
width
:
100%
;
height
:
100%
;
position
:
absolute
;
left
:
0
;
top
:
0
;
opacity
:
0
;
}
.name-ali
{
/* #ifdef MP-ALIPAY */
box-sizing
:
border-box
;
padding-left
:
30
rpx
;
/* #endif */
}
.orderIforDiZhi
{
padding
:
27
rpx
32
rpx
41
rpx
32
rpx
;
}
.orderIforDiZhiL
{
font-weight
:
800
;
font-size
:
32
rpx
;
color
:
#080A09
;
padding-bottom
:
18
rpx
;
}
.orderIforDiZhiRImg
{
width
:
23
rpx
;
margin-right
:
13
rpx
;
}
.orderIforDiZhiRText
{
width
:
1px
;
flex
:
1
;
font-weight
:
500
;
font-size
:
28
rpx
;
color
:
#1D1D20
;
line-height
:
38
rpx
;
}
.ReservationInforBox
{
border-radius
:
18
rpx
;
background
:
#fff
;
margin
:
28
rpx
31
rpx
28
rpx
31
rpx
;
padding
:
37
rpx
18
rpx
49
rpx
18
rpx
;
}
.ReservationInforTitle
{
font-weight
:
800
;
font-size
:
32
rpx
;
color
:
#080A09
;
padding-bottom
:
24
rpx
;
}
.ResInforText
{
padding
:
21
rpx
19
rpx
;
}
.ResInforL
{
width
:
120
rpx
;
text-align
:
right
;
margin-right
:
57
rpx
;
font-weight
:
500
;
font-size
:
28
rpx
;
color
:
#303133
;
}
.ResInforR
{
width
:
1px
;
flex
:
1
;
font-weight
:
bold
;
font-size
:
28
rpx
;
color
:
#080A09
;
}
.ResInforR.active
{
color
:
#B99846
;
}
.ResInforTisp
{
font-weight
:
500
;
font-size
:
24
rpx
;
color
:
#1D1D20
;
line-height
:
42
rpx
;
}
.ResInforText.ResInforTtisp
{
padding
:
14
rpx
19
rpx
21
rpx
19
rpx
;
}
.orderStatusBox
{
padding
:
200
rpx
31
rpx
13
rpx
31
rpx
;
}
.orderIforRzBox
{
margin
:
0
31
rpx
;
background
:
#ECF1F4
;
border-radius
:
18
rpx
;
align-items
:
center
;
padding
:
31
rpx
38
rpx
;
}
.orderIforRzTime
{
font-weight
:
500
;
font-size
:
28
rpx
;
color
:
#1D1D20
;
margin-left
:
16
rpx
;
}
.orderIforRzNum
{
font-weight
:
bold
;
font-size
:
32
rpx
;
color
:
#080A09
;
}
.opera-box
{
background-color
:
#FFF
;
padding
:
20
rpx
45
rpx
40
rpx
45
rpx
;
z-index
:
5
;
}
.opera-box
.box
{
height
:
100
rpx
;
background
:
#FFFFFF
;
box-shadow
:
0px
10
rpx
30
rpx
0px
rgba
(
36
,
36
,
36
,
0.2
);
border-radius
:
16
rpx
;
display
:
flex
;
align-items
:
center
;
padding
:
0
10
rpx
0
36
rpx
;
}
.opera-box
.box
.price
{
font-size
:
40
rpx
;
font-weight
:
500
;
color
:
#D91818
;
margin-right
:
20
rpx
;
}
.opera-box
.box
.sum-detail
{
font-size
:
24
rpx
;
flex
:
1
;
font-weight
:
500
;
color
:
#6E6E6E
;
}
</
style
>
\ 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