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.

137 lines
4.3 KiB

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. >
  5. <div class="tw-body-3 tw-font-bold md:tw-body-2 tw-mb-[21.5px]">
  6. {{ $t('Booking Details') }}
  7. </div>
  8. <div
  9. :class="[
  10. 'info-content',
  11. ' tw-flex',
  12. 'tw-items-start',
  13. 'tw-mb-[10px]',
  14. 'md:tw-mb-[15px]',
  15. ' -tw-mx-[7px]',
  16. 'xl:-tw-mx-[8px]',
  17. ]"
  18. >
  19. <div>
  20. <img
  21. class="tw-rounded tw-ml-[6px] tw-px-[2px] md:tw-rounded-[8px]"
  22. :src="Img"
  23. />
  24. </div>
  25. <div
  26. class="element content-text tw-ml-[13px] md:tw-ml-[17px] tw-text-black"
  27. >
  28. <div class="t14 tw-font-bold tw-mb-[10px] md:t16 xl:tw-leading-[21px]">
  29. {{ info.service_name}}
  30. </div>
  31. <div
  32. class="tw-grid tw-grid-cols-[40px_auto] tw-gap-[10px] tw-items-center tw-mb-[12px]"
  33. >
  34. <img :src="Supplier.logo" />
  35. <div class="id tw-body-5 lg:tw-body-3 tw-text-hint">
  36. {{ Supplier.brand }}
  37. </div>
  38. </div>
  39. <div class="detail tw-body-5 tw-mb-[10px]" v-for="(item, key) in info.order_item" :key="key">
  40. {{ (item.package_name && item.package_name!='' ? item.package_name + ",&nbsp;" : "") + (item.customer_plan_name ? item.customer_plan_name + ",&nbsp;" : "") + item.specification_name +
  41. "&nbsp;x&nbsp;" + item.quantity }}
  42. </div>
  43. <div class="date tw-body-5 tw-mb-[10px]" v-for="(item, key) in info.order_as" :key="key">{{ item.as_name + "&nbsp;x&nbsp;" + item.quantity }}
  44. </div>
  45. <div v-if="info.service_date != null || info.service_time != null" class="date tw-body-5 tw-mb-[10px]">
  46. {{info.service_date}} {{info.service_time}} (Local time)
  47. </div>
  48. <div
  49. class="total t14 tw-text-primary-1 tw-mb-[10px] md:tw-mb-[20px] md:t16"
  50. >
  51. ${{ info.subTotal }} {{ info.currency }}
  52. </div>
  53. <button
  54. v-if="info.order_question_answer.length > 0 "
  55. 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"
  56. @click="$modal.show('OtherDetails')"
  57. >
  58. {{ $t('Other Details') }}
  59. </button>
  60. </div>
  61. </div>
  62. <div
  63. class="tw-grid tw-grid-rows-[18px_auto_32px] tw-gap-[15px] tw-border-solid tw-border-neutrals-200 tw-rounded-[20px] tw-p-[20px] lg:tw-ml-[120px]"
  64. >
  65. <div
  66. class="tw-grid tw-grid-cols-[16px_auto] tw-gap-[10px] tw-items-center tw-mb-[15px]"
  67. >
  68. <img src="~/assets/svg/Vector.svg" />
  69. <div
  70. class="t14 tw-font-bold tw-text-warning-default tw-items-center tw-font-bold md:t12 lg:t16"
  71. >
  72. {{ $t('Notice') }}
  73. </div>
  74. </div>
  75. <div v-html="NoticeDetails.message_content">
  76. </div>
  77. <button
  78. 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"
  79. @click="$modal.show('NoticeDetails')"
  80. >
  81. {{ $t('Notice Details') }}
  82. </button>
  83. </div>
  84. </div>
  85. </template>
  86. <script>
  87. import elementTextarea from "@/components/newComponent/form/ElementTextarea";
  88. import elementPromoCode from "@/components/newComponent/form/ElementPromoCode";
  89. import elementTimePicker from "@/components/newComponent/form/ElementTimePicker";
  90. export default {
  91. components: {
  92. elementTextarea,
  93. elementPromoCode,
  94. elementTimePicker,
  95. },
  96. props: {
  97. info: {
  98. type: Object,
  99. },
  100. NoticeDetails: {
  101. type: Object,
  102. },
  103. Supplier: {
  104. type: Object,
  105. },
  106. Img: {
  107. type: String,
  108. }
  109. },
  110. data() {
  111. return {};
  112. },
  113. methods: {},
  114. };
  115. </script>
  116. <style lang="scss" scoped>
  117. .bounce-enter-active {
  118. animation: bounce-in 0.3s ease-out;
  119. }
  120. .bounce-leave-active {
  121. animation: bounce-in 0.3s cubic-bezier(1, 0.5, 0.8, 1) reverse;
  122. }
  123. @keyframes bounce-in {
  124. 0% {
  125. opacity: 0;
  126. transform: translateY(-10px);
  127. }
  128. 50% {
  129. opacity: 0.5;
  130. transform: translateY(-5px);
  131. }
  132. 100% {
  133. opacity: 1;
  134. transform: translateY(0);
  135. }
  136. }
  137. </style>