cart.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import {
  2. addToCart,
  3. deleteCart,
  4. getCartCount,
  5. editCartNum
  6. } from '@/api/goods/cart'
  7. const state = {
  8. cartCount: 0
  9. }
  10. const mutations = {
  11. SET_CART_COUNT: (state, count) => {
  12. state.cartCount = count
  13. }
  14. }
  15. const actions = {
  16. add_to_cart({commit}, item) {
  17. return new Promise((resolve, reject) => {
  18. return addToCart({
  19. site_id: item.site_id,
  20. num: item.num || 1,
  21. sku_id: item.sku_id
  22. }).then(res => {
  23. getCartCount({}).then(res => {
  24. commit('SET_CART_COUNT', res.data)
  25. });
  26. resolve(res)
  27. })
  28. .catch(err => {
  29. reject(err)
  30. })
  31. })
  32. },
  33. delete_cart({
  34. commit
  35. }, item) {
  36. return new Promise((resolve, reject) => {
  37. return deleteCart({
  38. cart_id: item.cart_id
  39. }).then(res => {
  40. getCartCount({}).then(res => {
  41. commit('SET_CART_COUNT', res.data)
  42. });
  43. resolve(res)
  44. }).catch(err => {
  45. reject(err)
  46. })
  47. })
  48. },
  49. cart_count({
  50. commit
  51. }, item) {
  52. return new Promise((resolve, reject) => {
  53. return getCartCount({}).then(res => {
  54. commit('SET_CART_COUNT', res.data)
  55. resolve(res)
  56. }).catch(err => {
  57. reject(err)
  58. })
  59. })
  60. },
  61. edit_cart_num({
  62. commit
  63. }, item) {
  64. return new Promise((resolve, reject) => {
  65. return editCartNum({
  66. num: item.num,
  67. cart_id: item.cart_id
  68. }).then(res => {
  69. getCartCount({}).then(res => {
  70. commit('SET_CART_COUNT', res.data)
  71. });
  72. resolve(res)
  73. }).catch(err => {
  74. reject(err)
  75. })
  76. })
  77. },
  78. }
  79. export default {
  80. namespaced: true,
  81. state,
  82. mutations,
  83. actions
  84. }