Project: Mall App Client: Maiora
Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

cart.page.html 7.9 KiB

před 6 roky
před 6 roky
před 5 roky
před 6 roky
před 6 roky
před 6 roky
před 6 roky
před 6 roky
před 6 roky
před 6 roky
před 6 roky
před 6 roky
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. <ion-content>
  2. <div class="header-bar">
  3. <div class="heading-holder">
  4. <button (click)="back()"> <ion-icon name="arrow-back"></ion-icon> </button>
  5. <h3> Cart </h3>
  6. </div>
  7. </div>
  8. <div class="cart-utilities-holder">
  9. <h5> {{ userCart.orderedlist.length }} ITEM(S) </h5>
  10. <ion-button fill="clear" (click)="show_order_details=!show_order_details">
  11. <span *ngIf="!show_order_details"> Show Order Details <ion-icon name="ios-arrow-down"></ion-icon> </span>
  12. <span *ngIf="show_order_details"> Hide Order Details <ion-icon name="ios-arrow-up"></ion-icon> </span>
  13. </ion-button>
  14. </div>
  15. <ul class="cart-item-list" *ngFor="let outlet of cart_outlets">
  16. <header class="outlet"> {{ getMallDetails(outlet.mall_id).mall.mall_name }} &gt; {{ getOutletDetails(outlet).outlet_name }} </header>
  17. <li class="cart-item" *ngFor="let item of userCart.orderedlist; let i = index;" [ngClass]="{'show' : item.outlet_id === outlet.outlet_id && item.mall_id === outlet.mall_id }">
  18. <header *ngIf="getItemDetails(item)"> {{ i + 1 }}. {{ getItemDetails(item).menu_item_name }} </header>
  19. <ul class="breakups" *ngIf="!show_order_details && getItemDetails(item)">
  20. <li>
  21. <label>
  22. {{ item.quantity }} X &#8377; {{ getItemDetails(item).item_price - getItemDetails(item).item_discount }}
  23. </label>
  24. <span class="total"> &#8377; {{ item.total_price }} </span>
  25. </li>
  26. <li>
  27. <label> Pickup Time </label>
  28. <ion-item class="time-holder">
  29. {{ getFormatterDateTime(item.pickup_time, 'hh:mm a') }}
  30. <a> Schedule time </a>
  31. <ion-datetime displayFormat="hh:mm a" [(ngModel)]="item.pickup_time"
  32. placeholder="Select Date"></ion-datetime>
  33. </ion-item>
  34. </li>
  35. </ul>
  36. <ul class="breakups" *ngIf="show_order_details">
  37. <li>
  38. <label> Quantity </label>
  39. <div class="quantity-scale-holder">
  40. <button (click)="decrementCartCount(item.outlet_id, item.menuitem_id, item.mall_id)"> <ion-icon name="remove"></ion-icon> </button>
  41. <div class="quantity"> {{ item.quantity }} </div>
  42. <button (click)="incrementCartCount(item.outlet_id, item.menuitem_id, item.mall_id)"> <ion-icon name="add"></ion-icon> </button>
  43. </div>
  44. </li>
  45. <li>
  46. <label> Takeaway </label>
  47. <div class="toggle">
  48. <ion-toggle [(ngModel)]="item.take_away"></ion-toggle>
  49. </div>
  50. </li>
  51. </ul>
  52. <ion-button fill="outline" shape="round" class="add-on-button show" (click)="openInstantMenu(outlet)"> Add on </ion-button>
  53. </li>
  54. </ul>
  55. <div class="total-price-breakup">
  56. <ul class="breakups">
  57. <li> <label> Total after discounts </label> <span> &#8377; {{ getTotalCartAmount() }} </span> </li>
  58. <li> <label> Promocode </label> <span>
  59. <ion-button fill="clear" *ngIf="!selected_promocode" (click)="show_promocodes = true"> Apply </ion-button>
  60. <ion-button fill="clear" *ngIf="selected_promocode" (click)="selected_promocode = ''">
  61. Remove {{ selected_promocode }}
  62. <ion-icon name="close-circle"></ion-icon>
  63. </ion-button>
  64. </span> </li>
  65. <li> <label> Packaging </label> <span> &#8377; 20 </span> </li>
  66. <li> <label> GST </label> <span> 18% </span> </li>
  67. </ul>
  68. <div class="total-price">
  69. <span> Total </span> <span> &#8377; {{ (getTotalCartAmount() + 20) + (getTotalCartAmount() + 20) * (18 / 100) }} </span>
  70. </div>
  71. </div>
  72. <ion-button shape="round" [disabled]="userCart.orderedlist.length === 0" expand="block"
  73. class="pay-button" (click)="requestInvoice();"> Pay Now </ion-button>
  74. <div class="common-semi-modal filter-holder with-border" [ngClass]="{'active' : show_promocodes }">
  75. <header>
  76. APPLY PROMOCODE <button (click)="show_promocodes = false"> Done </button>
  77. </header>
  78. <ion-list>
  79. <ion-item (click)="selected_promocode = 'SAVE100'">
  80. <ion-radio slot="start" [checked]="selected_promocode === 'SAVE100'"></ion-radio>
  81. <ion-label class="ion-text-wrap">
  82. <div class="heading"> Upto &#8377; 100 Offer </div>
  83. <div class="code"> Promocode: <span> SAVE100 </span> </div>
  84. <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolore, aliquid quod omnis sed voluptatem, eos sapiente quaerat, consequatur neque beatae architecto commodi! Debitis, qui eum iure perspiciatis aperiam cumque voluptatum? </p>
  85. <a> Terms & Condition </a>
  86. </ion-label>
  87. </ion-item>
  88. <ion-item (click)="selected_promocode = 'SAVE10PER'">
  89. <ion-radio slot="start" [checked]="selected_promocode === 'SAVE10PER'"></ion-radio>
  90. <ion-label class="ion-text-wrap">
  91. <div class="heading"> Upto &#8377; 10 Percert Offer </div>
  92. <div class="code"> Promocode: <span> SAVE10PER </span> </div>
  93. <p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolore, aliquid quod omnis sed voluptatem, eos sapiente quaerat, consequatur neque beatae architecto commodi! Debitis, qui eum iure perspiciatis aperiam cumque voluptatum? </p>
  94. <a> Terms & Condition </a>
  95. </ion-label>
  96. </ion-item>
  97. </ion-list>
  98. </div>
  99. <div class="common-semi-modal instant-menu" [ngClass]="{'active' : showInstantMenu }" *ngIf="temp_outlet_details">
  100. <header>
  101. Add On <button (click)="showInstantMenu = false;"> Done </button>
  102. </header>
  103. <section class="items-holder">
  104. <div class="item" *ngFor="let item of temp_outlet_details.menuitems"
  105. [ngClass]="{'hide' : !item.is_vegeterian && show_only_veg }">
  106. <div class="stats-holder" *ngIf="show_grid">
  107. <div class="stat"> <ion-icon name="stopwatch"></ion-icon> <span> {{ item.wait_duration }} min </span> </div>
  108. <div class="stat"> <ion-icon name="star"></ion-icon> <span> {{ item.rating }} </span> </div>
  109. </div>
  110. <div class="image-holder">
  111. <img [src]="item.image_url">
  112. <div class="label-holder">
  113. <div class="category" [ngClass]="{'non-veg' : !item.is_vegeterian, 'veg' : item.is_vegeterian }"></div>
  114. </div>
  115. </div>
  116. <div class="content-holder">
  117. <h5> {{ item.menu_item_name }} </h5>
  118. <div class="stats-holder" *ngIf="!show_grid">
  119. <div class="stat"> <ion-icon name="stopwatch"></ion-icon> <span> {{ item.wait_duration }} min </span> </div>
  120. <div class="stat"> <ion-icon name="star"></ion-icon> <span> {{ item.rating }} </span> </div>
  121. </div>
  122. <div class="price">
  123. <span> ₹ {{ item.item_price - item.item_discount }} </span>
  124. <button class="cart-button" *ngIf="isPresentInCart(temp_outlet_details.outlet_id, item.menuitem_id, selectedTempMallId) === 0" (click)="addToCart(temp_outlet_details.outlet_id, item.menuitem_id, selectedTempMallId)">
  125. <ion-icon name="cart"></ion-icon>
  126. </button>
  127. <div class="count-buttons-holder" *ngIf="isPresentInCart(temp_outlet_details.outlet_id, item.menuitem_id, selectedTempMallId) > 0">
  128. <ion-button (click)="decrementCartCount(temp_outlet_details.outlet_id, item.menuitem_id, selectedTempMallId)"> <ion-icon name="remove"></ion-icon> </ion-button>
  129. <span class="count">
  130. {{ isPresentInCart(temp_outlet_details.outlet_id, item.menuitem_id, selectedTempMallId) }}
  131. </span>
  132. <ion-button (click)="incrementCartCount(temp_outlet_details.outlet_id, item.menuitem_id, selectedTempMallId)"> <ion-icon name="add"></ion-icon> </ion-button>
  133. </div>
  134. </div>
  135. </div>
  136. </div>
  137. </section>
  138. </div>
  139. </ion-content>