import { message } from 'antd'; import router from 'umi/router'; import { CODE_NAMESPACE } from '../actions/code'; import { list, submit, detail, remove } from '../services/code'; import { select } from '../services/datasource'; import { dict } from '../services/dict'; export default { namespace: CODE_NAMESPACE, state: { data: { list: [], pagination: {}, }, init: { source: [], category: [], }, detail: {}, }, effects: { *fetchList({ payload }, { call, put }) { const response = yield call(list, payload); if (response.success) { yield put({ type: 'saveList', payload: { list: response.data.records, pagination: { total: response.data.total, current: response.data.current, pageSize: response.data.size, }, }, }); } }, *fetchInit({ payload }, { call, put }) { const responseS = yield call(select, payload); const responseC = yield call(dict, payload); if (responseS.success && responseC.success) { yield put({ type: 'saveInit', payload: { source: responseS.data, category: responseC.data, }, }); } }, *fetchDetail({ payload }, { call, put }) { const response = yield call(detail, payload); if (response.success) { yield put({ type: 'saveDetail', payload: { detail: response.data, }, }); } }, *clearDetail({ payload }, { put }) { yield put({ type: 'removeDetail', payload: { payload }, }); }, *submit({ payload }, { call }) { const response = yield call(submit, payload); if (response.success) { message.success('提亀成功'); router.push('/tool/code'); } }, *remove({ payload }, { call }) { const { data: { keys }, success, } = payload; const response = yield call(remove, { ids: keys }); if (response.success) { success(); } }, }, reducers: { saveList(state, action) { return { ...state, data: action.payload, }; }, saveInit(state, action) { return { ...state, init: action.payload, }; }, saveDetail(state, action) { return { ...state, detail: action.payload.detail, }; }, removeDetail(state) { return { ...state, detail: {}, }; }, }, };