6183b00a by zhangmeng

接车

1 parent 6afd6426
...@@ -8,22 +8,22 @@ ...@@ -8,22 +8,22 @@
8 }} 8 }}
9 </div> 9 </div>
10 </div> 10 </div>
11 <el-row class="pd20" :gutter="20"> 11 <el-row :gutter="20" class="pd20">
12 <el-col :span="14"> 12 <el-col :span="14">
13 <div class="border-info"> 13 <div class="border-info">
14 <div class="flex aic"> 14 <div class="flex aic">
15 <h3 class="esp">{{ item.checkIn }}</h3> 15 <h3 class="esp">{{ item.checkIn }}</h3>
16 <img class="w40px mlr20 " style="height: 40px;" src="@/assets/booking/wf.png"/> 16 <img class="w40px mlr20 " src="@/assets/booking/wf.png" style="height: 40px;"/>
17 <h3 class="esp">{{ item.checkOut }}</h3> 17 <h3 class="esp">{{ item.checkOut }}</h3>
18 </div> 18 </div>
19 <div class="flex"> 19 <div class="flex">
20 <el-image class="w150px br10 as16_9" fit="cover" :src="fillImgUrl(car.photos?.split(',')[0])"/> 20 <el-image :src="fillImgUrl(car.photos?.split(',')[0])" class="w150px br10 as16_9" fit="cover"/>
21 <div class="ml20"> 21 <div class="ml20">
22 <div class="roomType">{{ car.carType }}</div> 22 <div class="roomType">{{ car.carType }}</div>
23 <div class="tagbox"> 23 <div class="tagbox">
24 <span class="tag">{{ car.carColor }}</span> 24 <span class="tag">{{ car.carColor }}</span>
25 <span class="tag" v-show="car.checkOut==1">{{ language == 0 ?'可送车':'Can send car' }}</span> 25 <span v-show="car.checkOut==1" class="tag">{{ language == 0 ? '可送车' : 'Can send car' }}</span>
26 <span class="tag" v-show="car.checkIn==1">{{ language == 0 ?'可接车':'Can pick up' }}</span> 26 <span v-show="car.checkIn==1" class="tag">{{ language == 0 ? '可接车' : 'Can pick up' }}</span>
27 </div> 27 </div>
28 <div class="room"> 28 <div class="room">
29 <span>{{ language == 0 ? '座位数' : 'Seats' }}: {{ car.carSeat }}</span> 29 <span>{{ language == 0 ? '座位数' : 'Seats' }}: {{ car.carSeat }}</span>
...@@ -38,86 +38,86 @@ ...@@ -38,86 +38,86 @@
38 38
39 <div class="leftboderTT">{{ language == 0 ? '预约信息' : 'Reservation information' }}</div> 39 <div class="leftboderTT">{{ language == 0 ? '预约信息' : 'Reservation information' }}</div>
40 <div class="border-rr mt20 pd20"> 40 <div class="border-rr mt20 pd20">
41 <el-form :model="form" :label-width="language == 0 ?'120':'200'" :rules="rules" ref="formRef"> 41 <el-form ref="formRef" :label-width="language == 0 ?'120':'200'" :model="form" :rules="rules">
42 <el-form-item :label="language==0?'车辆数量':'cars'" required prop="num"> 42 <el-form-item :label="language==0?'车辆数量':'cars'" prop="num" required>
43 <el-input-number v-model="form.num" :min="1" @change="changecarNum"/> 43 <el-input-number v-model="form.num" :min="1" @change="changecarNum"/>
44 </el-form-item> 44 </el-form-item>
45 <el-form-item :label="language==0?'是否接送':'use Type'" required prop="useType"> 45 <el-form-item :label="language==0?'是否接送':'use Type'" prop="useType" required>
46 <el-checkbox-group v-model="form.useType" @change="changeUseType"> 46 <el-checkbox-group v-model="form.useType" @change="changeUseType">
47 <el-checkbox value="0" v-if="car.checkIn == 1"> 47 <el-checkbox v-if="car.checkIn == 1" value="0">
48 {{ language == 0 ? '接站' : 'Pick up' }} 48 {{ language == 0 ? '接站' : 'Pick up' }}
49 </el-checkbox> 49 </el-checkbox>
50 <el-checkbox value="1" v-if="car.checkOut == 1">{{ language == 0 ? '送站' : 'Drop off' }} 50 <el-checkbox v-if="car.checkOut == 1" value="1">{{ language == 0 ? '送站' : 'Drop off' }}
51 </el-checkbox> 51 </el-checkbox>
52 </el-checkbox-group> 52 </el-checkbox-group>
53 </el-form-item> 53 </el-form-item>
54 54
55 <div v-show="form.useType?.indexOf('0')> -1"> 55 <div v-show="form.useType?.indexOf('0')> -1">
56 <h3 class="afterLine">{{ language==0?'接站信息':'Pick up information' }}</h3> 56 <h3 class="afterLine">{{ language == 0 ? '接站信息' : 'Pick up information' }}</h3>
57 <el-form-item :label="language==0?'用车日期':'Date'" required> 57 <el-form-item :label="language==0?'用车日期':'Date'" required>
58 <el-date-picker v-model="date1" :disabled-date="disabledDate" 58 <el-date-picker v-model="date1" :disabled-date="disabledDate"
59 type="date" 59 :placeholder="language==0?'选择日期':'Select date'"
60 :placeholder="language==0?'选择日期':'Select date'" format="YYYY-MM-DD" 60 format="YYYY-MM-DD" type="date"
61 value-format="YYYY-MM-DD"/> 61 value-format="YYYY-MM-DD"/>
62 <!-- :picker-options="pickerOptions"--> 62 <!-- :picker-options="pickerOptions"-->
63 </el-form-item> 63 </el-form-item>
64 <el-form-item :label="language==0?'用车时间':'Time'" required> 64 <el-form-item :label="language==0?'用车时间':'Time'" required>
65 <el-time-picker 65 <el-time-picker
66 v-model="revTime1" :start="car.operStart" :end="car.operEnd" 66 v-model="revTime1" :end="car.operEnd" :start="car.operStart"
67 format="HH:mm" value-format="HH:mm" @change="bindTimeChange" 67 format="HH:mm" value-format="HH:mm" @change="bindTimeChange"
68 /> 68 />
69 </el-form-item> 69 </el-form-item>
70 <el-form-item :label="language==0?'联系人':'Contacts'" required> 70 <el-form-item :label="language==0?'联系人':'Contacts'" required>
71 <el-input type="text" v-model="form.pickUpBo.contacts"/> 71 <el-input v-model="form.pickUpBo.contacts" type="text"/>
72 </el-form-item> 72 </el-form-item>
73 <el-form-item :label="language==0?'联系电话':'Phone'" required> 73 <el-form-item :label="language==0?'联系电话':'Phone'" required>
74 <el-input type="text" v-model="form.pickUpBo.phone"/> 74 <el-input v-model="form.pickUpBo.phone" type="text"/>
75 </el-form-item> 75 </el-form-item>
76 <el-form-item :label="language==0?'人数':'Person Count'" required> 76 <el-form-item :label="language==0?'人数':'Person Count'" required>
77 <el-input type="text" v-model="form.pickUpBo.count"/> 77 <el-input-number v-model="form.pickUpBo.count" type="text"/>
78 </el-form-item> 78 </el-form-item>
79 <el-form-item :label="language==0?'航班/火车班次:':'Flight/Train No'" required> 79 <el-form-item :label="language==0?'航班/火车班次:':'Flight/Train No'" required>
80 <el-input type="text" v-model="form.pickUpBo.no"/> 80 <el-input v-model="form.pickUpBo.no" type="text"/>
81 </el-form-item> 81 </el-form-item>
82 <el-form-item :label="language==0?'接机/接站地点':'Pick up/Drop off Address'" required> 82 <el-form-item :label="language==0?'接机/接站地点':'Pick up/Drop off Address'" required>
83 <el-input type="text" v-model="form.pickUpBo.noAddress"/> 83 <el-input v-model="form.pickUpBo.noAddress" type="text"/>
84 </el-form-item> 84 </el-form-item>
85 <el-form-item :label="language==0?'送达地点':'Delivery Address'" required> 85 <el-form-item :label="language==0?'送达地点':'Delivery Address'" required>
86 <el-input type="text" v-model="form.pickUpBo.deliveryAddress"/> 86 <el-input v-model="form.pickUpBo.deliveryAddress" type="text"/>
87 </el-form-item> 87 </el-form-item>
88 <el-form-item :label="language==0?'备注':'Remarks'"> 88 <el-form-item :label="language==0?'备注':'Remarks'">
89 <el-input type="textarea" rows="3" v-model="form.pickUpBo.remarks"/> 89 <el-input v-model="form.pickUpBo.remarks" rows="3" type="textarea"/>
90 </el-form-item> 90 </el-form-item>
91 </div> 91 </div>
92 <div v-show="form.useType?.indexOf('1')> -1"> 92 <div v-show="form.useType?.indexOf('1')> -1">
93 <h3 class="afterLine">{{ language==0?'送站信息':'Drop off information' }}</h3> 93 <h3 class="afterLine">{{ language == 0 ? '送站信息' : 'Drop off information' }}</h3>
94 <el-form-item :label="language==0?'用车日期':'Date'" required> 94 <el-form-item :label="language==0?'用车日期':'Date'" required>
95 <el-date-picker v-model="date2" :disabled-date="disabledDate" 95 <el-date-picker v-model="date2" :disabled-date="disabledDate"
96 type="date" 96 :placeholder="language==0?'选择日期':'Select date'"
97 :placeholder="language==0?'选择日期':'Select date'" format="YYYY-MM-DD" 97 format="YYYY-MM-DD" type="date"
98 value-format="YYYY-MM-DD"/> 98 value-format="YYYY-MM-DD"/>
99 <!-- :picker-options="pickerOptions"--> 99 <!-- :picker-options="pickerOptions"-->
100 </el-form-item> 100 </el-form-item>
101 <el-form-item :label="language==0?'用车时间':'Time'" required> 101 <el-form-item :label="language==0?'用车时间':'Time'" required>
102 <el-time-picker 102 <el-time-picker
103 v-model="revTime2" :start="car.operStart" :end="car.operEnd" 103 v-model="revTime2" :end="car.operEnd" :start="car.operStart"
104 format="HH:mm" value-format="HH:mm" @change="bindTimeChange2" 104 format="HH:mm" value-format="HH:mm" @change="bindTimeChange2"
105 /> 105 />
106 </el-form-item> 106 </el-form-item>
107 <el-form-item :label="language==0?'联系人':'Contacts'" required> 107 <el-form-item :label="language==0?'联系人':'Contacts'" required>
108 <el-input type="text" v-model="form.dropOffBo.contacts"/> 108 <el-input v-model="form.dropOffBo.contacts" type="text"/>
109 </el-form-item> 109 </el-form-item>
110 <el-form-item :label="language==0?'联系电话':'Phone'" required> 110 <el-form-item :label="language==0?'联系电话':'Phone'" required>
111 <el-input type="text" v-model="form.dropOffBo.phone"/> 111 <el-input v-model="form.dropOffBo.phone" type="text"/>
112 </el-form-item> 112 </el-form-item>
113 <el-form-item label="人数" required> 113 <el-form-item label="人数" required>
114 <el-input type="text" v-model="form.dropOffBo.count"/> 114 <el-input v-model="form.dropOffBo.count" type="text"/>
115 </el-form-item> 115 </el-form-item>
116 <el-form-item label="送达地点" required> 116 <el-form-item label="送达地点" required>
117 <el-input type="text" v-model="form.dropOffBo.deliveryAddress"/> 117 <el-input v-model="form.dropOffBo.deliveryAddress" type="text"/>
118 </el-form-item> 118 </el-form-item>
119 <el-form-item :label="language==0?'备注':'Remarks'"> 119 <el-form-item :label="language==0?'备注':'Remarks'">
120 <el-input type="textarea" rows="3" v-model="form.dropOffBo.remarks"/> 120 <el-input v-model="form.dropOffBo.remarks" rows="3" type="textarea"/>
121 </el-form-item> 121 </el-form-item>
122 </div> 122 </div>
123 </el-form> 123 </el-form>
...@@ -127,23 +127,23 @@ ...@@ -127,23 +127,23 @@
127 <div class="leftboderTT">{{ language == 0 ? '订单明细' : 'Order details' }}</div> 127 <div class="leftboderTT">{{ language == 0 ? '订单明细' : 'Order details' }}</div>
128 <div class="border-rr mt20 pd20 ccitemBox"> 128 <div class="border-rr mt20 pd20 ccitemBox">
129 <label v-show="form.useType.indexOf('0')>-1"> {{ language == 0 ? '接站车辆费' : 'Room fee' }} 129 <label v-show="form.useType.indexOf('0')>-1"> {{ language == 0 ? '接站车辆费' : 'Room fee' }}
130 <span class="fr">{{language == 0 ? '¥' : '€'}}{{form.pickUpBo.total}}</span> 130 <span class="fr">{{ language == 0 ? '¥' : '€' }}{{ form.pickUpBo.total }}</span>
131 </label> 131 </label>
132 <div v-show="form.useType.indexOf('0')>-1" class="ccitem"> 132 <div v-show="form.useType.indexOf('0')>-1" class="ccitem">
133 {{ car.name }} 133 {{ car.name }}
134 <span >{{form.num}} *{{ language == 0 ? '¥' : '€' }}{{ car.inPrice }}</span> 134 <span>{{ form.num }} *{{ language == 0 ? '¥' : '€' }}{{ car.inPrice }}</span>
135 </div> 135 </div>
136 <label v-show="form.useType.indexOf('1')>-1">{{ language == 0 ? '送站车辆费' : 'Extra bed fee' }} 136 <label v-show="form.useType.indexOf('1')>-1">{{ language == 0 ? '送站车辆费' : 'Extra bed fee' }}
137 <span class="fr">{{language == 0 ? '¥' : '€'}}{{ form.dropOffBo.total }}</span> 137 <span class="fr">{{ language == 0 ? '¥' : '€' }}{{ form.dropOffBo.total }}</span>
138 </label> 138 </label>
139 139
140 <div v-show="form.useType.indexOf('1')>-1" class="ccitem"> 140 <div v-show="form.useType.indexOf('1')>-1" class="ccitem">
141 {{ car.name }} 141 {{ car.name }}
142 <span>{{ form.num }}*{{ language == 0 ? '¥' : '€' }}{{ car.outPrice }}</span> 142 <span>{{ form.num }}*{{ language == 0 ? '¥' : '€' }}{{ car.outPrice }}</span>
143 </div> 143 </div>
144 144
145 <label>{{ language == 0 ? '共计' : 'Total' }}<span 145 <label>{{ language == 0 ? '共计' : 'Total' }}<span
146 class="fr bigMoney">{{ language == 0 ? '¥' : '€' }}{{ money }}</span></label> 146 class="fr bigMoney">{{ language == 0 ? '¥' : '€' }}{{ money }}</span></label>
147 147
148 </div> 148 </div>
149 </el-col> 149 </el-col>
...@@ -151,14 +151,18 @@ ...@@ -151,14 +151,18 @@
151 </el-card> 151 </el-card>
152 152
153 <el-card class="mt30"> 153 <el-card class="mt30">
154 <el-row justify="space-between" align="middle"> 154 <el-row align="middle" justify="space-between">
155 <el-col :span="12"> 155 <el-col :span="12">
156 <label>{{ language == 0 ? '共计金额' : 'Total' }} 156 <label>{{ language == 0 ? '共计金额' : 'Total' }}
157 <span class=" text-warning"> {{ language == 0 ? '¥' : '€' }}<span class="bigMoney">{{ money }}</span></span> 157 <span class=" text-warning"> {{ language == 0 ? '¥' : '€' }}<span class="bigMoney">{{
158 money
159 }}</span></span>
158 </label> 160 </label>
159 </el-col> 161 </el-col>
160 <el-col :span="12" class="text-right"> 162 <el-col :span="12" class="text-right">
161 <el-button type="primary" class="btn-lineG w200px" @click="submit" round :loading="payLoading">{{ language == 0 ?'确认付款':'Pay' }}</el-button> 163 <el-button :loading="payLoading" class="btn-lineG w200px" round type="primary" @click="submit">
164 {{ language == 0 ? '确认付款' : 'Pay' }}
165 </el-button>
162 </el-col> 166 </el-col>
163 </el-row> 167 </el-row>
164 </el-card> 168 </el-card>
...@@ -175,6 +179,7 @@ import {checkResidueRoom, getBaseInfoByActiveId, newsSubmitOrderHotel, submitOrd ...@@ -175,6 +179,7 @@ import {checkResidueRoom, getBaseInfoByActiveId, newsSubmitOrderHotel, submitOrd
175 import dayjs from 'dayjs' 179 import dayjs from 'dayjs'
176 import {ElMessage, ElMessageBox} from "element-plus"; 180 import {ElMessage, ElMessageBox} from "element-plus";
177 import useUserStore from "@/store/modules/user"; 181 import useUserStore from "@/store/modules/user";
182
178 const payLoading = ref(false) 183 const payLoading = ref(false)
179 const user = useUserStore().user 184 const user = useUserStore().user
180 const language = useStorage('language', 0) 185 const language = useStorage('language', 0)
...@@ -189,11 +194,11 @@ const date2 = ref('') ...@@ -189,11 +194,11 @@ const date2 = ref('')
189 const form = ref({ 194 const form = ref({
190 num: 1, 195 num: 1,
191 pickUpBo: { 196 pickUpBo: {
192 carsList:[], 197 carsList: [],
193 total: 0 198 total: 0
194 }, 199 },
195 dropOffBo: { 200 dropOffBo: {
196 carsList:[], 201 carsList: [],
197 total: 0 202 total: 0
198 }, 203 },
199 useType: [] 204 useType: []
...@@ -224,10 +229,19 @@ function changecarNum(e) { ...@@ -224,10 +229,19 @@ function changecarNum(e) {
224 var m1 = 0 229 var m1 = 0
225 var m2 = 0 230 var m2 = 0
226 if (form.value.useType.indexOf('0') > -1) { 231 if (form.value.useType.indexOf('0') > -1) {
227 m1 = form.value.num * car.value.inPrice 232 if (language.value == 0) {
233 m1 = form.value.num * car.value.inPrice
234 } else {
235 m1 = form.value.num * car.value.inPriceEn
236 }
228 } 237 }
229 if (form.value.useType.indexOf('1') > -1) { 238 if (form.value.useType.indexOf('1') > -1) {
230 m2 = form.value.num * car.value.outPrice 239 if (language.value == 0) {
240 m2 = form.value.num * car.value.outPrice
241 } else {
242 m2 = form.value.num * car.value.outPriceEn
243
244 }
231 } 245 }
232 form.value.pickUpBo.total = m1.toFixed(2) 246 form.value.pickUpBo.total = m1.toFixed(2)
233 form.value.dropOffBo.total = m2.toFixed(2) 247 form.value.dropOffBo.total = m2.toFixed(2)
...@@ -243,21 +257,24 @@ function bindTimeChange(e) { ...@@ -243,21 +257,24 @@ function bindTimeChange(e) {
243 function bindTimeChange2(e) { 257 function bindTimeChange2(e) {
244 revTime2.value = e 258 revTime2.value = e
245 } 259 }
260
246 function initDays() { 261 function initDays() {
247 getBaseInfoByActiveId(route.params.cptId).then(res=>{ 262 getBaseInfoByActiveId(route.params.cptId).then(res => {
248 lform.value = res.data 263 lform.value = res.data
249 }).catch(err=>{ 264 }).catch(err => {
250 console.log(err) 265 console.log(err)
251 }) 266 })
252 } 267 }
268
253 function disabledDate(date) { 269 function disabledDate(date) {
254 // const today = dayjs().format('YYYY-MM-DD') 270 // const today = dayjs().format('YYYY-MM-DD')
255 if (lform.value.carStart) { 271 if (lform.value.carStart) {
256 return (date.getTime() < dayjs(lform.value.carStart).valueOf())||(date.getTime() > dayjs(lform.value.carEnd).valueOf()) 272 return (date.getTime() < dayjs(lform.value.carStart).valueOf()) || (date.getTime() > dayjs(lform.value.carEnd).valueOf())
257 273
258 } 274 }
259 return true 275 return true
260 } 276 }
277
261 function submit() { 278 function submit() {
262 if (!user) { 279 if (!user) {
263 useUserStore().setReLogin() 280 useUserStore().setReLogin()
...@@ -276,6 +293,7 @@ function submit() { ...@@ -276,6 +293,7 @@ function submit() {
276 pushFrom() 293 pushFrom()
277 }) 294 })
278 } 295 }
296
279 function pushFrom() { 297 function pushFrom() {
280 payLoading.value = true 298 payLoading.value = true
281 var obj = { 299 var obj = {
...@@ -314,25 +332,25 @@ function pushFrom() { ...@@ -314,25 +332,25 @@ function pushFrom() {
314 form.value.lavId = item.value.id 332 form.value.lavId = item.value.id
315 form.value.checkIn = item.value.checkIn 333 form.value.checkIn = item.value.checkIn
316 form.value.checkOut = item.value.checkOut 334 form.value.checkOut = item.value.checkOut
317 submitOrderCar(form.value).then(res=>{ 335 submitOrderCar(form.value).then(res => {
318 payLoading.value = false 336 payLoading.value = false
319 if (res.data && res.data.total != -100) { 337 if (res.data && res.data.total != -100) {
320 router.push({ 338 router.push({
321 name: 'bookingPay', 339 name: 'bookingPay',
322 query: { 340 query: {
323 orderId:res.data.orderId, 341 orderId: res.data.orderId,
324 money:res.data.total, 342 money: res.data.total,
325 type:'car' 343 type: 'car'
326 } 344 }
327 }) 345 })
328 } else { 346 } else {
329 ElMessage.warning(language.value == 0 ? '下单失败,稍后重试' : 'Order failed, please try again later') 347 ElMessage.warning(language.value == 0 ? '下单失败,稍后重试' : 'Order failed, please try again later')
330 } 348 }
331 }) 349 })
332 } 350 }
333 </script> 351 </script>
334 352
335 <style scoped lang="scss"> 353 <style lang="scss" scoped>
336 .bigMoney { 354 .bigMoney {
337 font-size: 36px !important; 355 font-size: 36px !important;
338 font-family: 'DIN Alternate'; 356 font-family: 'DIN Alternate';
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!