customer.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305
  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 = [], processRecordData = [], orderListData = [], 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. orderListData: [],
  19. orderListRState: REFRESH_STATE.Ready,
  20. reviewRecordData: [],
  21. processRecordRState: REFRESH_STATE.Ready,
  22. processRecordData: [],
  23. projectDict: [],
  24. customerDetail: {},
  25. processDetail: {},
  26. customerReviewDetail: {},
  27. },
  28. reducers: {
  29. updateState(state, {payload}) {
  30. return {...state, ...payload};
  31. },
  32. queryList(state, {payload}) {
  33. return {...state, ...payload};
  34. },
  35. },
  36. effects: {
  37. * fetchReportCustomerData({payload}, {call, put}) {
  38. if (payload.page > 1) {
  39. yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.FooterRefreshing}));
  40. } else {
  41. yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.HeaderRefreshing}));
  42. }
  43. const response = yield call(customer.queryReportCustomerData, payload);
  44. if (!response.code) {
  45. const result = TurnPage(response, payload, reportCustomerData);
  46. reportCustomerData = result.data;
  47. yield put(createAction('queryList')({
  48. reportCustomerData: reportCustomerData, reportCustomerDataRState: result.state,
  49. total: response.totalResult, page: payload.page,
  50. }));
  51. } else {
  52. ResponseError(response);
  53. yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.Ready}));
  54. }
  55. },
  56. * fetchReportDict({payload, callback}, {call, put}) {
  57. const response = yield call(customer.queryReportDict);
  58. if (!response.code) {
  59. if (callback) {
  60. callback(response.data);
  61. }
  62. yield put(createAction('queryList')({projectDict: response.data.project}));
  63. } else {
  64. ResponseError(response);
  65. }
  66. },
  67. * saveReportCustomer({payload, callback}, {call, put}) {
  68. const response = yield call(customer.saveReportCustomer, payload);
  69. if (!response.code) {
  70. if (callback) {
  71. callback();
  72. }
  73. } else {
  74. ResponseError(response);
  75. }
  76. },
  77. * signRepeat({payload, callback}, {call, put}) {
  78. const response = yield call(customer.signRepeat, payload);
  79. if (!response.code) {
  80. if (callback) {
  81. callback();
  82. }
  83. } else {
  84. ResponseError(response);
  85. }
  86. },
  87. * getUser({payload, callback}, {call, put}) {
  88. const response = yield call(customer.getUser, payload);
  89. if (!response.code) {
  90. if (callback) {
  91. callback(response.data);
  92. }
  93. } else {
  94. ResponseError(response);
  95. }
  96. },
  97. * dispatchUser({payload, callback}, {call, put}) {
  98. const response = yield call(customer.dispatchUser, payload);
  99. if (!response.code) {
  100. if (callback) {
  101. callback(response.data);
  102. }
  103. } else {
  104. ResponseError(response);
  105. }
  106. },
  107. * againDispatchUser({payload, callback}, {call, put}) {
  108. const response = yield call(customer.againDispatchUser, payload);
  109. if (!response.code) {
  110. if (callback) {
  111. callback(response.data);
  112. }
  113. } else {
  114. ResponseError(response);
  115. }
  116. },
  117. * fetchReviewToday({payload}, {call, put}) {
  118. if (payload.page > 1) {
  119. yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.FooterRefreshing}));
  120. } else {
  121. yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.HeaderRefreshing}));
  122. }
  123. const response = yield call(customer.queryReviewToday, payload);
  124. if (!response.code) {
  125. const result = TurnPage(response, payload, reviewTodayData);
  126. reviewTodayData = result.data;
  127. yield put(createAction('queryList')({
  128. reviewTodayData: reviewTodayData, reviewTodayRState: result.state,
  129. total: response.totalResult, page: payload.page,
  130. }));
  131. } else {
  132. ResponseError(response);
  133. yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.Ready}));
  134. }
  135. },
  136. * fetchReviewRecord({payload}, {call, put}) {
  137. if (payload.page > 1) {
  138. yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.FooterRefreshing}));
  139. } else {
  140. yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.HeaderRefreshing}));
  141. }
  142. const response = yield call(customer.queryReviewRecord, payload);
  143. if (!response.code) {
  144. const result = TurnPage(response, payload, reviewRecordData);
  145. reviewRecordData = result.data;
  146. yield put(createAction('queryList')({
  147. reviewRecordData: reviewRecordData, reviewRecordRState: result.state,
  148. totalRecord: response.totalResult, page: payload.page,
  149. }));
  150. } else {
  151. ResponseError(response);
  152. yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.Ready}));
  153. }
  154. },
  155. * addReview({payload, callback}, {call, put}) {
  156. const response = yield call(customer.addReview, payload);
  157. if (!response.code) {
  158. if (callback) {
  159. callback();
  160. }
  161. } else {
  162. ResponseError(response);
  163. }
  164. },
  165. * addInternalReview({payload, callback}, {call, put}) {
  166. const response = yield call(customer.addInternalReview, payload);
  167. if (!response.code) {
  168. if (callback) {
  169. callback();
  170. }
  171. } else {
  172. ResponseError(response);
  173. }
  174. },
  175. * editCustomerInfo({payload, callback}, {call, put}) {
  176. const response = yield call(customer.editCustomerInfo, payload);
  177. if (!response.code) {
  178. if (callback) {
  179. callback();
  180. }
  181. } else {
  182. ResponseError(response);
  183. }
  184. },
  185. * fetchCustomerDetail({payload, callback}, {call, put}) {
  186. const response = yield call(customer.queryCustomerDetail, payload);
  187. if (response.id) {
  188. yield put(createAction('queryList')({customerDetail: response}));
  189. } else {
  190. ResponseError(response);
  191. }
  192. },
  193. * fetchCustomerReviewDetail({payload, callback}, {call, put}) {
  194. const response = yield call(customer.fetchCustomerReviewDetail, payload);
  195. if (response.id) {
  196. yield put(createAction('queryList')({customerReviewDetail: response}));
  197. } else {
  198. ResponseError(response);
  199. }
  200. },
  201. * addCustomerProject({payload, callback}, {call, put}) {
  202. const response = yield call(customer.addCustomerProject, payload);
  203. if (!response.code) {
  204. callback()
  205. } else {
  206. ResponseError(response);
  207. }
  208. },
  209. * checkReview({payload, callback}, {call, put}) {
  210. const response = yield call(customer.checkReview, payload);
  211. if (!response.code) {
  212. callback()
  213. } else {
  214. ResponseError(response);
  215. }
  216. },
  217. * fetchCheckCustomer({payload}, {call, put}) {
  218. if (payload.page > 1) {
  219. yield put(createAction('queryList')({checkCustomerRState: REFRESH_STATE.FooterRefreshing}));
  220. } else {
  221. yield put(createAction('queryList')({checkCustomerRState: REFRESH_STATE.HeaderRefreshing}));
  222. }
  223. const response = yield call(customer.queryCheckCustomer, payload);
  224. if (!response.code) {
  225. const result = TurnPage(response, payload, checkCustomerData);
  226. checkCustomerData = result.data;
  227. yield put(createAction('queryList')({
  228. checkCustomerData: checkCustomerData, checkCustomerRState: result.state,
  229. total: response.totalResult, page: payload.page,
  230. }));
  231. } else {
  232. ResponseError(response);
  233. yield put(createAction('queryList')({checkCustomerRState: REFRESH_STATE.Ready}));
  234. }
  235. },
  236. * getProcess({payload, callback}, {call, put}) {
  237. const response = yield call(customer.getProcess, payload);
  238. if (!response.code) {
  239. callback(response.data)
  240. } else {
  241. ResponseError(response);
  242. }
  243. },
  244. * addOrder({payload, callback}, {call, put}) {
  245. const response = yield call(customer.addOrder, payload);
  246. if (!response.code) {
  247. callback()
  248. } else {
  249. ResponseError(response);
  250. }
  251. },
  252. * fetchOrderList({payload}, {call, put}) {
  253. if (payload.page > 1) {
  254. yield put(createAction('queryList')({orderListRState: REFRESH_STATE.FooterRefreshing}));
  255. } else {
  256. yield put(createAction('queryList')({orderListRState: REFRESH_STATE.HeaderRefreshing}));
  257. }
  258. const response = yield call(customer.queryOrderList, payload);
  259. if (!response.code) {
  260. const result = TurnPage(response, payload, orderListData);
  261. orderListData = result.data;
  262. yield put(createAction('queryList')({
  263. orderListData: orderListData, orderListRState: result.state,
  264. total: response.totalResult, page: payload.page,
  265. }));
  266. } else {
  267. ResponseError(response);
  268. yield put(createAction('queryList')({orderListRState: REFRESH_STATE.Ready}));
  269. }
  270. },
  271. * fetchProcessDetail({payload, callback}, {call, put}) {
  272. const response = yield call(customer.queryProcessDetail, payload);
  273. if (response.id) {
  274. yield put(createAction('queryList')({processDetail: response}));
  275. } else {
  276. ResponseError(response);
  277. }
  278. },
  279. * fetchProcessRecord({payload}, {call, put}) {
  280. if (payload.page > 1) {
  281. yield put(createAction('queryList')({ProcessRecordRState: REFRESH_STATE.FooterRefreshing}));
  282. } else {
  283. yield put(createAction('queryList')({ProcessRecordRState: REFRESH_STATE.HeaderRefreshing}));
  284. }
  285. const response = yield call(customer.queryProcessRecord, payload);
  286. if (!response.code) {
  287. const result = TurnPage(response, payload, processRecordData);
  288. processRecordData = result.data;
  289. yield put(createAction('queryList')({
  290. processRecordData: processRecordData, processRecordRState: result.state,
  291. totalRecord: response.totalResult, page: payload.page,
  292. }));
  293. } else {
  294. ResponseError(response);
  295. yield put(createAction('queryList')({processRecordRState: REFRESH_STATE.Ready}));
  296. }
  297. },
  298. },
  299. subscriptions: {
  300. setup({dispatch}) {
  301. //dispatch({ type: 'loadStorage' })
  302. },
  303. },
  304. };