customer.js 14 KB

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