import { Reducer, Effect } from 'umi'; import { AlarmTimelineItem } from '../common/types'; import { operateAlarm } from '../services'; export interface StateType { data: Partial; } export interface ModelType { namespace: string; state: StateType; effects: { operate: Effect; operateAccept: Effect; }; reducers: { updateState: Reducer; }; } const Model: ModelType = { namespace: 'alarmOperate', state: { data: {}, }, effects: { *operate({ payload }, { call, put }) { const { id } = payload; const response = yield call(operateAlarm, id, payload); if (response?.data) { yield put({ type: 'alarm/updateAlarmStatus', payload: { id, type: response.data.type, data: response.data }, }); // yield put({ // type: 'alarmTimeline/updateListState', // payload: { data: response.data } // }); yield put({ type: 'updateState', payload: { data: response.data } }); return true; } return false; }, *operateAccept({ payload }, { call, put }) { const { id } = payload; const response = yield call(operateAlarm, id, payload); if (response?.data && !response?.code) { // yield put({ // type: 'alarmTimeline/updateListState', // payload: { data: response.data } // }); yield put({ type: 'updateState', payload: { data: response.data }, }); return true; } return false; }, }, reducers: { updateState(state, { payload }) { return { ...state, ...payload, }; }, }, }; export default Model;