cart.vue 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204
  1. <template>
  2. <!--MAIN-->
  3. <main>
  4. <!--SHOPPING CART-->
  5. <div class="shopping-cart mt-3">
  6. <div class="container-fluid c-section">
  7. <div class="row">
  8. <div class="col-lg-9 col-md-8 col-sm-7">
  9. <div class="c-section a-spacing-top-base">
  10. <div class="a-row sc-cart-header sc-compact-bottom">
  11. <h2>Shopping Cart</h2>
  12. </div>
  13. <form action="#" method="post">
  14. <div class="sc-list-head">
  15. <div class="text-right a-spacing-top-micro">
  16. <span class="a-color-secondary">Price</span>
  17. </div>
  18. </div>
  19. <!-- List of the item -->
  20. <div v-for="product in getCart" :key="product._id" class="sc-list-body">
  21. <div class="sc-list-item-border">
  22. <div class="a-row a-spacing-top-base a-spacing-base">
  23. <div class="row">
  24. <!-- Product's Image -->
  25. <div class="col-sm-2 col-2">
  26. <a href="#" class="a-link-normal">
  27. <img :src="product.photo" class="img-fluid w-100" />
  28. </a>
  29. </div>
  30. <div class="col-sm-8 col-8">
  31. <!-- Product's Title -->
  32. <div class="a-spacing-mini">
  33. <a
  34. href="#"
  35. class="a-link-normal a-size-medium a-text-bold"
  36. >{{ product.title }}</a>
  37. <!-- Product's Owner name -->
  38. <span class="a-size-base sc-product-creator">{{ product.owner.name }}</span>
  39. </div>
  40. <div>
  41. <span
  42. class="a-size-small a-color-secondary sc-product-binding"
  43. >Paperback</span>
  44. </div>
  45. <div>
  46. <span
  47. class="a-size-small a-color-success sc-product-availability"
  48. >In Stock</span>
  49. </div>
  50. <div class="a-checkbox a-align-top a-size-small a-spacing-top-micro">
  51. <label>
  52. <input type="checkbox" name value />
  53. <span class="a-checkbox-label">
  54. This is a gift
  55. <span class="a-size-small">
  56. <a href="#">
  57. <span class="a-size-small">Learn More</span>
  58. </a>
  59. </span>
  60. </span>
  61. </label>
  62. </div>
  63. <div class="sc-action-links">
  64. <select>
  65. <option>Qty: &nbsp;1</option>
  66. </select>
  67. &nbsp;&nbsp;
  68. <span>|</span>
  69. &nbsp;
  70. <!-- Delete button -->
  71. <span class="a-size-small">
  72. <a href="#">Delete</a>
  73. </span>
  74. &nbsp;
  75. &nbsp;
  76. </div>
  77. </div>
  78. <div class="col-sm-2 col-2 tr sm-txt-r">
  79. <!-- Product's Price -->
  80. <p class="a-spacing-small">
  81. <span
  82. class="a-size-medium a-color-price sc-price sc-white-space-nowrap sc-product-price sc-price-sign a-text-bold"
  83. >${{ product.price * product.quantity }}</span>
  84. </p>
  85. </div>
  86. </div>
  87. </div>
  88. </div>
  89. </div>
  90. <!-- List of the item -->
  91. <div class="text-right">
  92. <!-- Cart Subtotal -->
  93. <p class="a-spacing-none a-spacing-top-mini">
  94. <span class="a-size-medium">Subtotal ({{ getCartLength }} item)</span>
  95. <span class="a-color-price a-text-bold">
  96. <!-- Cart Total Price -->
  97. <span class="a-size-medium a-color-price">${{ getCartTotalPrice }}</span>
  98. </span>
  99. </p>
  100. </div>
  101. </form>
  102. </div>
  103. </div>
  104. <div class="col-lg-3 col-md-4 col-sm-5">
  105. <div class="a-box-group" style="margin-bottom: 14px;">
  106. <div class="a-box a-color-alternate-background">
  107. <div class="a-box-inner">
  108. <div class="a-spacing-mini">
  109. <p class="a-spacing-none a-spacing-top-none">
  110. <!-- Cart Subtotal -->
  111. <span class="a-size-medium">
  112. <span>Subtotal ({{ getCartLength }} item):</span>
  113. <span class="a-color-price a-text-bold">
  114. <!-- Cart Total Price -->
  115. <span class="a-size-medium a-color-price">${{ getCartTotalPrice }}</span>
  116. </span>
  117. </span>
  118. </p>
  119. </div>
  120. <div class="a-spacing-base mt-1">
  121. <input type="checkbox" name="checkbox" />
  122. <span class="a-label a-checkbox-label">This order contains a gift</span>
  123. </div>
  124. <div>
  125. <span class="a-spacing-small a-button-primary a-button-icon">
  126. <span class="a-button-inner">
  127. <a href="#" class="a-button-text">Proceed to checkout</a>
  128. </span>
  129. </span>
  130. </div>
  131. </div>
  132. </div>
  133. </div>
  134. <!-- Recently Viewed -->
  135. <div class="a-spacing-large">
  136. <div class="a-box">
  137. <div class="a-box-inner">
  138. <h5 class="a-spacing-base">Your recently viewed items</h5>
  139. <div class="a-spacing-micro">
  140. <ul class="a-unordered-list recently-viewed">
  141. <li class="a-spacing-medium" v-for="i in 4" :key="i">
  142. <span class="a-list-item">
  143. <div class="row">
  144. <div class="col-md-4 col-sm-3 col-3 pl-0">
  145. <a href="#">
  146. <img src="img/cartRecent4.png" class />
  147. </a>
  148. </div>
  149. <div class="col-md-8 col-sm-9 col-9">
  150. <a href="#" class="a-link-normal">The Everything Store:…</a>
  151. <div class="a-size-small">
  152. <a href="#" class="a-size-small a-link-child">Brad Stone</a>
  153. </div>
  154. <div class="a-icon-row a-spacing-none">
  155. <a href="#">
  156. <i class="fas fa-star"></i>
  157. <i class="fas fa-star"></i>
  158. <i class="fas fa-star"></i>
  159. <i class="fas fa-star"></i>
  160. <i class="fas fa-star-half-alt"></i>
  161. </a>
  162. <a href="#">155</a>
  163. </div>
  164. <div class="a-size-small">
  165. <span class="a-size-small a-color-secondary">Kindle Edition</span>
  166. </div>
  167. <div class="a-spacing-top-micro">
  168. <span
  169. class="a-button-inspired a-spacing-top-none a-button-base a-button-small"
  170. >
  171. <span class="a-button-inner">
  172. <a href="#" class="a-button-text">See all buying options</a>
  173. </span>
  174. </span>
  175. </div>
  176. </div>
  177. </div>
  178. </span>
  179. </li>
  180. </ul>
  181. </div>
  182. </div>
  183. </div>
  184. </div>
  185. </div>
  186. </div>
  187. </div>
  188. </div>
  189. <!--/SHOPPING CART-->
  190. </main>
  191. <!--/MAIN-->
  192. </template>
  193. <script>
  194. import { mapGetters } from 'vuex'
  195. export default {
  196. computed: {
  197. ...mapGetters(['getCart', 'getCartTotalPrice', 'getCartLength'])
  198. }
  199. }
  200. </script>