35df1862 by 杨炀

no message

1 parent b5a3d1b9
1 <template> 1 <template>
2 <div> 2 <div>
3 <div class="banner">
4 <img src="@/assets/booking/jd_text.png">
5 </div>
3 <div class="box"> 6 <div class="box">
4 <el-card class="mt30"></el-card> 7 <div class="searchBar">
8 <el-input :placeholder="language==0?'请输入关键字搜索':'Search'" v-model="query.name" class="no-border">
9 </el-input>
10 <el-button size="large" type="primary" class="btn-lineG" icon="search" @click="getList">
11 {{ language==0?'搜索':'Search' }}</el-button>
12 </div>
5 </div> 13 </div>
6 14
7 </div> 15 <div class="box" v-loading="loading">
16 <el-card v-for="(h,index) in list" class="mb20" @click="goDetail(h)">
17 <!-- che列表-->
18 <el-row class="hotel" align="middle" :gutter="20">
19 <el-col :span="6">
20 <img class="w100" :src="fillImgUrl(h.photos?.split(',')[0])"/>
21 </el-col>
22 <el-col :span="10">
23 <h3 class="esp">{{h.name}}</h3>
24 <div class="starBox">
25 <img v-for="i in Number(h.starLevel||0)" src="@/assets/booking/star.png">
26 </div>
27 <div class="tagbox">
28 <span v-for="(t,index) in h.label?.split(',')" v-show="index<4">{{t}}</span>
29 <a v-show="h.label?.split(',').length>4">{{ language==0?'更多':'MORE' }} ></a>
30 </div>
31 <p class="esp addr">
32 <el-icon size="16" style="position: relative;top: 2px" color="#929AA0"><LocationFilled /></el-icon>
33 {{h.address}}
34 </p>
35 </el-col>
36 <el-col :span="8" class="text-right">
37 <div class="price">¥<span>{{ h.price }}</span><i v-if="language==0"></i></div>
38 <el-button class="btn-lineG w200px" round type="primary" size="large">{{ language==0?'立即预约':'Select' }}</el-button>
39 </el-col>
40 </el-row>
41 </el-card>
42 <el-empty v-show="!loading&&list.length==0" :image="`/img/order_no.png`" :image-size="228" description="" />
43 <div style="height: 50px"></div>
44 </div>
45
46 </div>
8 </template> 47 </template>
9 48
10 <script setup> 49 <script setup>
50 import {onMounted} from "@vue/runtime-core"
51 import * as booking from "@/apiPc/booking"
52 import {useRouter,useRoute} from "vue-router";
53 import {useStorage} from "@vueuse/core/index";
54 const router = useRouter()
55 const route = useRoute()
56 const language= useStorage('language',0)
57 const query = ref({
58 name:''
59 })
60 const cptId = ref('')
61 const list = ref([])
62 const loading = ref(false)
63 onMounted(()=>{
64 query.value.activityId = route.params.cptId
65 getList()
66 })
11 67
12 </script> 68 function getList() {
69 loading.value = true
70 booking.getHotelList(query.value).then(res=>{
71 list.value = res.rows
72 loading.value = false
73 }).catch(e=>{
74 loading.value = false
75 })
76 }
77 function goDetail(item) {
78 router.push({
79 name:'hotelDetail',
80 params:{
81 hotelId:item.hotelId,
82 },
83 query:{
84 id:item.id
85 }
13 86
14 <style scoped> 87 })
88 }
89 </script>
15 90
91 <style scoped lang="scss">
92 .hotel{
93 h3{margin: 0 0 20px;}
94 img.w100{object-fit: cover;aspect-ratio: 16/9}
95 .addr{font-size: 16px;color: #929AA0;font-weight: 400;}
96 .price{margin: 0 0 25px;
97 color: #FF8124;font-size: 18px;
98 span{font-size: 24px;margin: 0 8px;font-family: 'DINAlternate-Bold';font-weight: 600;}
99 i{font-style: normal;color: #929AA0;}
100 }
101 }
102 .banner{height: 140px;background-size: cover;text-align: center;
103 background: url("@/assets/booking/jd_bg.png") center;display: flex;align-items: center;
104 justify-content: center;
105 img{display: block;margin:-30px auto 0;width: auto;}
106 }
107 .searchBar{position: relative;top: -30px;
108 background: #FFFFFF;display: flex;padding: 20px;
109 border-radius: 10px;}
110 .no-border{border: none;background: #F5F7F9;
111 :deep(.el-input__wrapper){border: none;box-shadow: none;background: #F5F7F9;}
112 }
113 .starBox{
114 img{display: inline-block;margin-right: 4px}
115 }
116 .tagbox{margin: 15px 0;
117 a{color: #AFB5B9;font-size: 12px;}
118 span{border-radius: 13px;font-size: 12px;padding: 4px 10px;margin-right:10px;font-weight: 400;}
119 span:nth-child(4n){background: rgba(50, 177, 108, 0.2);color: rgba(50, 177, 108, 1);}
120 span:nth-child(4n+1){background:rgba(243, 152, 0, 0.2);color: rgba(243, 152, 0, 1);}
121 span:nth-child(4n+2){background: rgba(0, 160, 233, 0.2);color: rgba(0, 160, 233, 1);}
122 span:nth-child(4n+3){background: rgba(247, 64, 166, 0.2);color:rgba(247, 64, 166, 1);}
123 }
16 </style> 124 </style>
......
...@@ -79,8 +79,11 @@ ...@@ -79,8 +79,11 @@
79 name:'hotelDetail', 79 name:'hotelDetail',
80 params:{ 80 params:{
81 hotelId:item.hotelId, 81 hotelId:item.hotelId,
82 },
83 query:{
82 id:item.id 84 id:item.id
83 } 85 }
86
84 }) 87 })
85 } 88 }
86 </script> 89 </script>
......
...@@ -80,7 +80,7 @@ ...@@ -80,7 +80,7 @@
80 </el-row> 80 </el-row>
81 </el-col> 81 </el-col>
82 <el-col :span="3"> 82 <el-col :span="3">
83 <div class="price">{{ language==0?'¥':'€' }}<span>{{r.roomPrice}}</span></div> 83 <div class="price">{{ language==0?'¥':'€' }}<span>{{language==0?r.roomPrice:r.roomPriceEn}}</span></div>
84 </el-col> 84 </el-col>
85 <el-col :span="3"> 85 <el-col :span="3">
86 <div class="bg-lineg" v-if="language==0" @click="goOrder(r)"> 86 <div class="bg-lineg" v-if="language==0" @click="goOrder(r)">
...@@ -117,7 +117,7 @@ const router = useRouter() ...@@ -117,7 +117,7 @@ const router = useRouter()
117 const route = useRoute() 117 const route = useRoute()
118 const form = ref({}) 118 const form = ref({})
119 const query = ref({ 119 const query = ref({
120 hotelId: route.params.id 120 hotelId: route.query.id
121 }) 121 })
122 const loading = ref(false) 122 const loading = ref(false)
123 const roomList = ref([]) 123 const roomList = ref([])
...@@ -135,7 +135,7 @@ function getData() { ...@@ -135,7 +135,7 @@ function getData() {
135 }).catch(err => { 135 }).catch(err => {
136 console.log(err) 136 console.log(err)
137 }) 137 })
138 console.log('params',route.params) 138 query.value.hotelId = route.query.id
139 getHotelRooms(query.value).then(res => { 139 getHotelRooms(query.value).then(res => {
140 roomList.value = res.rows 140 roomList.value = res.rows
141 }) 141 })
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
5 <div slot="header"> 5 <div slot="header">
6 <div class="bg-lineg">{{ language == 0 ? '酒店预约下单' : 'Hotel booking order' }}</div> 6 <div class="bg-lineg">{{ language == 0 ? '酒店预约下单' : 'Hotel booking order' }}</div>
7 </div> 7 </div>
8 8 {{room}}
9 <el-row class="pd20" :gutter="20"> 9 <el-row class="pd20" :gutter="20">
10 <el-col :span="14" > 10 <el-col :span="14" >
11 <div class="border-info"> 11 <div class="border-info">
...@@ -43,8 +43,8 @@ ...@@ -43,8 +43,8 @@
43 <el-form-item v-for="(n,index) in form.roomNum" :key="index" :label="`入住人${index+1}`"> 43 <el-form-item v-for="(n,index) in form.roomNum" :key="index" :label="`入住人${index+1}`">
44 <el-input v-model="rzUserArr[index]" placeholder="每间填一位住客姓名"/> 44 <el-input v-model="rzUserArr[index]" placeholder="每间填一位住客姓名"/>
45 </el-form-item> 45 </el-form-item>
46 <el-form-item label="预计到店"> 46 <el-form-item :label="language==0?'预计到店':'Expected check-in'">
47 <el-select v-model="form.ddDate" placeholder="请选择预计到店时间"> 47 <el-select v-model="form.ddDate" :placeholder="language==0?'请选择预计到店时间':'Please select the expected check-in time'">
48 <el-option 48 <el-option
49 v-for="item in ddDateArr" 49 v-for="item in ddDateArr"
50 :key="item.value" 50 :key="item.value"
...@@ -53,21 +53,24 @@ ...@@ -53,21 +53,24 @@
53 /> 53 />
54 </el-select> 54 </el-select>
55 </el-form-item> 55 </el-form-item>
56 <el-form-item label="联系电话"> 56 <el-form-item :label="language==0?'联系电话':'Contact phone'">
57 <el-input v-model="form.phone"/> 57 <el-input v-model="form.phone"/>
58 </el-form-item> 58 </el-form-item>
59 59
60 <div v-if="room.addBedFlag=='1'"> 60 <div v-if="room.addBedFlag=='1'">
61 <el-form-item label="是否加床"> 61 <el-form-item :label="language==0?'是否加床':'Extra bed'">
62 <el-radio-group> 62 <el-radio-group v-model="form.isAddbed">
63 <el-radio v-model="form.isAddbed" label="1"></el-radio> 63 <el-radio label="1">{{ language==0?'是':'Yes' }}</el-radio>
64 <el-radio v-model="form.isAddbed" label="0"></el-radio> 64 <el-radio label="0">{{ language==0?'否':'No' }}</el-radio>
65 </el-radio-group> 65 </el-radio-group>
66 </el-form-item> 66 </el-form-item>
67 <el-form-item label="加床张数"> 67 <el-form-item :label="language==0?'加床张数':'Extra bed num'">
68 <el-input-number v-model="form.addNum" :min="0" :max="1" @change="changeBed" /> 68 <el-input-number v-model="form.addNum" :min="0" :max="1" @change="changeBed" />
69 </el-form-item> 69 </el-form-item>
70 <div class="tip" v-if="form.isAddbed=='1'">* 一个房间最多加一张床</div> 70 <div class="tip" v-if="form.isAddbed=='1'">*
71 <span v-if="language == 0">一个房间最多加一张床</span>
72 <span v-else>A room can only add one bed</span>
73 </div>
71 </div> 74 </div>
72 </el-form> 75 </el-form>
73 </div> 76 </div>
...@@ -75,24 +78,28 @@ ...@@ -75,24 +78,28 @@
75 <el-col :span="10"> 78 <el-col :span="10">
76 <div class="leftboderTT">{{ language == 0 ? '订单明细' : 'Order details' }}</div> 79 <div class="leftboderTT">{{ language == 0 ? '订单明细' : 'Order details' }}</div>
77 <div class="border-rr mt20 pd20 ccitemBox"> 80 <div class="border-rr mt20 pd20 ccitemBox">
78 <label> 房费 81 <label> {{ language==0?'房费':'Room fee' }}
79 <span class="fr">¥{{(room.roomPrice*form.roomNum*choseRooms.length).toFixed(2)}}</span> 82 <span class="fr" v-if="language==0">{{ language==0?'¥':'€' }}{{(room.roomPrice*form.roomNum*choseRooms.length).toFixed(2)}}</span>
83 <span class="fr" v-else>{{ language==0?'¥':'€' }}{{(room.roomPriceEn*form.roomNum*choseRooms.length).toFixed(2)}}</span>
80 </label> 84 </label>
81 <div class="ccitem" v-for="(c, index) in choseRooms" :key="index"> 85 <div class="ccitem" v-for="(c, index) in choseRooms" :key="index">
82 {{ c }} 86 {{ c }}
83 <text>{{form.roomNum}}{{room.roomPrice}}</text> 87 <text v-if="language==0">{{form.roomNum}}*{{ language==0?'¥':'€' }}{{room.roomPrice}}</text>
88 <text v-else>{{form.roomNum}}*{{ language==0?'¥':'€' }}{{room.roomPriceEn}}</text>
84 </div> 89 </div>
85 90
86 <label v-if="form.isAddbed=='1'">加床费 91 <label v-if="form.isAddbed=='1'">{{ language==0?'加床费':'Extra bed fee' }}
87 <span class="fr">¥{{(room.bedPrice*form.addNum*choseRooms.length).toFixed(2)}}</span> 92 <span class="fr" v-if="language==0">{{ language==0?'¥':'€' }}{{(room.bedPrice*form.addNum*choseRooms.length).toFixed(2)}}</span>
93 <span class="fr" v-else>{{ language==0?'¥':'€' }}{{(room.bedPriceEn*form.addNum*choseRooms.length).toFixed(2)}}</span>
88 </label> 94 </label>
89 95
90 <div v-if="form.isAddbed=='1'" class="ccitem" v-for="(c, index) in choseRooms" :key="index"> 96 <div v-if="form.isAddbed=='1'" class="ccitem" v-for="(c, index) in choseRooms" :key="index">
91 {{ c }} 97 {{ c }}
92 <text>{{form.addNum}}{{room.bedPrice}}</text> 98 <text v-if="language==0">{{form.addNum}}*{{ language==0?'¥':'€' }}{{room.bedPrice}}</text>
99 <text v-else>{{form.addNum}}*{{ language==0?'¥':'€' }}{{room.bedPriceEn}}</text>
93 </div> 100 </div>
94 101
95 <label>共计<span class="fr bigMoney">¥{{money}}</span></label> 102 <label class="bigMoney">{{ language==0?'共计':'Total' }}<span class="fr bigMoney">{{ language==0?'¥':'€' }}{{money}}</span></label>
96 103
97 </div> 104 </div>
98 </el-col> 105 </el-col>
...@@ -119,6 +126,7 @@ const hotelName = ref('') ...@@ -119,6 +126,7 @@ const hotelName = ref('')
119 const canOrderStart = ref('') 126 const canOrderStart = ref('')
120 const canOrderNum = ref(0) 127 const canOrderNum = ref(0)
121 const form = ref({ 128 const form = ref({
129 isAddbed: '0',
122 roomNum: 0, 130 roomNum: 0,
123 addNum: 0 131 addNum: 0
124 }) 132 })
...@@ -271,8 +279,14 @@ function getDate(datestr) { ...@@ -271,8 +279,14 @@ function getDate(datestr) {
271 return date 279 return date
272 } 280 }
273 function countMoney() { 281 function countMoney() {
282 if(language.value == 0){
274 money.value = ((room.value.roomPrice * form.value.roomNum * usedays) + (room.value.bedPrice * form.value 283 money.value = ((room.value.roomPrice * form.value.roomNum * usedays) + (room.value.bedPrice * form.value
275 .addNum * usedays)).toFixed(2) 284 .addNum * usedays)).toFixed(2)
285
286 } else {
287 money.value = ((room.value.roomPriceEn * form.value.roomNum * usedays) + (room.value.bedPriceEn * form.value
288 .addNum * usedays)).toFixed(2)
289 }
276 // console.log(usedays,money.value) 290 // console.log(usedays,money.value)
277 } 291 }
278 function submit() { 292 function submit() {
...@@ -352,7 +366,7 @@ function submit() { ...@@ -352,7 +366,7 @@ function submit() {
352 label { 366 label {
353 margin: 10px 0; 367 margin: 10px 0;
354 display: block; 368 display: block;
355 369 min-height: 30px;
356 span { 370 span {
357 color: #FF8124;font-family: DIN Alternate; 371 color: #FF8124;font-family: DIN Alternate;
358 font-size: 24px; 372 font-size: 24px;
...@@ -363,9 +377,9 @@ function submit() { ...@@ -363,9 +377,9 @@ function submit() {
363 .ccitem { 377 .ccitem {
364 display: flex; 378 display: flex;
365 justify-content: space-between; 379 justify-content: space-between;
366 font-size: 14px; 380 font-size: 15px;
367 color: #666; 381 color: #666;
368 margin: 5px 0; 382 margin: 5px 0 10px;
369 383
370 label { 384 label {
371 font-size: 16px; 385 font-size: 16px;
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!