place.js 1.61 KB
import * as services from '@/services/data';
import { message } from 'antd';

/* SerachParams */
const staticSearch = {
  current: 1,
  size: 10,
  name: undefined,
};

export default {
  namespace: 'Place',
  state: {
    dataSearch: {
      ...staticSearch,
    },
    dataPlace: {
      records: [],
      current: 1,
      size: 10,
      total: 0,
      totalPage: 0,
    },
  },
  effects: {
    /* 获取场所列表 */
    *getPlaceList({ payload }, { call, put, select }) {
      const { dataSearch } = yield select(state => state.Place);
      try {
        const res = yield call(services.getPlaceList, {
          current: 1,
          size: 10,
          ...dataSearch,
          ...payload,
        });
        if (res.code === 0) {
          res.data.records = res.data.records || [];
          yield put({
            type: 'changeState',
            payload: {
              dataPlace: res.data,
            },
          });
        }
      } catch (err) {
        console.error(err);
      }
    },
    /* 场所导入 */
    *importPlace({ payload }, { call, put, select }) {
      try {
        const res = yield call(services.importPlace, payload);
        if (res.code === 0) {
          message.success('导入成功');
          yield put({ type: 'getPlaceList' });
        }
      } catch (err) {
        console.error(err);
      }
    },
  },
  reducers: {
    changeState(state, { payload }) {
      return {
        ...state,
        ...payload,
      };
    },
    resetSearch(state, { payload }) {
      return {
        ...state,
        dataSearch: {
          ...staticSearch,
        },
      };
    },
  },
};