customer.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254
  1. import {createAction} from '../utils';
  2. import * as customer from '../services/customer';
  3. import ResponseError from '../components/ResponseError';
  4. import TurnPage from '../components/TurnPage';
  5. import {REFRESH_STATE} from 'react-native-refresh-flatlist';
  6. let reportCustomerData = [], reviewTodayData = [], reviewRecordData = [], checkCustomerData = [];
  7. export default {
  8. namespace: 'customer',
  9. state: {
  10. loading: false,
  11. reportCustomerDataRState: REFRESH_STATE.Ready,
  12. reportCustomerData: [],
  13. reviewTodayRState: REFRESH_STATE.Ready,
  14. reviewTodayData: [],
  15. reviewRecordRState: REFRESH_STATE.Ready,
  16. checkCustomerData: [],
  17. checkCustomerRState: REFRESH_STATE.Ready,
  18. reviewRecordData: [],
  19. projectDict: [],
  20. customerDetail: {},
  21. customerReviewDetail: {},
  22. },
  23. reducers: {
  24. updateState(state, {payload}) {
  25. return {...state, ...payload};
  26. },
  27. queryList(state, {payload}) {
  28. return {...state, ...payload};
  29. },
  30. },
  31. effects: {
  32. * fetchReportCustomerData({payload}, {call, put}) {
  33. if (payload.page > 1) {
  34. yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.FooterRefreshing}));
  35. } else {
  36. yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.HeaderRefreshing}));
  37. }
  38. const response = yield call(customer.queryReportCustomerData, payload);
  39. if (!response.code) {
  40. const result = TurnPage(response, payload, reportCustomerData);
  41. reportCustomerData = result.data;
  42. yield put(createAction('queryList')({
  43. reportCustomerData: reportCustomerData, reportCustomerDataRState: result.state,
  44. total: response.totalResult, page: payload.page,
  45. }));
  46. } else {
  47. ResponseError(response);
  48. yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.Ready}));
  49. }
  50. },
  51. * fetchReportDict({payload, callback}, {call, put}) {
  52. const response = yield call(customer.queryReportDict);
  53. if (!response.code) {
  54. if (callback) {
  55. callback(response.data);
  56. }
  57. yield put(createAction('queryList')({projectDict: response.data.project}));
  58. } else {
  59. ResponseError(response);
  60. }
  61. },
  62. * saveReportCustomer({payload, callback}, {call, put}) {
  63. const response = yield call(customer.saveReportCustomer, payload);
  64. if (!response.code) {
  65. if (callback) {
  66. callback();
  67. }
  68. } else {
  69. ResponseError(response);
  70. }
  71. },
  72. * signRepeat({payload, callback}, {call, put}) {
  73. const response = yield call(customer.signRepeat, payload);
  74. if (!response.code) {
  75. if (callback) {
  76. callback();
  77. }
  78. } else {
  79. ResponseError(response);
  80. }
  81. },
  82. * getUser({payload, callback}, {call, put}) {
  83. const response = yield call(customer.getUser, payload);
  84. if (!response.code) {
  85. if (callback) {
  86. callback(response.data);
  87. }
  88. } else {
  89. ResponseError(response);
  90. }
  91. },
  92. * dispatchUser({payload, callback}, {call, put}) {
  93. const response = yield call(customer.dispatchUser, payload);
  94. if (!response.code) {
  95. if (callback) {
  96. callback(response.data);
  97. }
  98. } else {
  99. ResponseError(response);
  100. }
  101. },
  102. * againDispatchUser({payload, callback}, {call, put}) {
  103. const response = yield call(customer.againDispatchUser, payload);
  104. if (!response.code) {
  105. if (callback) {
  106. callback(response.data);
  107. }
  108. } else {
  109. ResponseError(response);
  110. }
  111. },
  112. * fetchReviewToday({payload}, {call, put}) {
  113. if (payload.page > 1) {
  114. yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.FooterRefreshing}));
  115. } else {
  116. yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.HeaderRefreshing}));
  117. }
  118. const response = yield call(customer.queryReviewToday, payload);
  119. if (!response.code) {
  120. const result = TurnPage(response, payload, reviewTodayData);
  121. reviewTodayData = result.data;
  122. yield put(createAction('queryList')({
  123. reviewTodayData: reviewTodayData, reviewTodayRState: result.state,
  124. total: response.totalResult, page: payload.page,
  125. }));
  126. } else {
  127. ResponseError(response);
  128. yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.Ready}));
  129. }
  130. },
  131. * fetchReviewRecord({payload}, {call, put}) {
  132. if (payload.page > 1) {
  133. yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.FooterRefreshing}));
  134. } else {
  135. yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.HeaderRefreshing}));
  136. }
  137. const response = yield call(customer.queryReviewRecord, payload);
  138. if (!response.code) {
  139. const result = TurnPage(response, payload, reviewRecordData);
  140. reviewRecordData = result.data;
  141. yield put(createAction('queryList')({
  142. reviewRecordData: reviewRecordData, reviewRecordRState: result.state,
  143. totalRecord: response.totalResult, page: payload.page,
  144. }));
  145. } else {
  146. ResponseError(response);
  147. yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.Ready}));
  148. }
  149. },
  150. * addReview({payload, callback}, {call, put}) {
  151. const response = yield call(customer.addReview, payload);
  152. if (!response.code) {
  153. if (callback) {
  154. callback();
  155. }
  156. } else {
  157. ResponseError(response);
  158. }
  159. },
  160. * addInternalReview({payload, callback}, {call, put}) {
  161. const response = yield call(customer.addInternalReview, payload);
  162. if (!response.code) {
  163. if (callback) {
  164. callback();
  165. }
  166. } else {
  167. ResponseError(response);
  168. }
  169. },
  170. * editCustomerInfo({payload, callback}, {call, put}) {
  171. const response = yield call(customer.editCustomerInfo, payload);
  172. if (!response.code) {
  173. if (callback) {
  174. callback();
  175. }
  176. } else {
  177. ResponseError(response);
  178. }
  179. },
  180. * fetchCustomerDetail({payload, callback}, {call, put}) {
  181. const response = yield call(customer.queryCustomerDetail, payload);
  182. if (response.id) {
  183. yield put(createAction('queryList')({customerDetail: response}));
  184. } else {
  185. ResponseError(response);
  186. }
  187. },
  188. * fetchCustomerReviewDetail({payload, callback}, {call, put}) {
  189. const response = yield call(customer.fetchCustomerReviewDetail, payload);
  190. if (response.id) {
  191. yield put(createAction('queryList')({customerReviewDetail: response}));
  192. } else {
  193. ResponseError(response);
  194. }
  195. },
  196. * addCustomerProject({payload, callback}, {call, put}) {
  197. const response = yield call(customer.addCustomerProject, payload);
  198. if (!response.code) {
  199. callback()
  200. } else {
  201. ResponseError(response);
  202. }
  203. },
  204. * checkReview({payload, callback}, {call, put}) {
  205. const response = yield call(customer.checkReview, payload);
  206. if (!response.code) {
  207. callback()
  208. } else {
  209. ResponseError(response);
  210. }
  211. },
  212. * fetchCheckCustomer({payload}, {call, put}) {
  213. if (payload.page > 1) {
  214. yield put(createAction('queryList')({checkCustomerRState: REFRESH_STATE.FooterRefreshing}));
  215. } else {
  216. yield put(createAction('queryList')({checkCustomerRState: REFRESH_STATE.HeaderRefreshing}));
  217. }
  218. const response = yield call(customer.queryCheckCustomer, payload);
  219. if (!response.code) {
  220. const result = TurnPage(response, payload, checkCustomerData);
  221. checkCustomerData = result.data;
  222. yield put(createAction('queryList')({
  223. checkCustomerData: checkCustomerData, checkCustomerRState: result.state,
  224. total: response.totalResult, page: payload.page,
  225. }));
  226. } else {
  227. ResponseError(response);
  228. yield put(createAction('queryList')({checkCustomerRState: REFRESH_STATE.Ready}));
  229. }
  230. },
  231. * getProcess({payload, callback}, {call, put}) {
  232. const response = yield call(customer.getProcess, payload);
  233. if (!response.code) {
  234. callback(response.data)
  235. } else {
  236. ResponseError(response);
  237. }
  238. },
  239. * addOrder({payload, callback}, {call, put}) {
  240. const response = yield call(customer.addOrder, payload);
  241. if (!response.code) {
  242. callback()
  243. } else {
  244. ResponseError(response);
  245. }
  246. },
  247. },
  248. subscriptions: {
  249. setup({dispatch}) {
  250. //dispatch({ type: 'loadStorage' })
  251. },
  252. },
  253. };