customer.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  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 = [];
  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. reviewRecordData: [],
  17. projectDict: [],
  18. customerDetail: {},
  19. },
  20. reducers: {
  21. updateState(state, {payload}) {
  22. return {...state, ...payload};
  23. },
  24. queryList(state, {payload}) {
  25. return {...state, ...payload};
  26. },
  27. },
  28. effects: {
  29. * fetchReportCustomerData({payload}, {call, put}) {
  30. if (payload.page > 1) {
  31. yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.FooterRefreshing}));
  32. } else {
  33. yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.HeaderRefreshing}));
  34. }
  35. const response = yield call(customer.queryReportCustomerData, payload);
  36. if (!response.code) {
  37. const result = TurnPage(response, payload, reportCustomerData);
  38. reportCustomerData = result.data;
  39. yield put(createAction('queryList')({
  40. reportCustomerData: reportCustomerData, reportCustomerDataRState: result.state,
  41. total: response.totalResult, page: payload.page,
  42. }));
  43. } else {
  44. ResponseError(response);
  45. yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.Ready}));
  46. }
  47. },
  48. * fetchReportDict({payload, callback}, {call, put}) {
  49. const response = yield call(customer.queryReportDict);
  50. if (!response.code) {
  51. if (callback) {
  52. callback(response.data);
  53. }
  54. yield put(createAction('queryList')({projectDict: response.data.project}));
  55. } else {
  56. ResponseError(response);
  57. }
  58. },
  59. * saveReportCustomer({payload, callback}, {call, put}) {
  60. const response = yield call(customer.saveReportCustomer, payload);
  61. if (!response.code) {
  62. if (callback) {
  63. callback();
  64. }
  65. } else {
  66. ResponseError(response);
  67. }
  68. },
  69. * signRepeat({payload, callback}, {call, put}) {
  70. const response = yield call(customer.signRepeat, payload);
  71. if (!response.code) {
  72. if (callback) {
  73. callback();
  74. }
  75. } else {
  76. ResponseError(response);
  77. }
  78. },
  79. * getUser({payload, callback}, {call, put}) {
  80. const response = yield call(customer.getUser, payload);
  81. if (!response.code) {
  82. if (callback) {
  83. callback(response.data);
  84. }
  85. } else {
  86. ResponseError(response);
  87. }
  88. },
  89. * dispatchUser({payload, callback}, {call, put}) {
  90. const response = yield call(customer.dispatchUser, payload);
  91. if (!response.code) {
  92. if (callback) {
  93. callback(response.data);
  94. }
  95. } else {
  96. ResponseError(response);
  97. }
  98. },
  99. * fetchReviewToday({payload}, {call, put}) {
  100. if (payload.page > 1) {
  101. yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.FooterRefreshing}));
  102. } else {
  103. yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.HeaderRefreshing}));
  104. }
  105. const response = yield call(customer.queryReviewToday, payload);
  106. if (!response.code) {
  107. const result = TurnPage(response, payload, reviewTodayData);
  108. reviewTodayData = result.data;
  109. yield put(createAction('queryList')({
  110. reviewTodayData: reviewTodayData, reviewTodayRState: result.state,
  111. total: response.totalResult, page: payload.page,
  112. }));
  113. } else {
  114. ResponseError(response);
  115. yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.Ready}));
  116. }
  117. },
  118. * fetchReviewRecord({payload}, {call, put}) {
  119. if (payload.page > 1) {
  120. yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.FooterRefreshing}));
  121. } else {
  122. yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.HeaderRefreshing}));
  123. }
  124. const response = yield call(customer.queryReviewRecord, payload);
  125. if (!response.code) {
  126. const result = TurnPage(response, payload, reviewRecordData);
  127. reviewRecordData = result.data;
  128. yield put(createAction('queryList')({
  129. reviewRecordData: reviewRecordData, reviewRecordRState: result.state,
  130. total: response.totalResult, page: payload.page,
  131. }));
  132. } else {
  133. ResponseError(response);
  134. yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.Ready}));
  135. }
  136. },
  137. * addReview({payload, callback}, {call, put}) {
  138. const response = yield call(customer.addReview, payload);
  139. if (!response.code) {
  140. if (callback) {
  141. callback();
  142. }
  143. } else {
  144. ResponseError(response);
  145. }
  146. },
  147. * addInternalReview({payload, callback}, {call, put}) {
  148. const response = yield call(customer.addInternalReview, payload);
  149. if (!response.code) {
  150. if (callback) {
  151. callback();
  152. }
  153. } else {
  154. ResponseError(response);
  155. }
  156. },
  157. * editCustomerInfo({payload, callback}, {call, put}) {
  158. const response = yield call(customer.editCustomerInfo, payload);
  159. if (!response.code) {
  160. if (callback) {
  161. callback();
  162. }
  163. } else {
  164. ResponseError(response);
  165. }
  166. },
  167. * fetchCustomerDetail({payload, callback}, {call, put}) {
  168. const response = yield call(customer.queryCustomerDetail, payload);
  169. if (response.id) {
  170. yield put(createAction('queryList')({customerDetail: response}));
  171. } else {
  172. ResponseError(response);
  173. }
  174. },
  175. },
  176. subscriptions: {
  177. setup({dispatch}) {
  178. //dispatch({ type: 'loadStorage' })
  179. },
  180. },
  181. };