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
fa516890
Commit
fa516890
authored
Apr 03, 2025
by
youjie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
酒店
parent
556e6e34
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
424 additions
and
758 deletions
+424
-758
index.vue
pages/hotel/components/address/index.vue
+4
-1
hotelRoom.vue
pages/hotel/components/hotelRoom.vue
+10
-1
search.vue
pages/hotel/components/search.vue
+81
-39
detail.vue
pages/hotel/detail.vue
+4
-8
mapList.vue
pages/hotel/mapList.vue
+144
-49
order.vue
pages/hotel/order.vue
+130
-114
orderInfor.vue
pages/hotel/orderInfor.vue
+0
-3
orderdetails.vue
pages/hotel/orderdetails.vue
+51
-543
No files found.
pages/hotel/components/address/index.vue
View file @
fa516890
...
...
@@ -4,7 +4,7 @@
style=
"background-color: #F3F1EF"
>
<view
class=
"hotelAddress row justify-center"
>
<text>
目的地
</text>
<icon
@
click=
"
sur
e"
class=
"hotelClear"
type=
"clear"
size=
"20"
/>
<icon
@
click=
"
clos
e"
class=
"hotelClear"
type=
"clear"
size=
"20"
/>
</view>
<!--
<view
class=
"internationalBox row-sb-n"
>
<view
class=
"internationalName"
...
...
@@ -142,6 +142,9 @@ export default {
created
()
{
},
methods
:
{
close
(){
this
.
$emit
(
'close'
)
},
sure
(){
this
.
$emit
(
'sure'
,
this
.
parameters
)
},
...
...
pages/hotel/components/hotelRoom.vue
View file @
fa516890
...
...
@@ -306,8 +306,17 @@
return
mealtypeName
;
},
goUrl
(
subItem
){
let
HotelInfo
=
{
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
,
}
uni
.
navigateTo
({
url
:
`/pages/hotel/order?searchObj=
${
JSON
.
stringify
(
this
.
searchObj
)}
&dayObj=
${
JSON
.
stringify
(
this
.
dayObj
)}
&HotelInfo=
${
JSON
.
stringify
(
this
.
HotelInfo
)}
&RoomInfo=
${
JSON
.
stringify
(
subItem
)}
`
,
url
:
`/pages/hotel/order?searchObj=
${
JSON
.
stringify
(
this
.
searchObj
)}
&dayObj=
${
JSON
.
stringify
(
this
.
dayObj
)}
&HotelInfo=
${
JSON
.
stringify
(
HotelInfo
)}
&RoomInfo=
${
JSON
.
stringify
(
subItem
)}
`
,
});
},
openPicture
(
item
)
{
...
...
pages/hotel/components/search.vue
View file @
fa516890
<
template
>
<view
class=
"hotel-list-search"
>
<view
class=
"row items-center"
style=
"padding: 12rpx 0;"
>
<view
class=
"row items-center"
style=
"padding: 12rpx 0
0 0
;"
>
<view
class=
"search-box"
style=
"width: 1px;flex: 1;"
>
<view
class=
"hotel-city"
@
click=
"showCity"
>
<!--
<u-icon
name=
"location"
:size=
"24"
color=
"#000000"
style=
"margin-right: 8rpx"
></u-icon>
-->
...
...
@@ -35,6 +35,7 @@
active-color=
"#B99846"
inactive-color=
"#080A09"
title-size=
"28"
@
open=
"open"
@
close=
"close"
>
<u-dropdown-item
v-model=
"parameters.QOrderBy"
...
...
@@ -229,6 +230,7 @@
<destination
:msg=
"parameters"
@
sure=
"sureAddress"
@
searchCity=
"clickSearchCity"
@
close=
"closeAddress"
:PopularCities=
"PopularCities"
></destination>
</u-popup>
...
...
@@ -344,7 +346,30 @@
msg
:
{
handler
(
val
,
oldval
)
{
if
(
val
){
this
.
parameters
.
KeyWords
=
val
.
KeyWords
// this.parameters.KeyWords = val.KeyWords
this
.
parameters
=
{
...
val
}
if
(
val
.
QOrderBy
){
let
list
=
this
.
options1
.
filter
(
x
=>
{
return
x
.
value
==
val
.
QOrderBy
})
this
.
optionsTitle
[
0
]
=
list
[
0
].
label
}
if
(
val
.
CityName_CN
){
this
.
optionsTitle
[
1
]
=
val
.
CityName_CN
}
if
(
val
.
QStarRating
.
length
>
0
){
let
num
=
0
if
(
val
.
QStarRating
.
length
>
0
)
num
++
if
(
val
.
priceId
)
num
++
this
.
optionsTitle
[
2
]
=
`价格/星级
${
num
}
`
;
}
if
(
val
.
CityName
){
this
.
city
=
val
.
CityName
this
.
parameters
.
CityCode
=
val
.
CityCode
this
.
parameters
.
CityCode2
=
val
.
CityCode2
}
}
},
deep
:
true
,
...
...
@@ -357,38 +382,46 @@
uni
.
setNavigationBarTitle
({
title
:
"酒店"
,
});
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
.
startDay
=
obj
.
startDay
;
this
.
endDay
=
obj
.
endDay
;
this
.
day
=
obj
.
day
;
this
.
dayObj
=
obj
if
(
!
this
.
day
){
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
.
startDay
=
obj
.
startDay
;
this
.
endDay
=
obj
.
endDay
;
this
.
day
=
obj
.
day
;
this
.
dayObj
=
obj
}
this
.
getCity
()
this
.
getSearchCondition
()
// this.getLocation()
},
methods
:
{
open
(
index
)
{
this
.
$refs
.
uDropdown
.
highlight
();
},
close
(
index
)
{
this
.
$refs
.
uDropdown
.
highlight
(
index
);
},
FilterArea
(){
if
(
this
.
regionKeyWords
!=
''
){
this
.
regionList
=
this
.
regionListAll
.
filter
((
item
)
=>
{
...
...
@@ -451,6 +484,9 @@
}
});
},
closeAddress
(){
this
.
showCityList
=
false
},
sureAddress
(
msg
){
this
.
showCityList
=
false
;
if
(
this
.
parameters
.
CityCode2
!=
msg
.
CityCode2
){
...
...
@@ -516,6 +552,7 @@
obj
.
progressBarWidth
=
obj
.
_getMaxLength
();
obj
.
minBlockLeft
=
0
;
obj
.
maxBlockLeft
=
obj
.
_getMaxLength
();
this
.
parameters
.
priceId
=
0
this
.
tempRateAndPrice
.
priceId
=
0
this
.
tempRateAndPrice
=
{
price
:
{
...
...
@@ -541,6 +578,7 @@
changePrice
(
item
)
{
this
.
parameters
.
StartPrice
=
item
.
minPrice
?
item
.
minPrice
:
100
;
this
.
parameters
.
EndPrice
=
item
.
maxPrice
;
this
.
parameters
.
priceId
=
item
.
priceId
this
.
tempRateAndPrice
.
priceText
=
item
.
Name
;
this
.
tempRateAndPrice
.
price
=
[
item
.
minPrice
?
item
.
minPrice
:
100
,
item
.
maxPrice
]
this
.
tempRateAndPrice
.
priceId
=
item
.
priceId
...
...
@@ -626,18 +664,22 @@
this
.
apipost
(
'dmc_post_B2BAndB2CGetHotCity'
,{},
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
PopularCities
=
res
.
data
this
.
parameters
.
GName
=
this
.
PopularCities
[
0
].
GName
this
.
cityList
=
this
.
PopularCities
[
0
].
CityList
this
.
parameters
.
GName
=
this
.
PopularCities
[
0
].
GName
this
.
parameters
.
CityCode
=
this
.
PopularCities
[
0
].
CityList
[
0
].
CityCode
this
.
parameters
.
CityCode2
=
this
.
PopularCities
[
0
].
CityList
[
0
].
CityCode
this
.
city
=
this
.
parameters
.
CityName
=
this
.
PopularCities
[
0
].
CityList
[
0
].
CityName
this
.
getRegion
()
if
(
res
.
data
.
length
>
0
){
this
.
PopularCities
=
res
.
data
this
.
cityList
=
this
.
PopularCities
[
0
].
CityList
if
(
!
this
.
parameters
.
CityCode2
){
this
.
parameters
.
GName
=
this
.
PopularCities
[
0
].
GName
this
.
parameters
.
CityCode
=
this
.
PopularCities
[
0
].
CityList
[
0
].
CityCode
this
.
parameters
.
CityCode2
=
this
.
PopularCities
[
0
].
CityList
[
0
].
CityCode
this
.
city
=
this
.
parameters
.
CityName
=
this
.
PopularCities
[
0
].
CityList
[
0
].
CityName
}
this
.
getRegion
()
}
this
.
research
()
}
},
(
err
)
=>
{}
(
err
)
=>
{
}
);
},
// 区域
...
...
@@ -658,7 +700,7 @@
goMapHotel
(){
this
.
closeDropdown
()
uni
.
navigateTo
({
url
:
"/pages/hotel/mapList"
url
:
`/pages/hotel/mapList?msg=
${
encodeURIComponent
(
JSON
.
stringify
(
this
.
parameters
))}
?dayObj=
${
JSON
.
stringify
(
this
.
dayObj
)}
`
});
}
},
...
...
pages/hotel/detail.vue
View file @
fa516890
...
...
@@ -241,7 +241,7 @@
:qRoomType=
"qRoomTypeList"
:qMealType=
"qMealTypeList"
></hotelRoom>
</view>
<u-empty
v-show=
"getQueryData.length==0"
text=
"暂无
相关
房间"
mode=
"data"
padding-top=
"5"
></u-empty>
<u-empty
v-show=
"getQueryData.length==0"
text=
"暂无
空
房间"
mode=
"data"
padding-top=
"5"
></u-empty>
</view>
<view
style=
"border-radius: 15rpx 15rpx 0 0;background: #fff;overflow: hidden;"
>
<view
class=
"hotelFacilitiesBox"
>
...
...
@@ -529,13 +529,9 @@ export default {
},
methods
:
{
open
(
index
)
{
// 展开某个下来菜单时,先关闭原来的其他菜单的高亮
// 同时内部会自动给当前展开项进行高亮
this
.
$refs
.
uDropdown
.
highlight
();
},
close
(
index
)
{
// 关闭的时候,给当前项加上高亮
// 当然,您也可以通过监听dropdown-item的@change事件进行处理
this
.
$refs
.
uDropdown
.
highlight
(
index
);
},
changeType
(
item
,
type
){
...
...
@@ -1620,11 +1616,11 @@ export default {
padding
:
0
30
rpx
;
}
.hotelComprehensiv
{
height
:
78
rpx
;
line-height
:
70
rpx
;
min-height
:
50
rpx
;
font-size
:
28
rpx
;
color
:
#080A09
;
color
:
#080A09
;
justify-content
:
space-between
;
padding-bottom
:
20
rpx
;
}
.hotelComprehensiv.active
{
color
:
#B99846
;
...
...
pages/hotel/mapList.vue
View file @
fa516890
...
...
@@ -2,7 +2,9 @@
<view
class=
"hotel-list column"
style=
"background: #F3F1EF;"
>
<view
class=
"hotel-listHeader"
>
<hotelHeaders
:title=
"pageTitle"
></hotelHeaders>
<hotelSearch
@
change=
"change"
<hotelSearch
:msg=
"searchObj"
@
change=
"change"
@
getItem=
"getItem"
></hotelSearch>
</view>
<view
style=
"height: 1px;flex: 1;overflow: hidden;position: relative;"
>
...
...
@@ -11,6 +13,8 @@
:longitude=
"center.longitude"
:latitude=
"center.latitude"
:markers=
"markers"
:include-points=
"includePoints"
:padding=
"padding"
@
callouttap=
"handleCalloutClick"
>
</map>
...
...
@@ -59,16 +63,7 @@
searchObj
:
{
pageIndex
:
1
,
pageSize
:
15
,
Name
:
""
,
//关键字
// StartPrice: 0,
// EndPrice: 1000,
QStartDate
:
""
,
QEndDate
:
""
,
// OrderByType: "1", //排序类型
// QStars: "", //星级
TagList
:
[],
//查询标签
// City: 262, //市
// District: 0, //区
KeyWords
:
""
,
//关键字
},
day
:
0
,
startDay
:
""
,
...
...
@@ -90,30 +85,29 @@
dayObj
:
{},
mc
:
''
,
center
:
{
longitude
:
116.397428
,
latitude
:
39.90923
},
markers
:
[
{
id
:
1
,
latitude
:
39.909
,
longitude
:
116.39742
,
iconPath
:
''
,
title
:
''
,
alpha
:
0
,
callout
:{
content
:
'¥ 99999起'
,
bgColor
:
'#FF3166'
,
borderWidth
:
1
,
borderColor
:
'#E2D5D2'
,
color
:
'#fff'
,
fontSize
:
'12px'
,
fontWeight
:
'bold'
,
anchorX
:
0
,
anchorY
:
0
,
borderRadius
:
7
,
padding
:
5
,
display
:
'ALWAYS'
,
},
},
],
markers
:
[],
markersObj
:{
id
:
1
,
latitude
:
39.909
,
longitude
:
116.39742
,
iconPath
:
''
,
title
:
''
,
alpha
:
0
,
callout
:{
content
:
'¥ 99999起'
,
bgColor
:
'#FF3166'
,
borderWidth
:
1
,
borderColor
:
'#E2D5D2'
,
color
:
'#fff'
,
fontSize
:
'12px'
,
fontWeight
:
'bold'
,
anchorX
:
0
,
anchorY
:
0
,
borderRadius
:
7
,
padding
:
5
,
display
:
'ALWAYS'
,
},
},
bubble
:[
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638761641584224459.png'
,
'https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638761646347047352.png'
,
...
...
@@ -152,6 +146,7 @@
prevCurrent
:
null
,
current
:
0
,
nextCurrent
:
null
,
padding
:
[
20
,
50
,
20
,
50
],
};
},
components
:
{
...
...
@@ -167,6 +162,20 @@
if
(
options
&&
options
.
Name
)
{
this
.
searchObj
.
Name
=
options
.
Name
;
}
if
(
options
&&
options
.
msg
)
{
this
.
searchObj
=
{
...
this
.
searchObj
,
...
JSON
.
parse
(
decodeURIComponent
(
options
.
msg
))
};
console
.
log
(
JSON
.
parse
(
decodeURIComponent
(
options
.
msg
)),
'--------'
)
this
.
pageTitle
=
this
.
searchObj
.
CityName
}
if
(
options
&&
options
.
dayObj
){
this
.
dayObj
=
JSON
.
parse
(
options
.
dayObj
)
this
.
startDay
=
this
.
dayObj
.
startDay
;
this
.
endDay
=
this
.
dayObj
.
endDay
;
this
.
day
=
this
.
dayObj
.
day
;
}
},
created
()
{
uni
.
setNavigationBarTitle
({
...
...
@@ -194,6 +203,8 @@
day
:
1
,
startWeek
:
startWeek
,
endWeek
:
endWeek
,
startTime
:
`
${
d1
.
getFullYear
()}
-
${
Month1
}
-
${
Day1
}
`
,
endTime
:
`
${
d1
.
getFullYear
()}
-
${
Month2
}
-
${
Day2
}
`
};
this
.
dayObj
=
obj
;
uni
.
setStorage
({
...
...
@@ -205,11 +216,13 @@
this
.
startDay
=
obj
.
startDay
;
this
.
endDay
=
obj
.
endDay
;
this
.
day
=
obj
.
day
;
this
.
getList
();
// this.getLocation()
},
methods
:
{
getItem
(
obj
)
{
getItem
(
parameters
,
obj
)
{
this
.
searchObj
=
{
...
this
.
searchObj
,
...
parameters
}
this
.
dayObj
=
{
...
obj
,
startTime
:
`
${
obj
.
year
}
-
${
obj
.
startDay
}
`
,
...
...
@@ -218,19 +231,45 @@
},
handleCalloutClick
(
marker
)
{
console
.
log
(
'点击了标记:'
,
marker
.
detail
);
// 可自定义弹窗逻辑或跳转页面
this
.
current
=
marker
.
detail
.
markerId
-
1
console
.
log
(
this
.
current
,
'----'
)
this
.
setNewMarkers
()
},
setNewMarkers
(){
for
(
let
i
=
0
;
i
<
this
.
markers
.
length
;
i
++
)
{
if
(
i
==
this
.
current
){
this
.
center
=
{
longitude
:
this
.
markers
[
i
].
longitude
,
latitude
:
this
.
markers
[
i
].
latitude
,
}
this
.
markers
[
this
.
current
]
=
{
...
this
.
markers
[
i
],
callout
:{
...
this
.
markers
[
i
].
callout
,
...
this
.
editCallout1
,
}
}
}
else
{
this
.
markers
[
i
]
=
{
...
this
.
markers
[
i
],
callout
:{
...
this
.
markers
[
i
].
callout
,
...
this
.
editCallout2
,
}
}
}
}
this
.
$forceUpdate
()
},
getLocation
()
{
wx
.
getLocation
({
type
:
'wgs84'
,
// 精度模式
success
:
(
res
)
=>
{
this
.
longitude
=
res
.
longitude
;
this
.
latitude
=
res
.
latitude
;
// 更新地图中心点
this
.
$refs
.
map
.
moveToLocation
({
longitude
:
res
.
longitude
,
latitude
:
res
.
latitude
});
if
(
this
.
$refs
.
map
)
this
.
$refs
.
map
.
moveToLocation
({
longitude
:
res
.
longitude
,
latitude
:
res
.
latitude
});
},
fail
:
(
err
)
=>
{
console
.
error
(
'定位失败'
,
err
);
...
...
@@ -244,6 +283,8 @@
changeCurrent
(
e
)
{
this
.
prevCurrent
=
this
.
current
this
.
current
=
e
.
detail
.
current
;
this
.
setNewMarkers
()
let
length
=
this
.
HotelList
.
length
if
((
length
-
1
)
==
this
.
current
){
this
.
nextCurrent
=
0
...
...
@@ -268,25 +309,31 @@
...
this
.
searchObj
,
...
item
,
}
if
(
item
.
CityName
)
this
.
pageTitle
=
item
.
CityName
this
.
research
();
},
//获取列表数据
getList
(
type
)
{
if
(
this
.
showLoading
)
return
this
.
showLoading
=
true
uni
.
showLoading
({
title
:
"加载中"
,
mask
:
true
});
this
.
searchObj
.
QStars
=
this
.
tempRateAndPrice
.
rate
.
toString
();
if
(
type
==
1
)
{
this
.
HotelList
=
[];
}
this
.
request2
({
url
:
"/api/Hotel/AppGetHotelPage"
,
data
:
this
.
searchObj
,
},
this
.
markers
=
[]
this
.
includePoints
=
[]
this
.
apipost
(
"dmc_post_B2BAndB2CGetDidaHotelPage"
,
this
.
searchObj
,
(
res
)
=>
{
if
(
res
.
resultCode
==
1
)
{
this
.
showLoading
=
false
uni
.
hideLoading
()
if
(
this
.
searchObj
.
pageIndex
===
1
)
{
this
.
HotelList
=
res
.
data
.
pageData
;
}
else
{
this
.
HotelList
=
this
.
HotelList
.
concat
(
res
.
data
.
pageData
);
}
this
.
setMarkers
()
let
length
=
this
.
HotelList
.
length
this
.
prevCurrent
=
length
-
1
if
((
length
-
1
)
==
this
.
current
){
...
...
@@ -294,9 +341,57 @@
}
else
this
.
nextCurrent
=
this
.
current
+
1
this
.
page_count
=
res
.
data
.
pageCount
;
}
},
(
err
)
=>
{
this
.
showLoading
=
false
uni
.
hideLoading
()
}
);
},
includePoints
(){
let
list
=
[]
for
(
let
i
=
0
;
i
<
pageData
.
length
;
i
++
)
{
list
.
push
({
latitude
:
pageData
[
i
].
latitude
,
longitude
:
pageData
[
i
].
longitude
,
})
}
return
list
},
setMarkers
(){
let
pageData
=
this
.
HotelList
if
(
pageData
.
length
==
0
)
return
for
(
let
i
=
0
;
i
<
pageData
.
length
;
i
++
)
{
this
.
includePoints
.
push
({
latitude
:
pageData
[
i
].
latitude
,
longitude
:
pageData
[
i
].
longitude
,
})
let
obj
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
markersObj
))
obj
=
{
...
obj
,
id
:
i
+
1
,
latitude
:
pageData
[
i
].
latitude
,
longitude
:
pageData
[
i
].
longitude
,
callout
:{
...
obj
.
callout
,
content
:
`CNY
${
pageData
[
i
].
unitprice
}
起`
,
...
this
.
editCallout2
}
}
if
(
i
==
0
){
obj
.
callout
=
{
...
obj
.
callout
,
...
this
.
editCallout1
}
this
.
center
=
{
longitude
:
pageData
[
0
].
longitude
,
latitude
:
pageData
[
0
].
latitude
,
}
}
this
.
markers
.
push
(
obj
)
}
this
.
$forceUpdate
()
}
},
};
</
script
>
...
...
pages/hotel/order.vue
View file @
fa516890
...
...
@@ -42,10 +42,10 @@
<view
class=
"row col"
style=
"width:1px;flex: 1;"
>
<view
class=
"visaProduct_rColor visaProductTextL"
>
*
</view>
<view
class=
"visaProductTitle"
>
订房信息
</view>
<view
v-if=
"tipsText"
class=
"row visaProduct_rColor visaProductTextR items-center"
>
<
!--
<
view
v-if=
"tipsText"
class=
"row visaProduct_rColor visaProductTextR items-center"
>
<view>
{{
tipsText
}}
</view>
<img
style=
"width: 19rpx;height: 19rpx;margin-left: 5rpx;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638751271514841634.png"
/>
</view>
</view>
-->
</view>
<view
class=
"row-sbas-n items-center"
>
<view
class=
"addPnum addPnumL"
@
click=
"orderMsg.RoomCount>1?editNum(1):''"
>
...
...
@@ -106,20 +106,20 @@
<
view
class
=
"val"
>
<
input
type
=
"text"
v
-
model
=
"orderMsg.guestPhoneNumber"
placeholder
=
"输入电话号码"
/>
<
/view
>
<
/view
>
<!--
<
view
class
=
"form-items"
>
<
view
class
=
"label"
>
预计到店
<
/view
>
<
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
>
<
view
class
=
"form-items"
>
<
view
class
=
"label"
>
E
-
mail
<
/view
>
<
view
class
=
"val"
>
<
input
type
=
"text"
v
-
model
=
"orderMsg.guestEmail"
placeholder
=
"用于接收信息"
/>
<
/view
>
<
/view>
<
view
class
=
"form-items"
>
<
view
class
=
"label"
>
预计到店
<
/view
>
<
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
>
<
/view
>
<
view
class
=
"CouponBox"
>
...
...
@@ -232,7 +232,7 @@
<
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
=
"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
>
...
...
@@ -240,9 +240,9 @@
<
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
"
<
coupon
v
-
if
=
"couponList.length > 0 && showCoupon"
:
price
=
"
getPrice(orderMsg.TotalPrice)
"
:
list
=
"couponList"
:
current
=
"useCouponIds"
@
close
=
"closeCouponHandler"
:
current
-
price
=
"realCurrentPriceInfo"
:
order
=
"orderMsg"
:
order
=
"orderMsg"
:
numberPeople
=
"searchObj.peoples"
><
/coupon
>
<
/view
>
<
/template
>
...
...
@@ -255,10 +255,6 @@ import coupon from '@/components/coupon/index';
}
,
data
()
{
return
{
order
:
{
roomCount
:
1
,
userName
:
''
}
,
btnStyle
:{
height
:
"80rpx"
,
lineHeight
:
"80rpx"
,
...
...
@@ -269,6 +265,16 @@ import coupon from '@/components/coupon/index';
fontWeight
:
"600"
,
width
:
'193rpx'
,
}
,
btnStyle2
:{
height
:
"80rpx"
,
lineHeight
:
"80rpx"
,
borderRadius
:
"16rpx"
,
background
:
"#eee"
,
color
:
"#000"
,
fontSize
:
"28rpx"
,
fontWeight
:
"600"
,
width
:
'193rpx'
,
}
,
RoomInfo
:{
}
,
dayObj
:{
}
,
HotelInfo
:{
}
,
...
...
@@ -281,7 +287,7 @@ import coupon from '@/components/coupon/index';
// Final_Price:'',
// Consignee:'', //联系人
// ConsigneeMobile:'', //;联系电话
//
ArrivalTime:'14:00', //预计到达时间
ArrivalTime
:
'14:00'
,
//预计到达时间
EmployeeIdStr
:
""
,
//销售id
CheckInDate
:
""
,
//到店时间
...
...
@@ -321,9 +327,7 @@ import coupon from '@/components/coupon/index';
countrys
:[],
couponList
:
[],
showCoupon
:
false
,
price
:
0
,
useCouponIds
:
[],
realCurrentPriceInfo
:
{
}
,
currentCoupon
:
{
discountMoney
:
0
}
,
...
...
@@ -368,6 +372,7 @@ import coupon from '@/components/coupon/index';
this
.
HotelInfo
=
JSON
.
parse
(
options
.
HotelInfo
)
console
.
log
(
this
.
HotelInfo
,
'-----------HotelInfo'
)
this
.
orderMsg
.
hotelId
=
this
.
HotelInfo
.
hotelid
;
this
.
orderMsg
.
HotelName
=
this
.
HotelInfo
.
name
}
if
(
options
.
RoomInfo
){
this
.
RoomInfo
=
JSON
.
parse
(
options
.
RoomInfo
)
...
...
@@ -384,7 +389,7 @@ import coupon from '@/components/coupon/index';
console
.
log
(
this
.
RoomInfo
,
'-----------RoomInfo'
)
this
.
orderMsg
.
RatePlanID
=
this
.
RoomInfo
.
RatePlanID
this
.
orderMsg
.
TotalPrice
=
this
.
getPrice
(
this
.
RoomInfo
.
TotalPrice
);
//
this.orderMsg.TotalPrice = this.getPrice(this.RoomInfo.TotalPrice);
this
.
orderMsg
.
CheckInDate
=
this
.
dayObj
.
start
;
this
.
orderMsg
.
CheckOutDate
=
this
.
dayObj
.
end
;
...
...
@@ -411,7 +416,6 @@ import coupon from '@/components/coupon/index';
}
;
this
.
orderMsg
.
GuestList
.
push
(
obj
);
}
);
console
.
log
(
this
.
orderMsg
.
GuestList
)
this
.
params
=
{
sort
:
1
,
displayFrom
:
1
,
...
...
@@ -426,11 +430,100 @@ import coupon from '@/components/coupon/index';
OccupancyDetails
:
[],
hotelId
:
this
.
orderMsg
.
hotelId
}
this
.
getUserCouponList
()
this
.
CalTotalPrice
();
this
.
GetCountryInfo
()
this
.
initHotel
()
}
,
methods
:{
submitB2COrderHandler
(
OrderId
)
{
let
userInfo
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
let
guestInfo
=
`成人x${this.searchObj.adultsNumber
}
; `
;
if
(
this
.
orderMsg
.
ChirdNeedBedNum
>
0
)
{
guestInfo
+=
`儿童${this.searchObj.childrenNumberZC
}
; `
;
}
let
msg
=
{
SurName
:
this
.
customer
.
SurName
,
Name
:
this
.
customer
.
name
,
ContactNumber
:
this
.
orderMsg
.
guestPhoneNumber
,
Mailbox
:
this
.
orderMsg
.
guestEmail
,
GoodsId
:
this
.
orderMsg
.
RatePlanID
,
GoodsName
:
this
.
HotelInfo
.
name
,
GoodsPic
:
this
.
HotelInfo
.
images
[
0
].
Path
,
GoodsType
:
9
,
OrderMake
:
`${this.orderMsg.CheckInDate
}
入住;${this.orderMsg.CheckOutDate
}
离店 ${guestInfo
}
`
,
TotalPrice
:
this
.
getPrice
(
this
.
orderMsg
.
TotalPrice
),
PreferentialPrice
:
this
.
currentCoupon
.
discountMoney
,
ErpOrderId
:
OrderId
,
Country
:
0
,
PlatformTax
:
0
,
Income
:
0
,
Refund
:
0
,
MallBaseId
:
userInfo
.
MallBaseId
,
CreateBy
:
0
}
;
// #ifdef MP-DI
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
)
uni
.
showToast
({
icon
:
'none'
,
title
:
'订单创建成功'
}
)
this
.
goPayHandler
(
res
.
data
.
OrderNo
);
}
else
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
,
duration
:
3000
}
)
this
.
submit
=
false
;
}
}
);
}
,
goPayHandler
(
OrderNo
)
{
let
that
=
this
;
uni
.
requestPayment
({
provider
:
"wxpay"
,
timeStamp
:
this
.
orderInfo
.
timeStamp
,
nonceStr
:
this
.
orderInfo
.
nonceStr
,
package
:
this
.
orderInfo
.
package
,
signType
:
this
.
orderInfo
.
signType
,
paySign
:
this
.
orderInfo
.
sign
,
success
:
function
(
res
)
{
console
.
log
(
"success"
,
res
);
that
.
submit
=
false
;
uni
.
showToast
({
title
:
"支付成功"
,
}
);
setTimeout
(()
=>
{
uni
.
redirectTo
({
url
:
"/pages/jiuzhai/paysuccess?PreferPrice="
+
(
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
:
"支付失败"
,
icon
:
"none"
,
}
);
setTimeout
(()
=>
{
uni
.
redirectTo
({
url
:
"/pages/hotel/orderdetails?OrderNo="
+
OrderNo
,
}
);
}
,
100
);
}
,
}
);
}
,
//日期格式化
getformatDateStr
(
value
)
{
var
dt
=
new
Date
(
value
);
...
...
@@ -456,9 +549,8 @@ 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
.
HotelName
=
this
.
HotelInfo
.
HotelName
//
this.orderMsg.TotalPrice = this.getPrice(this.roomRateDetails.TotalPrice);
this
.
orderMsg
.
TotalPrice
=
this
.
getPrice
(
this
.
roomRateDetails
.
TotalPrice
);
if
(
this
.
roomRateDetails
.
RatePlanList
&&
this
.
roomRateDetails
.
RatePlanList
.
length
>
0
){
this
.
orderMsg
.
roomType
=
this
.
roomRateDetails
.
RatePlanList
[
0
].
BedType
...
...
@@ -474,6 +566,9 @@ import coupon from '@/components/coupon/index';
this
.
dataList
.
HotelList
=
arr
;
}
}
}
,
err
=>
{
uni
.
hideLoading
();
this
.
submit
=
false
;
}
);
}
,
getPrice
(
price
)
{
...
...
@@ -540,9 +635,14 @@ import coupon from '@/components/coupon/index';
"lineId"
:
''
,
//线路ID
"lineteamId"
:
0
,
//系列ID
"userId"
:
this
.
customer
.
accountId
,
"CouponsUseScope"
:
11
,
//特定使用平台(当地游=8 跟团游=2 小包团=10)
"CouponsUseScope"
:
9
,
//酒店
"isExpansion"
:
0
,
//是否启动膨胀金1-是
// #ifdef MP-DI
"CustomerType"
:
1
,
//客户类型 0-同行,1-直客
// #endif
// #ifdef MP-AG
"CustomerType"
:
0
,
//客户类型 0-同行,1-直客
// #endif
"TCID"
:
''
,
}
this
.
apipost
(
...
...
@@ -620,6 +720,7 @@ import coupon from '@/components/coupon/index';
]
}
)
}
this
.
searchObj
.
rooms
=
this
.
orderMsg
.
GuestList
.
length
this
.
CalTotalPrice
();
}
,
getDate
(
date
){
...
...
@@ -721,94 +822,7 @@ import coupon from '@/components/coupon/index';
}
);
}
,
submitB2COrderHandler
(
OrderId
)
{
let
userInfo
=
uni
.
getStorageSync
(
"mall_UserInfo"
);
let
guestInfo
=
`成人x${this.searchObj.adultsNumber
}
; `
;
if
(
this
.
orderMsg
.
ChirdNeedBedNum
>
0
)
{
guestInfo
+=
`儿童${this.searchObj.childrenNumberZC
}
; `
;
}
let
msg
=
{
SurName
:
this
.
customer
.
SurName
,
Name
:
this
.
customer
.
name
,
ContactNumber
:
this
.
orderMsg
.
guestPhoneNumber
,
Mailbox
:
this
.
orderMsg
.
guestEmail
,
GoodsId
:
this
.
orderMsg
.
RatePlanID
,
GoodsName
:
this
.
HotelInfo
.
name
,
GoodsPic
:
this
.
HotelInfo
.
images
[
0
].
Path
,
GoodsType
:
9
,
OrderMake
:
`${this.orderMsg.CheckInDate
}
入住;${this.orderMsg.CheckOutDate
}
离店 ${guestInfo
}
`
,
TotalPrice
:
this
.
getPrice
(
this
.
orderMsg
.
TotalPrice
),
PreferentialPrice
:
this
.
currentCoupon
.
discountMoney
,
ErpOrderId
:
OrderId
,
Country
:
0
,
PlatformTax
:
0
,
Income
:
0
,
Refund
:
0
,
MallBaseId
:
userInfo
.
MallBaseId
,
CreateBy
:
0
}
;
// #ifdef MP-DI
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
)
uni
.
showToast
({
icon
:
'none'
,
title
:
'订单创建成功'
}
)
this
.
goPayHandler
(
res
.
data
.
OrderNo
);
}
else
{
uni
.
showToast
({
title
:
res
.
message
,
icon
:
'none'
,
duration
:
3000
}
)
this
.
submit
=
false
;
}
}
);
}
,
goPayHandler
(
OrderNo
)
{
let
that
=
this
;
uni
.
requestPayment
({
provider
:
"wxpay"
,
timeStamp
:
this
.
orderInfo
.
timeStamp
,
nonceStr
:
this
.
orderInfo
.
nonceStr
,
package
:
this
.
orderInfo
.
package
,
signType
:
this
.
orderInfo
.
signType
,
paySign
:
this
.
orderInfo
.
sign
,
success
:
function
(
res
)
{
console
.
log
(
"success"
,
res
);
that
.
submit
=
false
;
uni
.
showToast
({
title
:
"支付成功"
,
}
);
setTimeout
(()
=>
{
uni
.
redirectTo
({
url
:
"/pages/jiuzhai/paysuccess?PreferPrice="
+
(
that
.
getPrice
(
that
.
orderMsg
.
TotalPrice
)
-
that
.
currentCoupon
.
discountMoney
).
toFixed
(
2
)
+
"&isFrom=5"
,
}
);
}
,
100
);
}
,
fail
:
function
(
err
)
{
console
.
log
(
"fail:"
,
err
);
that
.
submit
=
false
;
uni
.
showToast
({
title
:
"支付失败"
,
icon
:
"none"
,
}
);
setTimeout
(()
=>
{
uni
.
redirectTo
({
url
:
"/pages/jiuzhai/jz_SureOrder?OrderNo="
+
OrderNo
,
}
);
}
,
100
);
}
,
}
);
}
,
}
}
<
/script
>
...
...
@@ -984,7 +998,8 @@ import coupon from '@/components/coupon/index';
.
hotel
-
order
.
o
-
head
.
room
-
remark
{
font
-
weight
:
500
;
font
-
size
:
28
rpx
;
color
:
#
1
D1D20
color
:
#
1
D1D20
;
flex
-
shrink
:
0
;
}
.
hotel
-
order
.
o
-
head
.
rule
{
font
-
size
:
22
rpx
;
...
...
@@ -1041,6 +1056,7 @@ import coupon from '@/components/coupon/index';
font
-
weight
:
500
;
font
-
size
:
28
rpx
;
color
:
#
1
D1D20
;
flex
-
shrink
:
0
;
}
.
visaProductTextBox
{
padding
:
29
rpx
0
21
rpx
0
;
...
...
pages/hotel/orderInfor.vue
View file @
fa516890
...
...
@@ -213,9 +213,6 @@
active
:
1
,
islike
:
false
,
nearbyType
:
0
,
searchObj
:
{
date
:
{},
},
roomMsg
:
{
HotelId
:
0
,
StartDate
:
""
,
...
...
pages/hotel/orderdetails.vue
View file @
fa516890
...
...
@@ -44,7 +44,7 @@
style=
"width: 14rpx;height: 68rpx;"
src=
"https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638766174213789755.png"
/>
</view>
<view
class=
"orderIforRzTime column"
>
<view
class=
"orderIforRzTime column
col
"
>
<view>
入住:
<text>
2月25日 周二 14:00后
</text></view>
<view
style=
"margin-top: 28rpx;"
>
离店:
<text>
2月28日 周五 12:00前
</text></view>
</view>
...
...
@@ -74,7 +74,7 @@
style=
"flex: 1; margin-left: 30rpx; text-align: left"
class=
"name-ali"
>
{{
dataList
.
HotelName
}}
酒店名称
</view
>
</view>
...
...
@@ -140,170 +140,24 @@
<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
:{
...
...
@@ -333,7 +187,6 @@
},
onLoad
(
options
)
{
this
.
id
=
options
.
id
;
this
.
roomMsg
.
HotelId
=
options
.
id
;
let
that
=
this
;
uni
.
getSystemInfo
({
success
(
res
)
{
...
...
@@ -345,97 +198,52 @@
},
});
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
();
if
(
this
.
id
)
this
.
getOrderDetail
(
this
.
id
);
},
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
)
{
//立即购买
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
)
{
...
...
@@ -459,196 +267,6 @@
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
...
...
@@ -661,32 +279,13 @@
:
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
;
},
//获取酒店详情
get
Hotel
Detail
(
id
)
{
get
Order
Detail
(
id
)
{
let
msg
=
{
HotelId
:
id
,
StartDate
:
this
.
dayObj
.
start
,
...
...
@@ -699,103 +298,12 @@
},
(
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
);
console
.
log
(
res
,
'订单详情数据'
);
}
}
);
},
// #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
},
};
...
...
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