123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- import {createAction} from '../utils';
- import * as customer from '../services/customer';
- import ResponseError from '../components/ResponseError';
- import TurnPage from '../components/TurnPage';
- import {REFRESH_STATE} from 'react-native-refresh-flatlist';
- let reportCustomerData = [], reviewTodayData = [], reviewRecordData = [];
- export default {
- namespace: 'customer',
- state: {
- loading: false,
- reportCustomerDataRState: REFRESH_STATE.Ready,
- reportCustomerData: [],
- reviewTodayRState: REFRESH_STATE.Ready,
- reviewTodayData: [],
- reviewRecordRState: REFRESH_STATE.Ready,
- reviewRecordData: [],
- projectDict: [],
- customerDetail: {},
- },
- reducers: {
- updateState(state, {payload}) {
- return {...state, ...payload};
- },
- queryList(state, {payload}) {
- return {...state, ...payload};
- },
- },
- effects: {
- * fetchReportCustomerData({payload}, {call, put}) {
- if (payload.page > 1) {
- yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.FooterRefreshing}));
- } else {
- yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.HeaderRefreshing}));
- }
- const response = yield call(customer.queryReportCustomerData, payload);
- if (!response.code) {
- const result = TurnPage(response, payload, reportCustomerData);
- reportCustomerData = result.data;
- yield put(createAction('queryList')({
- reportCustomerData: reportCustomerData, reportCustomerDataRState: result.state,
- total: response.totalResult, page: payload.page,
- }));
- } else {
- ResponseError(response);
- yield put(createAction('queryList')({reportCustomerDataRState: REFRESH_STATE.Ready}));
- }
- },
- * fetchReportDict({payload, callback}, {call, put}) {
- const response = yield call(customer.queryReportDict);
- if (!response.code) {
- if (callback) {
- callback(response.data);
- }
- yield put(createAction('queryList')({projectDict: response.data.project}));
- } else {
- ResponseError(response);
- }
- },
- * saveReportCustomer({payload, callback}, {call, put}) {
- const response = yield call(customer.saveReportCustomer, payload);
- if (!response.code) {
- if (callback) {
- callback();
- }
- } else {
- ResponseError(response);
- }
- },
- * signRepeat({payload, callback}, {call, put}) {
- const response = yield call(customer.signRepeat, payload);
- if (!response.code) {
- if (callback) {
- callback();
- }
- } else {
- ResponseError(response);
- }
- },
- * getUser({payload, callback}, {call, put}) {
- const response = yield call(customer.getUser, payload);
- if (!response.code) {
- if (callback) {
- callback(response.data);
- }
- } else {
- ResponseError(response);
- }
- },
- * dispatchUser({payload, callback}, {call, put}) {
- const response = yield call(customer.dispatchUser, payload);
- if (!response.code) {
- if (callback) {
- callback(response.data);
- }
- } else {
- ResponseError(response);
- }
- },
- * againDispatchUser({payload, callback}, {call, put}) {
- const response = yield call(customer.againDispatchUser, payload);
- if (!response.code) {
- if (callback) {
- callback(response.data);
- }
- } else {
- ResponseError(response);
- }
- },
- * fetchReviewToday({payload}, {call, put}) {
- if (payload.page > 1) {
- yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.FooterRefreshing}));
- } else {
- yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.HeaderRefreshing}));
- }
- const response = yield call(customer.queryReviewToday, payload);
- if (!response.code) {
- const result = TurnPage(response, payload, reviewTodayData);
- reviewTodayData = result.data;
- yield put(createAction('queryList')({
- reviewTodayData: reviewTodayData, reviewTodayRState: result.state,
- total: response.totalResult, page: payload.page,
- }));
- } else {
- ResponseError(response);
- yield put(createAction('queryList')({reviewTodayRState: REFRESH_STATE.Ready}));
- }
- },
- * fetchReviewRecord({payload}, {call, put}) {
- if (payload.page > 1) {
- yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.FooterRefreshing}));
- } else {
- yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.HeaderRefreshing}));
- }
- const response = yield call(customer.queryReviewRecord, payload);
- if (!response.code) {
- const result = TurnPage(response, payload, reviewRecordData);
- reviewRecordData = result.data;
- yield put(createAction('queryList')({
- reviewRecordData: reviewRecordData, reviewRecordRState: result.state,
- total: response.totalResult, page: payload.page,
- }));
- } else {
- ResponseError(response);
- yield put(createAction('queryList')({reviewRecordRState: REFRESH_STATE.Ready}));
- }
- },
- * addReview({payload, callback}, {call, put}) {
- const response = yield call(customer.addReview, payload);
- if (!response.code) {
- if (callback) {
- callback();
- }
- } else {
- ResponseError(response);
- }
- },
- * addInternalReview({payload, callback}, {call, put}) {
- const response = yield call(customer.addInternalReview, payload);
- if (!response.code) {
- if (callback) {
- callback();
- }
- } else {
- ResponseError(response);
- }
- },
- * editCustomerInfo({payload, callback}, {call, put}) {
- const response = yield call(customer.editCustomerInfo, payload);
- if (!response.code) {
- if (callback) {
- callback();
- }
- } else {
- ResponseError(response);
- }
- },
- * fetchCustomerDetail({payload, callback}, {call, put}) {
- const response = yield call(customer.queryCustomerDetail, payload);
- if (response.id) {
- yield put(createAction('queryList')({customerDetail: response}));
- } else {
- ResponseError(response);
- }
- },
- * addCustomerProject({payload, callback}, {call, put}) {
- const response = yield call(customer.addCustomerProject, payload);
- if (!response.code) {
- callback()
- } else {
- ResponseError(response);
- }
- },
- },
- subscriptions: {
- setup({dispatch}) {
- //dispatch({ type: 'loadStorage' })
- },
- },
- };
|