customer.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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. },
  19. reducers: {
  20. updateState(state, {payload}) {
  21. return {...state, ...payload};
  22. },
  23. queryList(state, {payload}) {
  24. return {...state, ...payload};
  25. },
  26. },
  27. effects: {
  28. * fetchReportCustomerData({payload}, {call, put}) {
  29. if (payload.page > 1) {
  30. yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.FooterRefreshing}));
  31. } else {
  32. yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.HeaderRefreshing}));
  33. }
  34. const response = yield call(customer.queryReportCustomerData, payload);
  35. if (!response.code) {
  36. const result = TurnPage(response, payload, reportCustomerData);
  37. reportCustomerData = result.data;
  38. yield put(createAction('queryList')({
  39. reportCustomerData: reportCustomerData, reportCustomerDataRState: result.state,
  40. total: response.totalResult, page: payload.page,
  41. }));
  42. } else {
  43. ResponseError(response);
  44. yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.Ready}));
  45. }
  46. },
  47. * fetchReportDict({payload, callback}, {call, put}) {
  48. const response = yield call(customer.queryReportDict);
  49. if (!response.code) {
  50. if (callback) {
  51. callback(response.data);
  52. }
  53. yield put(createAction('queryList')({projectDict: response.data.project}));
  54. } else {
  55. ResponseError(response);
  56. }
  57. },
  58. * saveReportCustomer({payload, callback}, {call, put}) {
  59. const response = yield call(customer.saveReportCustomer, payload);
  60. if (!response.code) {
  61. if (callback) {
  62. callback();
  63. }
  64. } else {
  65. ResponseError(response);
  66. }
  67. },
  68. * signRepeat({payload, callback}, {call, put}) {
  69. const response = yield call(customer.signRepeat, payload);
  70. if (!response.code) {
  71. if (callback) {
  72. callback();
  73. }
  74. } else {
  75. ResponseError(response);
  76. }
  77. },
  78. * getUser({payload, callback}, {call, put}) {
  79. const response = yield call(customer.getUser, payload);
  80. if (!response.code) {
  81. if (callback) {
  82. callback(response.data);
  83. }
  84. } else {
  85. ResponseError(response);
  86. }
  87. },
  88. * dispatchUser({payload, callback}, {call, put}) {
  89. const response = yield call(customer.dispatchUser, payload);
  90. if (!response.code) {
  91. if (callback) {
  92. callback(response.data);
  93. }
  94. } else {
  95. ResponseError(response);
  96. }
  97. },
  98. * fetchReviewToday({payload}, {call, put}) {
  99. if (payload.page > 1) {
  100. yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.FooterRefreshing}));
  101. } else {
  102. yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.HeaderRefreshing}));
  103. }
  104. const response = yield call(customer.queryReviewToday, payload);
  105. if (!response.code) {
  106. const result = TurnPage(response, payload, reviewTodayData);
  107. reviewTodayData = result.data;
  108. yield put(createAction('queryList')({
  109. reviewTodayData: reviewTodayData, reviewTodayRState: result.state,
  110. total: response.totalResult, page: payload.page,
  111. }));
  112. } else {
  113. ResponseError(response);
  114. yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.Ready}));
  115. }
  116. },
  117. * fetchReviewRecord({payload}, {call, put}) {
  118. if (payload.page > 1) {
  119. yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.FooterRefreshing}));
  120. } else {
  121. yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.HeaderRefreshing}));
  122. }
  123. const response = yield call(customer.queryReviewRecord, payload);
  124. if (!response.code) {
  125. const result = TurnPage(response, payload, reviewRecordData);
  126. reviewRecordData = result.data;
  127. yield put(createAction('queryList')({
  128. reviewRecordData: reviewRecordData, reviewRecordRState: result.state,
  129. total: response.totalResult, page: payload.page,
  130. }));
  131. } else {
  132. ResponseError(response);
  133. yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.Ready}));
  134. }
  135. },
  136. },
  137. subscriptions: {
  138. setup({dispatch}) {
  139. //dispatch({ type: 'loadStorage' })
  140. },
  141. },
  142. };