import { fakeSubmitForm, getOsType, createReportCommon, createTestCase, getTestCaseList, getCaseBugList, getBugInfo, updateTestCaseList } from './service'; const Model = { namespace: 'editReport', state: { current: 'info', osType: [], step: { payAccount: 'ant-design@alipay.com', receiverAccount: 'test@example.com', receiverName: 'Alex', amount: '500', }, reportCommonInfo: {}, testCaseList: [], caseBugList: [], }, effects: { * submitStepForm({ payload }, { call, put }) { yield call(fakeSubmitForm, payload); yield put({ type: 'saveStepFormData', payload, }); yield put({ type: 'saveCurrentStep', payload: 'detail', }); }, * getOsTypeAction({ payload }, { call, put }) { const { examId } = payload; let res = yield call(getOsType, examId); let osType = res?.result?.paper_type; osType = JSON.parse(osType)['subTitles'][2]?.value; yield put({ type: 'saveOsType', payload: osType, }); }, * getTestCaseList({ payload }, { call, put }) { const { report_id } = payload; let res = yield call(getTestCaseList, report_id); yield put({ type: 'saveTestCaseList', payload: res.result, }); }, //todo:保存报告基础信息 * saveReportCommonDetail({ payload }, { call, put }) { let res = yield call(createReportCommon, payload); //res拿到报告id,组装生成report对象 let report = { id: res.id }; for (let key of payload.keys()) { report[key] = payload.get(key); } yield put({ type: 'saveReportCommonInfo', payload: report, }); yield put({ type: 'saveCurrentStep', payload: 'detail', }); }, //todo:创建新用例 * createTestCase({ payload }, { call, put }) { let { formData , report_id} = payload; let res = yield call(createTestCase, formData); yield put({ type: 'getTestCaseList', payload: { report_id } }) return res; }, //todo:更新用例 * updateTestCase({ payload }, { call, put }) { let { formData,report_id } = payload; let res = yield call(updateTestCaseList, formData); yield put({ type: 'getTestCaseList', payload: { report_id } }) return res; }, //todo:获取bug列表 * getCaseBugList({ payload }, { call, put }) { let bugIdList = yield call(getCaseBugList, payload);//bug id list let newBugList = []; for (const item of bugIdList) { let p = yield put({ type: 'getBugInfo', payload: { item } }); p.then(res=>{ newBugList.push(res) }); } yield put({ type:'saveCaseBugList', payload:newBugList }) }, //todo:获取bug详情 * getBugInfo({ payload }, { call, put }) { const {item} = payload; let bugInfo = yield call(getBugInfo, item); return bugInfo; }, }, reducers: { saveCurrentStep(state, { payload }) { return { ...state, current: payload }; }, saveStepFormData(state, { payload }) { return { ...state, step: { ...state.step, ...payload } }; }, saveOsType(state, { payload }) { return { ...state, osType: payload }; }, saveReportCommonInfo(state, { payload }) { return { ...state, reportCommonInfo: payload }; }, saveTestCaseList(state, { payload }) { return { ...state, testCaseList: payload }; }, saveCaseBugList(state, { payload }) { return { ...state, caseBugList: payload }; }, }, }; export default Model;