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.

123 lines
4.2 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div
  3. class="BookingInfoItem booking-info-item tw-p-[20px] tw-mb-[20px] tw-bg-neutrals-0 tw-rounded-xl xl:tw-p-[20px]"
  4. v-if="info.OnSiteService"
  5. >
  6. <div class="tw-body-3 tw-font-bold md:tw-body-2 tw-mb-[21.5px]">
  7. {{ $t('Booking Details') }}
  8. </div>
  9. <div :class="['info-content','tw-flex','tw-items-start','tw-mb-[10px]','md:tw-mb-[15px]','-tw-mx-[7px]','xl:-tw-mx-[8px]',]">
  10. <div v-if="info.OnSiteService.Logo">
  11. <img class="tw-ml-[6px] tw-px-[2px] tw-w-[48px] tw-h-[40px] tw-rounded-[8px] xl:tw-w-[100px] xl:tw-h-[80px]" :src="info.OnSiteService.Logo"/>
  12. </div>
  13. <div v-else>
  14. <img src="~/assets/svg/noLogo.svg" class="md:tw-max-w-[100px] md:tw-max-h-[80px]" alt="" />
  15. </div>
  16. <div
  17. class="element content-text tw-ml-[13px] md:tw-ml-[17px] tw-text-black"
  18. >
  19. <div class="t14 tw-font-bold tw-mb-[10px] md:t16 xl:tw-leading-[21px]">
  20. {{ info.OnSiteService.ServiceName }}
  21. </div>
  22. <div
  23. class="tw-grid tw-grid-cols-[40px_auto] tw-gap-[10px] tw-items-center tw-mb-[12px]"
  24. >
  25. <div v-if="info.OnSiteService.Provider.Logo"><img :src="info.OnSiteService.Provider.Logo" /></div>
  26. <div v-else><img src="~/assets/svg/noLogo.svg" class="tw-w-[40px]" alt="" /></div>
  27. <div class="id tw-body-5 lg:tw-body-3 tw-text-hint">
  28. {{ info.OnSiteService.Provider.ProviderName }}
  29. </div>
  30. </div>
  31. <div v-for="(item, key) in info.BookingDetail" :key="key" class="detail tw-body-5 tw-mb-[10px]">
  32. {{ item }}
  33. </div>
  34. <div class="date tw-body-5 tw-mb-[10px]">
  35. {{ new Date(info.OnSiteService.ServiceStartDate).toLocaleString() }} - {{ new Date(info.OnSiteService.ServiceEndDate).toLocaleString() }} (Local time)
  36. </div>
  37. <button
  38. class="t14 tw-font-bold tw-p-[11px] tw-bg-complementary-1 tw-bg-opacity-10 tw-rounded-[10px] tw-text-complementary-1 hover:tw-text-secondary-light no-print"
  39. @click="$emit('other-details')"
  40. >
  41. {{ $t('Other Details') }}
  42. </button>
  43. </div>
  44. </div>
  45. <div v-if="info.NoticeDetail"
  46. class="tw-grid tw-grid-rows-[18px_auto_32px] tw-gap-[15px] tw-border-solid tw-border tw-border-neutrals-200 tw-rounded-[20px] tw-p-[20px] lg:tw-ml-[120px]"
  47. >
  48. <div
  49. class="tw-grid tw-grid-cols-[16px_auto] tw-gap-[10px] tw-items-center tw-mb-[15px]"
  50. >
  51. <img src="~/assets/svg/Vector.svg" />
  52. <div
  53. class="t14 tw-font-bold tw-text-warning-default tw-items-center md:t12 lg:t16"
  54. >
  55. {{ $t('Notice') }}
  56. </div>
  57. </div>
  58. <div v-html="info.NoticeDetail">
  59. </div>
  60. <button
  61. class="tw-body-3 tw-text-warning-default tw-border-solid tw-border-warning-default tw-border-[1px] tw-rounded-[12px] tw-place-self-center tw-py-[7px] tw-px-[16px] md:t14 lg:tw-body-3 lg:tw-place-self-start hover:tw-bg-success-background no-print"
  62. @click="$emit('notice-details')"
  63. >
  64. {{ $t('Notice Details') }}
  65. </button>
  66. </div>
  67. </div>
  68. </template>
  69. <script>
  70. import elementTextarea from "@/components/newComponent/form/ElementTextarea";
  71. import elementPromoCode from "@/components/newComponent/form/ElementPromoCode";
  72. import elementTimePicker from "@/components/newComponent/form/ElementTimePicker";
  73. export default {
  74. components: {
  75. elementTextarea,
  76. elementPromoCode,
  77. elementTimePicker,
  78. },
  79. props: {
  80. info: {
  81. type: Object,
  82. },
  83. // NoticeDetails: {
  84. // type: Object,
  85. // },
  86. // Supplier: {
  87. // type: Object,
  88. // },
  89. // Img: {
  90. // type: String,
  91. // }
  92. },
  93. data() {
  94. return {};
  95. },
  96. created(){
  97. },
  98. methods: {},
  99. };
  100. </script>
  101. <style lang="scss" scoped>
  102. .bounce-enter-active {
  103. animation: bounce-in 0.3s ease-out;
  104. }
  105. .bounce-leave-active {
  106. animation: bounce-in 0.3s cubic-bezier(1, 0.5, 0.8, 1) reverse;
  107. }
  108. @keyframes bounce-in {
  109. 0% {
  110. opacity: 0;
  111. transform: translateY(-10px);
  112. }
  113. 50% {
  114. opacity: 0.5;
  115. transform: translateY(-5px);
  116. }
  117. 100% {
  118. opacity: 1;
  119. transform: translateY(0);
  120. }
  121. }
  122. </style>