Commit 37e7e47f authored by youjie's avatar youjie

酒店

parent 903ea686
<template>
<view class="hotel-list-item"
:class="[isMap?'hotel-mapList':'']" @click="goHotelDetail(item.HotelId)">
:class="[isMap?'hotel-mapList':'']" @click="goHotelDetail(item.hotelid)">
<view class="img-box">
<image :src="item.coverimg" mode="aspectFill"></image>
</view>
......
......@@ -3,34 +3,19 @@
<view class="big-title">
<text>设施服务</text>
</view>
<view class="big-titleAssis">休闲健身</view>
<ul class="title-style-two row">
<li>
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638763470948443226.png"/>
<text class="item-title">
提供早餐(收费)
</text>
</li>
<li>
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638763470948443226.png"/>
<text class="item-title">
提供早餐(收费)
</text>
</li>
<li>
<!-- <view class="big-titleAssis">休闲健身</view> -->
<ul class="title-style-two row" >
<template v-for="item in dataList.facilities">
<li v-if="item.description">
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638763470948443226.png"/>
<text class="item-title">
提供早餐(收费)
{{ item.description }}
</text>
</li>
<li>
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638763470948443226.png"/>
<text class="item-title">
提供早餐(收费)
</text>
</li>
</li>
</template>
</ul>
<view class="big-titleAssis2">生活服务</view>
<!-- <view class="big-titleAssis2">生活服务</view>
<ul class="title-style-two row">
<li>
<img src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638763470948443226.png"/>
......@@ -121,7 +106,10 @@
提供早餐(收费)
</text>
</li>
</ul>
</ul> -->
<view class="big-titleAssis2">客房信息
<view class="hotelSheShitisp">酒店全部客房设施信息仅供参考,可能与您入住的房型略有差异,请知晓</view>
</view>
</view>
</template>
......
......@@ -2,9 +2,9 @@
<view class="hotelFacilitiesXinXi">
<!--:style="{background: `url(${dataList.HotelImg[0].Path}) no-repeat`}"-->
<view class="hotelInforBox">
<image class="hotelInforBoxBj" mode="scaleToFill" :src="dataList.HotelImg[0].Path" />
<image class="hotelInforBoxBj" mode="scaleToFill" :src="dataList.rooms[0].url" />
<view class="hotelInforCenterBox">
<view class="hotelInforTitle">上海淳大万丽酒店</view>
<view class="hotelInforTitle">{{ dataList.name }}</view>
<view class="hotelInforCenter column">
<view class="hotelInforCB row-sb-n">
<view class="hotelInforCBL">开业时间:<text>2015年</text></view>
......@@ -13,7 +13,7 @@
<view class="hotelInforCB row-sb-n">
<view class="hotelInforCBL">酒店等级:
<img class="hotelInforStar"
v-for="(item,index) in dataList.Star"
v-for="(item,index) in dataList.starRating"
:key="index"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638762795578682801.png"/>
......@@ -23,7 +23,7 @@
<view class="hotelInforCB">
联系电话:
<text>
021-68888888
{{dataList.telephone}}
<img
class="hotelInforPhone"
src="https://viitto-1301420277.cos.ap-chengdu.myqcloud.com/Upload/Goods/638763341462574374.png"/>
......@@ -32,7 +32,7 @@
<view class="row hotelInforCAddress">
<view>详细地址:</view>
<view class="hotelInforCAddressL">
首尔龙山美爵大使酒店及公寓坐落于首尔中心地段,步行前往龙山电子市场只需 8 分钟、前往新罗爱宝客购物中心需 12 分钟。 此娱乐场酒店距离韩国战争纪念馆 1.7 英里(2.8 公里)。
{{ dataList.location.address }}
</view>
</view>
</view>
......
......@@ -6,24 +6,36 @@
<view class="big-titleAssis">入住和离店</view>
<ul class="title-style-one">
<li>
<text class="item-title">
可自行办理入住手续的最低年龄
<rich-text class="item-title" :nodes="dataList.policy.description"></rich-text>
<text class="item-content">
</text>
</li>
<!-- <li>
<text class="item-title">入住时间开始于</text>
<text class="item-content">
19
{{ dataList.policy.checkinFrom }}
</text>
</li>
</ul>
<view class="big-titleAssis2">费用</view>
<ul class="title-style-one">
<li>
<text class="item-title">
自助式早餐费用:
</text>
<text class="item-title">退房时间结束于</text>
<text class="item-content">
成人约为 KRW 55000,儿童约为 KRW 27500
{{ dataList.policy.checkoutTo }}
</text>
</li>
</li> -->
</ul>
<view class="big-titleAssis2">费用</view>
<ul class="title-style-one">
<template v-for="item in dataList.policy.extraInfoList">
<li v-if="item.value">
<text class="item-title" v-if="item.description">
{{item.description}}:
</text>
<text class="item-content">
{{item.value}}
</text>
</li>
</template>
<li class="hotelZCtisp">上面所列内容可能并不完整。这些费用和押金可能不包括税款,并且可能会随时发生变化。</li>
</ul>
</view>
......@@ -51,6 +63,12 @@
<style scoped>
@import url("@/asset/css/flex.css");
.hotelZhenCe rich-text {
font-size: 12px;
font-weight: normal;
line-height: 1.8;
color: #666;
}
.hotelZhenCe{
padding: 0 6rpx 33rpx 6rpx;
border-bottom: 1rpx solid #E9E9E9;
......
......@@ -65,28 +65,31 @@
</u-dropdown-item>
</u-dropdown>
<view style="padding: 0 31rpx;">
<view class="hotelDetailBox activeTag">
<view class="hotelDetailBox activeTag"
v-for="(item,index) in RoomList" :key="index">
<view class="hotelDetailTag">
热门房型
</view>
<view class="hotelDetail row">
<view class="hotelDetailL">
<image mode="aspectFit" />
<view class="hotelDetailLImgs">
5
<image mode="scaleToFill" :src="item.url"/>
<view class="hotelDetailLImgs" v-if="item.images.length>1">
{{ item.images.length }}
</view>
</view>
<view class="hotelDetailR column">
<view class="hotelDetailRTitle row items-center">
<view>
豪华双床房
{{ item.roomName }}
</view>
<img :src="openImg[0]" />
<!--
<img :src="openImg[0]" />-->
</view>
<view class="hotelDetailRRoom">
Deluxe Double Room(2 beds)
<!--
Deluxe Double Room(2 beds)-->
</view>
<view class="hotelDetailRCheckin">2人入住 24㎡ 1-3</view>
<view class="hotelDetailRCheckin">{{item.maxOccupancy}}人入住 {{item.size}}{{item.floor}}</view>
<view class="hotelDetailREat">
不含早餐
<text>入住当天18:00前可免费取消</text>
......@@ -153,7 +156,7 @@
<script>
export default {
props: ['dataList','search','RoomList'],
props: ['dataList','search','rooms'],
components: {},
data() {
return {
......@@ -191,6 +194,17 @@
parameters: {},
};
},
watch:{
rooms: {
handler (val, oldval) {
if(val){
this.RoomList = val
console.log(this.RoomList,'rooms');
}
},
deep: true,
},
},
onLoad(options) {
},
......@@ -210,7 +224,7 @@
this.threeLevelList.forEach((x) => {
if (x.isCheck == 1) {
num++;
this.dataList.RoomList.forEach((y) => {
this.dataList.rooms.forEach((y) => {
if (x.id == 1 && y.BedType == 1) {
this.RoomList.push(y);
}
......@@ -235,7 +249,7 @@
this.isShowAll = false;
}
if (num == 0) {
this.RoomList = this.dataList.RoomList;
this.RoomList = this.dataList.rooms;
}
},
open(index) {
......@@ -844,10 +858,10 @@
overflow: hidden;
position: relative;
border-radius: 15rpx;
// border: 2px solid #FFFFFF;
background: #FFFFFF;
overflow: hidden;
box-shadow: 0rpx 10rpx 30rpx 0rpx rgba(36,36,36,0.2);
margin-bottom: 31rpx;
}
.hotelDetailTag{
position: absolute;
......
......@@ -75,17 +75,6 @@
@change="FilterArea"></u-search>
</view>
<view class="row" style="height: 1px;flex: 1;">
<!--<view class="hotelRegionL">
<scroll-view :scroll-y="true" style="height: 100%;">
<view class="hotelRegionLText row items-center justify-center"
:class="[parameters.CityCode2==item.CityCode?'active':'']"
v-for="(item,index) in cityList" :key="index"
@click="confirmCity(item)">
<view class="hotelPopular"></view>
<text>{{ item.CityName }}</text>
</view>
</scroll-view>
</view>-->
<view class="hotelRegionR">
<scroll-view :scroll-y="true" style="height: 100%;">
<template v-if="regionList.length>0">
......@@ -245,64 +234,7 @@
<u-popup v-model="showTimePopup"
mode="bottom" border-radius="20" length="75%" :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" @change="crChange" v-model="parameters.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="parameters.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="parameters.childrenNumberZC"
@change="etChange"
></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="parameters.childrenNumberBZC"></u-number-box>
</view>-->
</view>
</view>
<CheckDate :msg="parameters" @chosenDateResult="chosenDateResult"></CheckDate>
</u-popup>
<u-popup v-model="showSearchCity" mode="Right" length="100%">
......@@ -318,13 +250,15 @@
import hotelGood from "./hotel-good.vue";
import destination from "./address/index.vue";
import searchCity from "./address/searchCity.vue";
import CheckDate from "./time/date.vue";
export default {
components: {
rangeSlider,
canlendar,
hotelGood,
destination,
searchCity
searchCity,
CheckDate
},
props:['isMap','msg'],
data() {
......@@ -345,6 +279,7 @@
CityName: '',//目的地
CityCode2: '',//目的地代码
regionCode: '',//区域
CityName_CN: '',
// QStartDate: "",//开始日期
// QEndDate: "",//结束日期
......@@ -480,6 +415,7 @@
this.searchClose()
this.research()
},
// 关键字搜索弹出层
clickSearchCity(type){
this.SearchCityType = type?type:null
this.showSearchCity = true
......@@ -506,18 +442,6 @@
this.research()
}
},
etChange(e){
this.parameters.childrenNumberZC = e.value;
this.peopleChange()
},
crChange(e){
this.parameters.adultsNumber = e.value;
this.peopleChange()
},
peopleChange(){
this.parameters.peoples = this.parameters.adultsNumber + this.parameters.childrenNumberZC
console.log(this.parameters.peoples,'人数')
},
// 筛选排序
sureFilter(){
this.$forceUpdate();
......@@ -530,6 +454,7 @@
},
// 位置排序
sureRegion(){
this.optionsTitle[1] = this.parameters.CityName_CN
this.$forceUpdate();
this.closeDropdown();
this.city = this.parameters.CityName
......@@ -537,6 +462,7 @@
this.research();
},
resetRegion(){
this.optionsTitle[1] = '位置区域'
this.closeDropdown()
this.parameters.regionCode = ''
if(this.parameters.CityCode!=this.parameters.CityCode2){
......@@ -547,19 +473,18 @@
showCity() {
this.showCityList = true;
},
confirmCity(val) {
this.City = this.parameters.CityName = val.CityName;
if(this.parameters.CityCode2!= val.CityCode){
this.parameters.CityCode2 = val.CityCode;
this.getRegion()
}
},
changeDistrict(item) {
this.parameters.regionCode = item.CityCode
this.parameters.CityName_CN = item.CityName_CN
},
// 价格排序
surePrice() {
this.parameters.QStarRating = this.tempRateAndPrice.rate
let num = 0
console.log(this.parameters.QStarRating.length>0,this.tempRateAndPrice.price)
if(this.parameters.QStarRating.length>0) num++
if(this.tempRateAndPrice.priceId>0) num++
if(num) this.optionsTitle[2] = `价格/星级 ${num}`;
this.closeDropdown();
this.research();
},
......@@ -586,7 +511,7 @@
this.closeDropdown();
this.research();
},
rangechange(e,option,type) {
rangechange(e) {
this.parameters.StartPrice = e.minValue
this.parameters.EndPrice = e.maxValue
this.tempRateAndPrice.priceText = `¥${e.minValue}~${e.maxValue}`;
......@@ -620,21 +545,17 @@
chosenDate() {
this.showTimePopup = true;
},
chosenDateResult(obj) {
// this.parameters.QStartDate = obj.start;
// this.parameters.QEndDate = obj.end;
chosenDateResult(parameters,obj) {
this.parameters = parameters
this.startDay = obj.startDay;
this.endDay = obj.endDay;
this.day = obj.day;
this.dayObj = obj;
this.showTimePopup = false;
this.research();
},
closeDropdown() {
this.$refs.uDropdown.close();
},
research() {
this.$emit('change',this.parameters);
},
......
<template>
<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 50rpx 0;">
<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="parameters.rooms"
@change="getRooms"></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="parameters.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="parameters.childrenNumberZC"
@change="etChange"
></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="parameters.childrenNumberBZC"></u-number-box>
</view>-->
</view>
</view>
</template>
<script>
import canlendar from "./index";
export default {
props:['msg'],
components: {
canlendar
},
data() {
return {
parameters: {
rooms: 1,
adultsNumber:2,
childrenNumberZC:0,
childrenNumberBZC:0,
peoples: 2,
}
}
},
watch:{
msg: {
handler (val, oldval) {
if(val){
this.parameters = val
}
},
deep: true,
},
},
methods: {
getRooms(e){
this.parameters.rooms = e.value;
},
etChange(e){
this.parameters.childrenNumberZC = e.value;
this.peopleChange()
},
crChange(e){
this.parameters.adultsNumber = e.value;
this.peopleChange()
},
peopleChange(){
this.parameters.peoples = Number(this.parameters.adultsNumber) + Number(this.parameters.childrenNumberZC)
},
chosenDateResult(obj) {
this.showTimePopup = false;
this.$emit('chosenDateResult',this.parameters,obj)
},
}
}
</script>
<style lang="scss" scoped>
@import url("@/asset/css/flex.css");
</style>
\ No newline at end of file
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment