home.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. import {queryHome, distributorFetch, fetchProductData,deliverSave,returnSave,fetchSearch} from './../services/home';
  2. import {createAction} from '../utils'
  3. import {REFRESH_STATE} from 'react-native-refresh-flatlist';
  4. import {NavigationActions} from "react-navigation";
  5. import {Alert} from "react-native";
  6. export default {
  7. namespace: 'home',
  8. state: {
  9. refreshState: REFRESH_STATE.Ready,
  10. list: [],
  11. searchState: 0,
  12. searchData: {},
  13. searchNoData: {},
  14. searchRState: REFRESH_STATE.Ready,
  15. searchDistData: [],
  16. searchProductData: {},
  17. },
  18. effects: {
  19. * fetch({payload}, {call, put}) {
  20. yield put(createAction('queryList')({refreshState: REFRESH_STATE.HeaderRefreshing}));
  21. const response = yield call(queryHome, payload);
  22. if (response == undefined || response.code == 1001) {
  23. yield put(NavigationActions.navigate({routeName: 'Login'}))
  24. } else {
  25. yield put(createAction('queryList')({list: response.data, refreshState: REFRESH_STATE.Idle}));
  26. }
  27. },
  28. * search({payload, callback}, {call, put}) {
  29. const response = yield call(fetchSearch, payload);
  30. if(response.code == 0) {
  31. if (response.data) {
  32. callback({searchData: response.data, searchState: 1})
  33. } else {
  34. callback({searchData: {}, searchState: 2})
  35. }
  36. }else {
  37. Alert.alert('提示', response.msg);
  38. }
  39. },
  40. * fetchProductData({payload,callback}, {call, put}) {
  41. const response = yield call(fetchProductData, payload);
  42. if (response.code == 0) {
  43. if (response.data) {
  44. if(callback){
  45. callback(response.data)
  46. }
  47. yield put(createAction('queryList')({searchProductData: response.data,}));
  48. }
  49. else {
  50. // Alert.alert('提示', '未查询到产品!');
  51. yield put(createAction('queryList')({searchProductData: {},}));
  52. }
  53. } else {
  54. Alert.alert('提示', response.msg);
  55. }
  56. },
  57. * searchDist({payload}, {call, put}) {
  58. yield put(createAction('queryList')({searchRState: REFRESH_STATE.HeaderRefreshing}));
  59. const response = yield call(distributorFetch, payload);
  60. if (response.code == 0) {
  61. yield put(createAction('queryList')({
  62. searchDistData: response.data,
  63. searchRState: REFRESH_STATE.Idle,
  64. }));
  65. }
  66. else {
  67. Alert.alert('提示', response.msg);
  68. }
  69. },
  70. * clear({}, {call, put}) {
  71. yield put(createAction('updateState')({
  72. searchDistData: [],
  73. searchProductData: {},
  74. searchState: 0,
  75. }));
  76. },
  77. * deliverSave({payload, callback}, {call, put}) {
  78. const response = yield call(deliverSave, payload);
  79. if (response.code == 0) {
  80. callback(response.data ?? {})
  81. } else {
  82. Alert.alert('提示', response.msg);
  83. }
  84. },
  85. * returnSave({payload, callback}, {call, put}) {
  86. const response = yield call(returnSave, payload);
  87. if (response.code == 0) {
  88. callback(response.data ?? {})
  89. } else {
  90. Alert.alert('提示', response.msg);
  91. }
  92. },
  93. },
  94. reducers: {
  95. queryList(state, {payload}) {
  96. // console.log('queryList', state, payload);
  97. return {...state, ...payload};
  98. },
  99. updateState(state, {payload}) {
  100. return {...state, ...payload};
  101. },
  102. },
  103. };