customer.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. import { SET_CUSTOMERS, SET_LOADING_CUSTOMERS, SET_SHOW_CUSTOMER_FORM, SET_SELECTED_CUSTOMER, ADD_CUSTOMER } from '@/constants/mutationTypes'
  2. import { INIT_CUSTOMERS, SHOW_CUSTOMER_FORM, HIDE_CUSTOMER_FORM, SUBMIT_CUSTOMER, CREATE_CUSTOMER, RECEIVE_CUSTOMER, SELECT_CUSTOMER } from '@/constants/actionTypes'
  3. const initialState = {
  4. customers: [],
  5. loadingCustomers: false,
  6. showingCustomerForm: false,
  7. selectedCustomer: null
  8. }
  9. const state = {
  10. customers: initialState.customers,
  11. loadingCustomers: !initialState.loadingCustomers,
  12. showingCustomerForm: initialState.showingCustomerForm,
  13. selectedCustomer: initialState.selectedCustomer
  14. }
  15. const getters = {
  16. /**
  17. *
  18. * @param {*} state
  19. */
  20. customers(state) {
  21. return state.customers
  22. },
  23. /**
  24. *
  25. * @param {*} state
  26. */
  27. loadingCustomers(state) {
  28. return state.loadingCustomers
  29. },
  30. /**
  31. *
  32. * @param {*} state
  33. */
  34. showingCustomerForm(state) {
  35. return state.showingCustomerForm
  36. },
  37. /**
  38. *
  39. * @param {*} state
  40. */
  41. selectedCustomer(state) {
  42. return state.selectedCustomer
  43. },
  44. /**
  45. *
  46. * @param {*} state
  47. */
  48. customerCredit(state) {
  49. return state.selectedCustomer && state.selectedCustomer.creditLimit >= state.selectedCustomer.credit ? state.selectedCustomer.creditLimit - state.credit : 0
  50. }
  51. }
  52. const mutations = {
  53. /**
  54. *
  55. * @param {*} state
  56. * @param {*} payload
  57. */
  58. [SET_CUSTOMERS] (state, payload) {
  59. state.customers = payload
  60. },
  61. /**
  62. *
  63. * @param {*} state
  64. * @param {*} payload
  65. */
  66. [SET_LOADING_CUSTOMERS] (state, payload) {
  67. state.loadingCustomers = !!payload
  68. },
  69. /**
  70. *
  71. * @param {*} state
  72. * @param {*} payload
  73. */
  74. [SET_SHOW_CUSTOMER_FORM] (state, payload) {
  75. state.showingCustomerForm = !!payload
  76. },
  77. /**
  78. *
  79. * @param {*} state
  80. * @param {*} payload
  81. */
  82. [ADD_CUSTOMER] (state, payload) {
  83. state.customers = [payload, ...state.customers]
  84. },
  85. /**
  86. *
  87. * @param {*} state
  88. * @param {*} payload
  89. */
  90. [SET_SELECTED_CUSTOMER] (state, payload) {
  91. state.selectedCustomer = payload
  92. }
  93. }
  94. const actions = {
  95. /**
  96. *
  97. * @param {*} param0
  98. * @param {*} payload
  99. */
  100. [INIT_CUSTOMERS] ({ commit }, payload) {
  101. commit(SET_CUSTOMERS, payload)
  102. commit(SET_LOADING_CUSTOMERS)
  103. },
  104. /**
  105. *
  106. * @param {*} param0
  107. * @param {*} payload
  108. */
  109. [SHOW_CUSTOMER_FORM] ({ commit }) {
  110. commit(SET_SHOW_CUSTOMER_FORM, true)
  111. },
  112. /**
  113. *
  114. * @param {*} param0
  115. */
  116. [HIDE_CUSTOMER_FORM] ({ commit }) {
  117. commit(SET_SHOW_CUSTOMER_FORM, false)
  118. },
  119. /**
  120. *
  121. * @param {*} param0
  122. */
  123. [SUBMIT_CUSTOMER] ({ commit, dispatch }, payload) {
  124. commit(SET_LOADING_CUSTOMERS, true)
  125. dispatch(CREATE_CUSTOMER, payload)
  126. dispatch(HIDE_CUSTOMER_FORM)
  127. },
  128. /**
  129. *
  130. * @param {*} param0
  131. * @param {*} payload
  132. */
  133. [RECEIVE_CUSTOMER] ({ commit }, payload) {
  134. commit(ADD_CUSTOMER, payload)
  135. commit(SET_LOADING_CUSTOMERS, false)
  136. },
  137. /**
  138. *
  139. * @param {*} param0
  140. */
  141. [SELECT_CUSTOMER] ({ commit }, payload) {
  142. commit(SET_SELECTED_CUSTOMER, payload)
  143. }
  144. }
  145. export default {
  146. state,
  147. getters,
  148. mutations,
  149. actions
  150. }