Cart.vue 831 B

123456789101112131415161718192021222324252627282930313233
  1. <template>
  2. <div class="cart">
  3. <h2>Your Cart</h2>
  4. <p v-show="!products.length"><i>Please add some products to cart.</i></p>
  5. <ul>
  6. <li v-for="product in products">
  7. {{ product.title }} - {{ product.price | currency }} x {{ product.quantity }}
  8. </li>
  9. </ul>
  10. <p>Total: {{ total | currency }}</p>
  11. <p><button :disabled="!products.length" @click="checkout(products)">Checkout</button></p>
  12. <p v-show="checkoutStatus">Checkout {{ checkoutStatus }}.</p>
  13. </div>
  14. </template>
  15. <script>
  16. import { mapGetters } from 'vuex'
  17. export default {
  18. computed: {
  19. ...mapGetters({
  20. products: 'cartProducts',
  21. checkoutStatus: 'checkoutStatus',
  22. total: 'cartTotalPrice'
  23. })
  24. },
  25. methods: {
  26. checkout (products) {
  27. this.$store.dispatch('checkout', products)
  28. }
  29. }
  30. }
  31. </script>