cart.js 879 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const state = {
  2. cart: [],
  3. total: 0
  4. }
  5. const getters = {
  6. getCartItems(state) {
  7. return state.cart
  8. },
  9. isEmpty(state) {
  10. return state.cart.length !== 0
  11. }
  12. }
  13. const mutations = {
  14. addToCart(state, payload) {
  15. let finded = state.cart.find(item => item.id == payload.data.id)
  16. if (finded) {
  17. payload.data.qty = payload.data.qty + 1
  18. } else {
  19. state.cart = [payload.data, ...state.cart]
  20. }
  21. },
  22. calculateTotal(state) {
  23. let sum = 0
  24. state.cart.forEach(item => {
  25. sum = sum + (item.list_price * item.qty)
  26. })
  27. state.total = sum
  28. }
  29. }
  30. const actions = {
  31. addToCart({ commit }, payload) {
  32. commit('addToCart', payload)
  33. commit('calculateTotal')
  34. }
  35. }
  36. export default {
  37. state,
  38. getters,
  39. mutations,
  40. actions
  41. }