123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import { queryFakeList, removeFakeList, addFakeList, updateFakeList } from '@/services/api';
- export default {
- namespace: 'list',
- state: {
- list: [],
- },
- effects: {
- *fetch({ payload }, { call, put }) {
- const response = yield call(queryFakeList, payload);
- yield put({
- type: 'queryList',
- payload: Array.isArray(response) ? response : [],
- });
- },
- *appendFetch({ payload }, { call, put }) {
- const response = yield call(queryFakeList, payload);
- yield put({
- type: 'appendList',
- payload: Array.isArray(response) ? response : [],
- });
- },
- *submit({ payload }, { call, put }) {
- let callback;
- if (payload.id) {
- callback = Object.keys(payload).length === 1 ? removeFakeList : updateFakeList;
- } else {
- callback = addFakeList;
- }
- const response = yield call(callback, payload); // post
- yield put({
- type: 'queryList',
- payload: response,
- });
- },
- },
- reducers: {
- queryList(state, action) {
- return {
- ...state,
- list: action.payload,
- };
- },
- appendList(state, action) {
- return {
- ...state,
- list: state.list.concat(action.payload),
- };
- },
- },
- };
|