|
|
|
|
@ -2132,21 +2132,26 @@ var NewItem = function NewItem(_ref2) {
|
|
|
|
|
break;
|
|
|
|
|
case 'PROGRAM':
|
|
|
|
|
break;
|
|
|
|
|
case 'PROGRAM_CORRECTION':
|
|
|
|
|
break;
|
|
|
|
|
case 'PROGRAM_COMPLETION':
|
|
|
|
|
form.setFieldsValue({
|
|
|
|
|
hack: {
|
|
|
|
|
time_limit: 3,
|
|
|
|
|
allow_student_debug: false,
|
|
|
|
|
submit_rule: 1
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
break;
|
|
|
|
|
// case 'PROGRAM_COMPLETION':
|
|
|
|
|
// form.setFieldsValue({
|
|
|
|
|
// hack: {
|
|
|
|
|
// time_limit: 3,
|
|
|
|
|
// allow_student_debug: false,
|
|
|
|
|
// submit_rule: 1
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
// break;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
var handleValuesChange = function handleValuesChange(changedValues, allowChangeValues) {
|
|
|
|
|
var _changedValues$hack;
|
|
|
|
|
if (changedValues !== null && changedValues !== void 0 && changedValues.item_type) {
|
|
|
|
|
if ((changedValues === null || changedValues === void 0 ? void 0 : changedValues.item_type) === "PROGRAM") {
|
|
|
|
|
if (["PROGRAM", "PROGRAM_CORRECTION", "PROGRAM_COMPLETION"].includes(changedValues === null || changedValues === void 0 ? void 0 : changedValues.item_type)) {
|
|
|
|
|
(0,util/* openNewWindow */.xg)("/problems/newcreate");
|
|
|
|
|
// return
|
|
|
|
|
}
|
|
|
|
|
@ -2187,7 +2192,7 @@ var NewItem = function NewItem(_ref2) {
|
|
|
|
|
}, [form.getFieldValue('course')]);
|
|
|
|
|
var handleFinish = /*#__PURE__*/function () {
|
|
|
|
|
var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
|
|
var formValues, _ref5, _ref5$course, course, item_type, item_banks_group_id, _ref5$knowledge, knowledge, choices, _course, id, subId, _formValues$hack, _formValues$hack3, _obj, _formValues$hack2, datas, _res, _res2, _ref6, sub_item_banks, obj, _knowledge$, postData, res, formData, result, _result$fail, _result$fail2;
|
|
|
|
|
var formValues, _ref5, _ref5$course, course, item_type, item_banks_group_id, _ref5$knowledge, knowledge, choices, _course, id, subId, _changedValues, _ref6, sub_item_banks, obj, _knowledge$, postData, res, formData, result, _result$fail, _result$fail2;
|
|
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
|
|
case 0:
|
|
|
|
|
@ -2201,10 +2206,10 @@ var NewItem = function NewItem(_ref2) {
|
|
|
|
|
_ref5 = formValues || {}, _ref5$course = _ref5.course, course = _ref5$course === void 0 ? [] : _ref5$course, item_type = _ref5.item_type, item_banks_group_id = _ref5.item_banks_group_id, _ref5$knowledge = _ref5.knowledge, knowledge = _ref5$knowledge === void 0 ? [] : _ref5$knowledge, choices = _ref5.choices;
|
|
|
|
|
_course = slicedToArray_default()(course, 2), id = _course[0], subId = _course[1];
|
|
|
|
|
if (!(IsSingle === 1)) {
|
|
|
|
|
_context.next = 41;
|
|
|
|
|
_context.next = 25;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (!(item_type === "PROGRAM")) {
|
|
|
|
|
if (!["PROGRAM", "PROGRAM_CORRECTION", "PROGRAM_COMPLETION"].includes((_changedValues = changedValues) === null || _changedValues === void 0 ? void 0 : _changedValues.item_type)) {
|
|
|
|
|
_context.next = 8;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
@ -2212,79 +2217,84 @@ var NewItem = function NewItem(_ref2) {
|
|
|
|
|
(0,util/* openNewWindow */.xg)("/problems/newcreate");
|
|
|
|
|
return _context.abrupt("return");
|
|
|
|
|
case 8:
|
|
|
|
|
if (!(item_type === "PROGRAM_COMPLETION")) {
|
|
|
|
|
_context.next = 24;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
_obj = [];
|
|
|
|
|
if ((formValues === null || formValues === void 0 || (_formValues$hack = formValues.hack) === null || _formValues$hack === void 0 || (_formValues$hack = _formValues$hack.tag_discipline_ids) === null || _formValues$hack === void 0 ? void 0 : _formValues$hack.length) > 0) {
|
|
|
|
|
formValues === null || formValues === void 0 || (_formValues$hack2 = formValues.hack) === null || _formValues$hack2 === void 0 || (_formValues$hack2 = _formValues$hack2.tag_discipline_ids) === null || _formValues$hack2 === void 0 || _formValues$hack2.map(function (v) {
|
|
|
|
|
if (v !== null && v !== void 0 && v.value) {
|
|
|
|
|
_obj.push(v === null || v === void 0 ? void 0 : v.value);
|
|
|
|
|
} else {
|
|
|
|
|
_obj.push(v);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
_obj = [];
|
|
|
|
|
}
|
|
|
|
|
datas = objectSpread2_default()(objectSpread2_default()({}, formValues), {}, {
|
|
|
|
|
hack: objectSpread2_default()(objectSpread2_default()({}, formValues === null || formValues === void 0 ? void 0 : formValues.hack), {}, {
|
|
|
|
|
sub_discipline_id: formValues === null || formValues === void 0 || (_formValues$hack3 = formValues.hack) === null || _formValues$hack3 === void 0 || (_formValues$hack3 = _formValues$hack3.sub_discipline_id) === null || _formValues$hack3 === void 0 ? void 0 : _formValues$hack3[1],
|
|
|
|
|
difficult: formValues.difficulty,
|
|
|
|
|
item_banks_group_ids: formValues.item_banks_group_id,
|
|
|
|
|
tag_discipline_ids: _obj
|
|
|
|
|
}),
|
|
|
|
|
hack_codes: objectSpread2_default()(objectSpread2_default()({}, formValues.hack_codes), {}, {
|
|
|
|
|
code: base64.Base64.encode(formValues.hack_codes.code)
|
|
|
|
|
}),
|
|
|
|
|
hack_sets: [objectSpread2_default()({}, formValues.hack_sets)],
|
|
|
|
|
update_hack_sets: [objectSpread2_default()({}, formValues.hack_sets)],
|
|
|
|
|
is_blank: true
|
|
|
|
|
}); // const tagIds = knowledge?.join(',');
|
|
|
|
|
if (!(isEdit || sessionStorage.projectFill)) {
|
|
|
|
|
_context.next = 19;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
_context.next = 15;
|
|
|
|
|
return (0,fetch/* default */.ZP)("/api/problems/".concat(editId.current || sessionStorage.projectFill, ".json"), {
|
|
|
|
|
method: 'put',
|
|
|
|
|
body: objectSpread2_default()({}, datas)
|
|
|
|
|
});
|
|
|
|
|
case 15:
|
|
|
|
|
_res = _context.sent;
|
|
|
|
|
if (_res.status === 0) {
|
|
|
|
|
_umi_production_exports.history.replace("/problemset?group_id=".concat(formValues.hack.item_banks_group_id));
|
|
|
|
|
}
|
|
|
|
|
_context.next = 23;
|
|
|
|
|
break;
|
|
|
|
|
case 19:
|
|
|
|
|
_context.next = 21;
|
|
|
|
|
return (0,fetch/* default */.ZP)("/api/problems.json", {
|
|
|
|
|
method: 'post',
|
|
|
|
|
body: objectSpread2_default()({}, datas)
|
|
|
|
|
});
|
|
|
|
|
case 21:
|
|
|
|
|
_res2 = _context.sent;
|
|
|
|
|
if (_res2.status === 0) {
|
|
|
|
|
modal/* default */.Z.confirm({
|
|
|
|
|
title: '提示',
|
|
|
|
|
centered: true,
|
|
|
|
|
icon: null,
|
|
|
|
|
content: "试题新增成功",
|
|
|
|
|
okText: "继续新增",
|
|
|
|
|
cancelText: '返回列表',
|
|
|
|
|
onOk: function onOk() {
|
|
|
|
|
setInitDataByQuestionType(currentItemType, item_banks_group_id);
|
|
|
|
|
},
|
|
|
|
|
onCancel: function onCancel() {
|
|
|
|
|
_umi_production_exports.history.replace("/problemset?group_id=".concat(item_banks_group_id));
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
case 23:
|
|
|
|
|
return _context.abrupt("return");
|
|
|
|
|
case 24:
|
|
|
|
|
// if (item_type === "PROGRAM_COMPLETION") {
|
|
|
|
|
|
|
|
|
|
// let obj: any[] = [];
|
|
|
|
|
// if (formValues?.hack?.tag_discipline_ids?.length > 0) {
|
|
|
|
|
// formValues?.hack?.tag_discipline_ids?.map((v: any) => {
|
|
|
|
|
// if (v?.value) {
|
|
|
|
|
// obj.push(v?.value)
|
|
|
|
|
// } else {
|
|
|
|
|
// obj.push(v)
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
// } else {
|
|
|
|
|
// obj = []
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// let datas = {
|
|
|
|
|
// ...formValues,
|
|
|
|
|
|
|
|
|
|
// hack: {
|
|
|
|
|
// ...formValues?.hack,
|
|
|
|
|
// sub_discipline_id: formValues?.hack?.sub_discipline_id?.[1],
|
|
|
|
|
// difficult: formValues.difficulty,
|
|
|
|
|
// item_banks_group_ids: formValues.item_banks_group_id,
|
|
|
|
|
// tag_discipline_ids: obj
|
|
|
|
|
// },
|
|
|
|
|
|
|
|
|
|
// hack_codes: {
|
|
|
|
|
// ...formValues.hack_codes,
|
|
|
|
|
// code: Base64.encode(formValues.hack_codes.code)
|
|
|
|
|
// },
|
|
|
|
|
// hack_sets: [{ ...formValues.hack_sets }],
|
|
|
|
|
// update_hack_sets: [{ ...formValues.hack_sets }],
|
|
|
|
|
|
|
|
|
|
// is_blank: true,
|
|
|
|
|
// }
|
|
|
|
|
// // const tagIds = knowledge?.join(',');
|
|
|
|
|
// if (isEdit || sessionStorage.projectFill) {
|
|
|
|
|
|
|
|
|
|
// let res = await Fetch(`/api/problems/${editId.current || sessionStorage.projectFill}.json`, {
|
|
|
|
|
// method: 'put',
|
|
|
|
|
// body: {
|
|
|
|
|
// ...datas,
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
|
|
|
|
|
// if (res.status === 0) {
|
|
|
|
|
// history.replace(`/problemset?group_id=${formValues.hack.item_banks_group_id}`);
|
|
|
|
|
// }
|
|
|
|
|
// } else {
|
|
|
|
|
// let res = await Fetch(`/api/problems.json`, {
|
|
|
|
|
// method: 'post',
|
|
|
|
|
// body: {
|
|
|
|
|
// ...datas
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
|
|
|
|
|
// if (res.status === 0) {
|
|
|
|
|
// Modal.confirm({
|
|
|
|
|
// title: '提示',
|
|
|
|
|
// centered: true,
|
|
|
|
|
// icon: null,
|
|
|
|
|
// content: "试题新增成功",
|
|
|
|
|
// okText: "继续新增",
|
|
|
|
|
// cancelText: '返回列表',
|
|
|
|
|
// onOk() {
|
|
|
|
|
// setInitDataByQuestionType(currentItemType, item_banks_group_id)
|
|
|
|
|
// },
|
|
|
|
|
// onCancel() {
|
|
|
|
|
// history.replace(`/problemset?group_id=${item_banks_group_id}`);
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// })
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
if (item_type === 'SELECT') {
|
|
|
|
|
item_type = choices.filter(function (choice) {
|
|
|
|
|
return choice.is_answer === 1;
|
|
|
|
|
@ -2319,29 +2329,29 @@ var NewItem = function NewItem(_ref2) {
|
|
|
|
|
item_type: item_type
|
|
|
|
|
});
|
|
|
|
|
if (!isEdit) {
|
|
|
|
|
_context.next = 35;
|
|
|
|
|
_context.next = 19;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
_context.next = 32;
|
|
|
|
|
_context.next = 16;
|
|
|
|
|
return dispatch({
|
|
|
|
|
type: 'problemset/editProblemset',
|
|
|
|
|
payload: objectSpread2_default()(objectSpread2_default()({}, postData), {}, {
|
|
|
|
|
id: editId.current
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
case 32:
|
|
|
|
|
case 16:
|
|
|
|
|
res = _context.sent;
|
|
|
|
|
_context.next = 38;
|
|
|
|
|
_context.next = 22;
|
|
|
|
|
break;
|
|
|
|
|
case 35:
|
|
|
|
|
_context.next = 37;
|
|
|
|
|
case 19:
|
|
|
|
|
_context.next = 21;
|
|
|
|
|
return dispatch({
|
|
|
|
|
type: 'problemset/addProblemset',
|
|
|
|
|
payload: postData
|
|
|
|
|
});
|
|
|
|
|
case 37:
|
|
|
|
|
case 21:
|
|
|
|
|
res = _context.sent;
|
|
|
|
|
case 38:
|
|
|
|
|
case 22:
|
|
|
|
|
if (res.status === 0) {
|
|
|
|
|
if (isEdit) {
|
|
|
|
|
_umi_production_exports.history.replace("/problemset?group_id=".concat(item_banks_group_id));
|
|
|
|
|
@ -2362,47 +2372,47 @@ var NewItem = function NewItem(_ref2) {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
_context.next = 61;
|
|
|
|
|
_context.next = 45;
|
|
|
|
|
break;
|
|
|
|
|
case 41:
|
|
|
|
|
case 25:
|
|
|
|
|
if (!((fileList === null || fileList === void 0 ? void 0 : fileList.length) <= 0)) {
|
|
|
|
|
_context.next = 44;
|
|
|
|
|
_context.next = 28;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
message/* default */.ZP.info('请上传试题文件');
|
|
|
|
|
return _context.abrupt("return");
|
|
|
|
|
case 44:
|
|
|
|
|
case 28:
|
|
|
|
|
setisloading(true);
|
|
|
|
|
formData = new FormData();
|
|
|
|
|
formData.append('file', fileList[0]);
|
|
|
|
|
formData.append('sub_discipline_id', subId);
|
|
|
|
|
_context.next = 50;
|
|
|
|
|
_context.next = 34;
|
|
|
|
|
return (0,fetch/* default */.ZP)("/api/item_banks/file_import.json", {
|
|
|
|
|
method: 'post',
|
|
|
|
|
body: formData
|
|
|
|
|
}, true);
|
|
|
|
|
case 50:
|
|
|
|
|
case 34:
|
|
|
|
|
result = _context.sent;
|
|
|
|
|
setisloading(false);
|
|
|
|
|
if (!((result === null || result === void 0 ? void 0 : result.status) === 0)) {
|
|
|
|
|
_context.next = 61;
|
|
|
|
|
_context.next = 45;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
if (!((result === null || result === void 0 || (_result$fail = result.fail) === null || _result$fail === void 0 ? void 0 : _result$fail.length) > 0)) {
|
|
|
|
|
_context.next = 57;
|
|
|
|
|
_context.next = 41;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
setFail(result === null || result === void 0 ? void 0 : result.fail);
|
|
|
|
|
message/* default */.ZP.error('上传失败题数为' + (result === null || result === void 0 || (_result$fail2 = result.fail) === null || _result$fail2 === void 0 ? void 0 : _result$fail2.length) + ',可在底部试题列表查看错误原因。');
|
|
|
|
|
return _context.abrupt("return");
|
|
|
|
|
case 57:
|
|
|
|
|
case 41:
|
|
|
|
|
form.setFieldsValue({
|
|
|
|
|
course: []
|
|
|
|
|
});
|
|
|
|
|
setFileList([]);
|
|
|
|
|
setFail([]);
|
|
|
|
|
message/* default */.ZP.info('上传成功');
|
|
|
|
|
case 61:
|
|
|
|
|
case 45:
|
|
|
|
|
case "end":
|
|
|
|
|
return _context.stop();
|
|
|
|
|
}
|
|
|
|
|
@ -2570,7 +2580,7 @@ var NewItem = function NewItem(_ref2) {
|
|
|
|
|
span: 24
|
|
|
|
|
},
|
|
|
|
|
style: {
|
|
|
|
|
marginTop: currentItemType === 'PROGRAM' ? 0 : 30
|
|
|
|
|
marginTop: ["PROGRAM", "PROGRAM_CORRECTION", "PROGRAM_COMPLETION"].includes(currentItemType) ? 0 : 30
|
|
|
|
|
},
|
|
|
|
|
name: currentItemType === "PROGRAM_COMPLETION" ? ['hack', 'sub_discipline_id'] : "course",
|
|
|
|
|
rules: [{
|
|
|
|
|
@ -2803,7 +2813,7 @@ var NewItem = function NewItem(_ref2) {
|
|
|
|
|
return form.submit();
|
|
|
|
|
},
|
|
|
|
|
loading: loading['problemset/editProblemset'] || loading['problemset/addProblemset'] || isLoading,
|
|
|
|
|
children: currentItemType === "PROGRAM" && IsSingle === 1 ? "立即创建" : "保存题目"
|
|
|
|
|
children: ["PROGRAM", "PROGRAM_CORRECTION", "PROGRAM_COMPLETION"].includes(currentItemType) && IsSingle === 1 ? "立即创建" : "保存题目"
|
|
|
|
|
})]
|
|
|
|
|
})
|
|
|
|
|
})]
|