You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
145 lines
5.3 KiB
145 lines
5.3 KiB
<template>
|
|
<div
|
|
class="BookingInfo tw-flex tw-flex-col xl:tw-flex-row xl:tw-justify-between tw-bg-white tw-rounded-[20px] tw-text-base-primary tw-p-5"
|
|
v-if="BookingOrder.Currency && BookingOrder.OnSiteService.Provider"
|
|
>
|
|
<div class="tw-mb-[30px] xl:tw-mb-0">
|
|
<div
|
|
class="tw-body-4 tw-text-error-default tw-font-bold tw-mb-[12px] tw-mt-[4px] md:tw-body-2 md:tw-mt-[8px]"
|
|
>
|
|
<span :class="bookingColor(mybookingStatusMap(BookingOrder.BookingStatus))"
|
|
>{{ $t(mybookingStatusMap(BookingOrder.BookingStatus)) }} , </span
|
|
>
|
|
<span v-if="BookingOrder.PaymentStatus != null" :class="bookingColor(mypaymentStatusMap(BookingOrder.PaymentStatus))">{{
|
|
$t(mypaymentStatusMap(BookingOrder.PaymentStatus))
|
|
}}</span>
|
|
</div>
|
|
<div class="tw-flex tw-items-center tw-mb-[11px] md:tw-mb-[18px]">
|
|
<div class="tw-body-4 tw-text-neutrals-800 tw-mr-[11px] md:tw-body-3">
|
|
{{ BookingOrder.BookingNo }}
|
|
</div>
|
|
<button
|
|
class="tw-body-5 tw-py-[4px] tw-px-[10px] tw-rounded-[12px] tw-bg-complementary-3 tw-text-complementary-1 md:tw-body-4 hover:tw-text-[#A0B5FF] no-print"
|
|
@click="copy(BookingOrder.BookingNo)"
|
|
>
|
|
{{ $t("Copy") }}
|
|
</button>
|
|
</div>
|
|
<div
|
|
class="tw-body-4 tw-text-neutrals-800 tw-mb-[14px] md:tw-body-3 md:tw-mb-[18px]"
|
|
>
|
|
{{ $t("Booking Date:") }} {{ new Date(BookingOrder.BookingDate).toLocaleString() }}
|
|
</div>
|
|
<div
|
|
class="tw-flex tw-flex-col md:tw-flex-row-reverse md:tw-justify-end"
|
|
>
|
|
<div v-if="BookingOrder.PaymentType != '3'"
|
|
class="tw-grid tw-grid-cols-[20px_auto] tw-gap-[4px] tw-items-center tw-mb-[14px]"
|
|
>
|
|
<img src="~/assets/svg/Alert.svg" />
|
|
<div class="tw-body-4 tw-text-warning-default">Remittance only</div>
|
|
</div>
|
|
<div class="tw-body-4 tw-flex md:tw-body-3">
|
|
<div class="tw-mr-[4px]">{{ $t("Total Amount") }}: </div>
|
|
<div
|
|
class="tw-text-primary-1 tw-font-bold tw-mr-[12px] md:tw-mr-[28px]"
|
|
>
|
|
${{ BookingOrder.TotalPrice }}
|
|
{{ BookingOrder.Currency.CurrencyName }}
|
|
</div>
|
|
<button
|
|
class="tw-text-complementary-1 tw-flex md:tw-mr-[33px] hover:tw-text-[#A0B5FF] no-print"
|
|
@click="$emit('view-details')"
|
|
>
|
|
{{ $t("View Details") }}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="tw-flex tw-flex-col lg:tw-pr-[0px] no-print">
|
|
<div
|
|
class="tw-grid tw-cols-2 tw-gap-[10px] tw-body-3 tw-mb-[22px] lg:tw-cols-1 no-print"
|
|
>
|
|
|
|
<!-- <button
|
|
class="tw-col-span-2 tw-bg-primary-1 tw-py-[10px] tw-px-[121px] tw-rounded-[16px] tw-text-neutrals-0 hover:tw-bg-primary-2"
|
|
>
|
|
Go to Pay
|
|
</button> -->
|
|
<button v-if="BookingOrder.OnSiteService.Provider.ProviderStatus != '04' || BookingOrder.OnSiteService.Provider.ProviderStatus != '03'"
|
|
class="tw-py-[10px] tw-px-[19px] tw-rounded-[12px] tw-text-neutrals-400 tw-border-solid tw-border-neutrals-400 tw-border-[1px] xl:tw-col-span-2 hover:tw-bg-neutrals-100 no-print"
|
|
@click="$emit('cancel-booking')"
|
|
>
|
|
{{ $t("Cancel Booking") }}
|
|
</button>
|
|
<button
|
|
class="tw-py-[10px] tw-px-[35px] tw-rounded-[12px] tw-text-primary-1 tw-border-solid tw-border-primary-1 tw-border-[1px] xl:tw-col-span-2 hover:tw-bg-primary-3 no-print"
|
|
@click="$emit('contact-us')"
|
|
>
|
|
{{ $t("Contact Us") }}
|
|
</button>
|
|
</div>
|
|
<div
|
|
class="tw-grid tw-grid-cols-[16px_auto] tw-gap-[10px] tw-items-center tw-mb-[21px] lg:tw-mb-[9px] xl:tw-place-self-end no-print"
|
|
>
|
|
<img src="~/assets/svg/fi_help-circle.svg"/>
|
|
<button
|
|
class="tw-text-complementary-1 tw-flex md:tw-mr-[33px] hover:tw-text-[#A0B5FF] no-print"
|
|
@click="$emit('cancellation-policy')"
|
|
>
|
|
{{ $t("Cancellation Policy") }}
|
|
</button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import { bookingStatusMap, paymentStatusMap, mybookingStatusMap, mypaymentStatusMap, bookingColor } from '@/plugins/util.js'
|
|
import { runInThisContext } from 'vm';
|
|
|
|
export default {
|
|
data(){
|
|
return {
|
|
printprint: false,
|
|
};
|
|
|
|
},
|
|
components: {
|
|
mybookingStatusMap,
|
|
bookingStatusMap,
|
|
paymentStatusMap,
|
|
mypaymentStatusMap,
|
|
bookingColor
|
|
},
|
|
props: {
|
|
BookingOrder: {
|
|
type: Object,
|
|
},
|
|
},
|
|
methods: {
|
|
bookingStatusMap,
|
|
paymentStatusMap,
|
|
mybookingStatusMap,
|
|
mypaymentStatusMap,
|
|
bookingColor,
|
|
// copyEvent(id) {
|
|
// var str = document.getElementById(id);
|
|
// window.getSelection().selectAllChildren(str);
|
|
// document.execCommand("Copy")
|
|
// },
|
|
async copy(copyText){
|
|
window.navigator.clipboard.writeText(copyText);
|
|
// if (navigator.clipboard == undefined) {
|
|
// console.log('clipboard is undefined');
|
|
// }else{
|
|
// window.navigator.clipboard.writeText(copyText);
|
|
// }
|
|
}
|
|
},
|
|
updated() {
|
|
//console.log(this.BookingOrder);
|
|
},
|
|
};
|
|
</script>
|
|
<style lang="scss" scoped>
|
|
</style>
|