|
|
|
@ -4,7 +4,7 @@
|
|
|
|
|
* @Github:
|
|
|
|
|
* @Date: 2019-11-27 13:41:48
|
|
|
|
|
* @LastEditors: tangjiang
|
|
|
|
|
* @LastEditTime: 2019-12-19 20:10:39
|
|
|
|
|
* @LastEditTime: 2019-12-20 14:46:07
|
|
|
|
|
*/
|
|
|
|
|
import types from "../actions/actionTypes";
|
|
|
|
|
import { Base64 } from 'js-base64';
|
|
|
|
@ -13,6 +13,7 @@ const initialState = {
|
|
|
|
|
user_program_identifier: '', // 开启OJ题的唯一标题
|
|
|
|
|
hack: {}, // 编程题主要内容
|
|
|
|
|
test_case: {}, // 测试用例
|
|
|
|
|
commitTestRecordDetail: {}, // 调试代码执行结果
|
|
|
|
|
commitRecordDetail: {}, // 提交成功后记录提交的详情
|
|
|
|
|
commitRecord: [], // 提交记录
|
|
|
|
|
userCode: '', // 保存当前用户输入的代码
|
|
|
|
@ -24,6 +25,7 @@ const initialState = {
|
|
|
|
|
editor_code: '', // 保存编辑代码
|
|
|
|
|
notice: false, // 通知
|
|
|
|
|
hadCodeUpdate: false, // 更新代码
|
|
|
|
|
operateType: '', // 点击类型: 调度或提交
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
const ojForUserReducer = (state = initialState, action) => {
|
|
|
|
@ -51,7 +53,7 @@ const ojForUserReducer = (state = initialState, action) => {
|
|
|
|
|
test_case: Object.assign({}, test_case)
|
|
|
|
|
}
|
|
|
|
|
case types.COMMIT_RECORD_DETAIL:
|
|
|
|
|
let result = action.payload;
|
|
|
|
|
let result = action.payload.data;
|
|
|
|
|
if (result['expected_output']) {
|
|
|
|
|
result['expected_output'] = Base64.decode(result['expected_output'])
|
|
|
|
|
}
|
|
|
|
@ -63,10 +65,18 @@ const ojForUserReducer = (state = initialState, action) => {
|
|
|
|
|
} catch (e) {
|
|
|
|
|
console.log('错误信息:', e);
|
|
|
|
|
}
|
|
|
|
|
return {
|
|
|
|
|
...state,
|
|
|
|
|
commitRecordDetail: Object.assign({}, result)
|
|
|
|
|
if (action.payload.type === 'submit') {
|
|
|
|
|
return {
|
|
|
|
|
...state,
|
|
|
|
|
commitRecordDetail: Object.assign({}, result)
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
return {
|
|
|
|
|
...state,
|
|
|
|
|
commitTestRecordDetail: Object.assign({}, result)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
case types.COMMIT_RECORD:
|
|
|
|
|
return {
|
|
|
|
|
...state,
|
|
|
|
@ -144,6 +154,31 @@ const ojForUserReducer = (state = initialState, action) => {
|
|
|
|
|
...state,
|
|
|
|
|
hadCodeUpdate: action.payload
|
|
|
|
|
};
|
|
|
|
|
case types.CLICK_OPERATE_TYPE:
|
|
|
|
|
return {
|
|
|
|
|
...state,
|
|
|
|
|
operateType: action.payload
|
|
|
|
|
}
|
|
|
|
|
case types.CLEAR_OJ_FOR_USER_REDUCER:
|
|
|
|
|
return {
|
|
|
|
|
...state,
|
|
|
|
|
user_program_identifier: '', // 开启OJ题的唯一标题
|
|
|
|
|
hack: {}, // 编程题主要内容
|
|
|
|
|
test_case: {}, // 测试用例
|
|
|
|
|
commitTestRecordDetail: {}, // 调试代码执行结果
|
|
|
|
|
commitRecordDetail: {}, // 提交成功后记录提交的详情
|
|
|
|
|
commitRecord: [], // 提交记录
|
|
|
|
|
userCode: '', // 保存当前用户输入的代码
|
|
|
|
|
isUpdateCode: false, // 是否更新了代码内容
|
|
|
|
|
userCodeTab: 'task', // 学员测评tab位置: task | record | comment
|
|
|
|
|
userTestInput: '', // 用户自定义输入值
|
|
|
|
|
recordDetail: {}, // 根据id号获取的记录详情
|
|
|
|
|
hack_identifier: '', // 用户界面编辑时
|
|
|
|
|
editor_code: '', // 保存编辑代码
|
|
|
|
|
notice: false, // 通知
|
|
|
|
|
hadCodeUpdate: false, // 更新代码
|
|
|
|
|
operateType: '', // 点击类型: 调度或提交
|
|
|
|
|
};
|
|
|
|
|
default:
|
|
|
|
|
return state;
|
|
|
|
|
}
|
|
|
|
|