You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
NewEduCoderBuild/p__Problems__OjForm__NewEdi...

2329 lines
94 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

"use strict";
(self["webpackChunk"] = self["webpackChunk"] || []).push([[34741],{
/***/ 52428:
/*!*****************************************************************!*\
!*** ./src/pages/Problems/OjForm/NewEdit/index.tsx + 4 modules ***!
\*****************************************************************/
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
// ESM COMPAT FLAG
__webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
Types: function() { return /* binding */ Types; },
"default": function() { return /* binding */ NewEdit; }
});
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/createForOfIteratorHelper.js
var createForOfIteratorHelper = __webpack_require__(91232);
var createForOfIteratorHelper_default = /*#__PURE__*/__webpack_require__.n(createForOfIteratorHelper);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/toConsumableArray.js
var toConsumableArray = __webpack_require__(37205);
var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/regeneratorRuntime.js
var regeneratorRuntime = __webpack_require__(7557);
var regeneratorRuntime_default = /*#__PURE__*/__webpack_require__.n(regeneratorRuntime);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/asyncToGenerator.js
var asyncToGenerator = __webpack_require__(41498);
var asyncToGenerator_default = /*#__PURE__*/__webpack_require__.n(asyncToGenerator);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/slicedToArray.js
var slicedToArray = __webpack_require__(79800);
var slicedToArray_default = /*#__PURE__*/__webpack_require__.n(slicedToArray);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectSpread2.js
var objectSpread2 = __webpack_require__(82242);
var objectSpread2_default = /*#__PURE__*/__webpack_require__.n(objectSpread2);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
var _react_17_0_2_react = __webpack_require__(59301);
;// CONCATENATED MODULE: ./src/pages/Problems/OjForm/NewEdit/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var NewEditmodules = ({"bg":"bg___HduZ7","header":"header___KbUo2","avatar":"avatar___UDYJ4","title":"title___OP1JL","exitBtn":"exitBtn___E3w1m","contentWrapper":"contentWrapper___IeO8M","tabWrapper":"tabWrapper___qc2MC","buttonFixed":"buttonFixed___jzejH","cancelBtn":"cancelBtn___c5OpP","saveBtn":"saveBtn___UhxvN","challengeBtn":"challengeBtn___h9r2O","baseInfoWrapper":"baseInfoWrapper___jei0F","baseLineHeight":"baseLineHeight___v1JXM","folderLineHeight":"folderLineHeight___tF8xb","uploadBtnWrapper":"uploadBtnWrapper___ICJS3","baseFormItem":"baseFormItem___sca4N","radioBtnWrapper":"radioBtnWrapper___VIxZD","difficultyRadio":"difficultyRadio___isD54","easy":"easy___gparw","medium":"medium___wRzjL","hard":"hard___sWxqC","testCaseTypeRadio":"testCaseTypeRadio___oiSFl","cascaderPopup":"cascaderPopup___OADQu","collapseWrapper":"collapseWrapper___saVIT","panelHeader":"panelHeader___hRptX","rateInput":"rateInput____HzUM","operationWrapper":"operationWrapper___YJRMc","open":"open___zkYQ_","close":"close___q9p81","add":"add___NB0_y","remove":"remove___xa9jD","codePanelWrapper":"codePanelWrapper___oacDD","uploadTableWrapper":"uploadTableWrapper___iMDly","unfold":"unfold___TdtCA"});
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/form/index.js + 19 modules
var es_form = __webpack_require__(78241);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules
var message = __webpack_require__(8591);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
var modal = __webpack_require__(43418);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/spin/index.js + 1 modules
var spin = __webpack_require__(71418);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tabs/index.js + 24 modules
var tabs = __webpack_require__(99313);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
var es_button = __webpack_require__(3113);
// EXTERNAL MODULE: ./src/pages/Problems/OjForm/util.tsx
var util = __webpack_require__(21848);
// EXTERNAL MODULE: ./src/.umi-production/exports.ts
var _umi_production_exports = __webpack_require__(80184);
// EXTERNAL MODULE: ./node_modules/_js-base64@2.6.4@js-base64/base64.js
var base64 = __webpack_require__(24334);
// EXTERNAL MODULE: ./src/pages/Problems/OjForm/service.ts
var service = __webpack_require__(22493);
// EXTERNAL MODULE: ./src/service/exercise.ts
var exercise = __webpack_require__(26613);
// EXTERNAL MODULE: ./src/pages/Problems/OjForm/CodePanel/index.tsx + 1 modules
var CodePanel = __webpack_require__(71627);
// EXTERNAL MODULE: ./src/pages/Problems/OjForm/CodeProgramPanel/index.tsx + 1 modules
var CodeProgramPanel = __webpack_require__(48373);
// EXTERNAL MODULE: ./src/utils/fetch.ts
var fetch = __webpack_require__(35325);
// EXTERNAL MODULE: ./src/utils/util.tsx
var utils_util = __webpack_require__(1079);
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
var env = __webpack_require__(67390);
// EXTERNAL MODULE: ./src/service/paperlibrary.ts
var paperlibrary = __webpack_require__(34324);
// EXTERNAL MODULE: ./src/utils/enum.ts
var utils_enum = __webpack_require__(74967);
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/objectDestructuringEmpty.js
var objectDestructuringEmpty = __webpack_require__(70236);
var objectDestructuringEmpty_default = /*#__PURE__*/__webpack_require__.n(objectDestructuringEmpty);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 5 modules
var input = __webpack_require__(10249);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/collapse/index.js + 8 modules
var collapse = __webpack_require__(36381);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input-number/index.js + 14 modules
var input_number = __webpack_require__(5871);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/cascader/index.js + 18 modules
var cascader = __webpack_require__(19842);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/checkbox/index.js + 3 modules
var es_checkbox = __webpack_require__(24905);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/select/index.js
var es_select = __webpack_require__(57809);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/radio/index.js + 5 modules
var es_radio = __webpack_require__(5112);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/row/index.js
var row = __webpack_require__(95237);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/col/index.js
var col = __webpack_require__(43604);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/switch/index.js + 2 modules
var es_switch = __webpack_require__(78673);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/popconfirm/index.js + 2 modules
var popconfirm = __webpack_require__(14478);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/PlusCircleOutlined.js + 1 modules
var PlusCircleOutlined = __webpack_require__(32134);
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.6.1@@ant-design/icons/es/icons/MinusCircleOutlined.js + 1 modules
var MinusCircleOutlined = __webpack_require__(12893);
// EXTERNAL MODULE: ./src/components/markdown-editor/index.tsx + 10 modules
var markdown_editor = __webpack_require__(49731);
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/index.js + 8 modules
var tree = __webpack_require__(41416);
;// CONCATENATED MODULE: ./src/components/FolderTree/index.less?modules
// extracted by mini-css-extract-plugin
/* harmony default export */ var FolderTreemodules = ({"folderWrapper":"folderWrapper___G__0a","folderIcon":"folderIcon___oTG6c"});
// EXTERNAL MODULE: ./src/assets/images/problemset/folder-closed.png
var folder_closed = __webpack_require__(73631);
// EXTERNAL MODULE: ./src/assets/images/problemset/folder-opened.png
var folder_opened = __webpack_require__(5623);
// EXTERNAL MODULE: ./src/service/problemset.ts
var problemset = __webpack_require__(95974);
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
var jsx_runtime = __webpack_require__(37712);
;// CONCATENATED MODULE: ./src/components/FolderTree/index.tsx
var NewFolder = function NewFolder(_ref) {
var value = _ref.value,
onChange = _ref.onChange,
scrollId = _ref.scrollId;
var _useState = (0,_react_17_0_2_react.useState)([]),
_useState2 = slicedToArray_default()(_useState, 2),
treeData = _useState2[0],
setTreeData = _useState2[1];
(0,_react_17_0_2_react.useEffect)(function () {
getData();
}, []);
var getData = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var res, item;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return (0,problemset/* getPaperList */.NZ)({});
case 2:
res = _context.sent;
if (res !== null && res !== void 0 && res.data) {
item = [{
title: '根目录',
value: 0,
key: 0,
icon: /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
src: folder_closed,
className: FolderTreemodules.folderIcon
}),
isLeaf: false,
children: generateChildren(res.data || [])
}];
setTreeData(item);
}
case 4:
case "end":
return _context.stop();
}
}, _callee);
}));
return function getData() {
return _ref2.apply(this, arguments);
};
}();
var generateChildren = function generateChildren(data) {
return data.map(function (item) {
return {
title: item.name,
key: item.group_id,
icon: /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
src: folder_closed,
className: FolderTreemodules.folderIcon
}),
isLeaf: item.children.length === 0,
children: generateChildren(item.children)
};
});
};
var updateTreeData = function updateTreeData(list, key, changePart) {
return list.map(function (node) {
if (node.key === key) {
return objectSpread2_default()(objectSpread2_default()({}, node), changePart);
}
if (node.children) {
return objectSpread2_default()(objectSpread2_default()({}, node), {}, {
children: updateTreeData(node.children, key, changePart)
});
}
return node;
});
};
var changeNodeIcon = function changeNodeIcon(list, key, open) {
return list.map(function (node) {
if (node.key === key) {
return objectSpread2_default()(objectSpread2_default()({}, node), {}, {
icon: open ? /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
src: folder_opened,
className: FolderTreemodules.folderIcon
}) : /*#__PURE__*/(0,jsx_runtime.jsx)("img", {
src: folder_closed,
className: FolderTreemodules.folderIcon
})
});
}
if (node.children) {
return objectSpread2_default()(objectSpread2_default()({}, node), {}, {
children: changeNodeIcon(node.children, key, open)
});
}
});
};
var onExpand = function onExpand(expandedKeys, info) {
setTreeData(function (originData) {
return changeNodeIcon(originData, info.node.key, info.expanded);
});
};
var params = value ? {
selectedKeys: value,
defaultExpandedKeys: value
} : {};
return treeData.length > 0 && /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
id: scrollId || '',
children: /*#__PURE__*/(0,jsx_runtime.jsx)(tree/* default */.Z, objectSpread2_default()({
showLine: {
showLeafIcon: false
},
showIcon: true,
treeData: treeData,
className: FolderTreemodules.folderWrapper,
onSelect: onChange,
onExpand: onExpand
}, params))
});
};
/* harmony default export */ var FolderTree = (NewFolder);
// EXTERNAL MODULE: ./src/components/Knowledge/index.tsx + 1 modules
var Knowledge = __webpack_require__(86176);
// EXTERNAL MODULE: ./src/pages/Shixuns/Edit/body/Level/Challenges/components/UploadFile/index.tsx + 2 modules
var UploadFile = __webpack_require__(2462);
// EXTERNAL MODULE: ./src/components/QuestionEditor/MdEditorInForm.tsx
var MdEditorInForm = __webpack_require__(81331);
;// CONCATENATED MODULE: ./src/pages/Problems/OjForm/NewEdit/BaseInfo.tsx
var TextArea = input/* default */.Z.TextArea;
var Panel = collapse/* default */.Z.Panel;
function BaseInfo(_ref) {
var _location, _formValue$hack;
var form = _ref.form,
onAddTestCases = _ref.onAddTestCases,
handleAddKnowledgeFinish = _ref.handleAddKnowledgeFinish,
formValue = _ref.formValue,
knowledgeOptions = _ref.knowledgeOptions,
categorys = _ref.categorys,
hack = _ref.hack,
callback_url = _ref.callback_url,
onChangeAverage = _ref.onChangeAverage,
onChangeScore = _ref.onChangeScore,
onChangeFile = _ref.onChangeFile,
onAddTestCase = _ref.onAddTestCase,
onRemoveTestCase = _ref.onRemoveTestCase,
onChangeSubDiscipline = _ref.onChangeSubDiscipline,
onChangeLanguage = _ref.onChangeLanguage,
uploadData = _ref.uploadData,
setUploadData = _ref.setUploadData,
handleUploadRatio = _ref.handleUploadRatio,
isshows = _ref.isshows,
isProgram = _ref.isProgram,
addUploadFnc = _ref.addUploadFnc,
activeKey = _ref.activeKey,
setActiveKey = _ref.setActiveKey;
var _useState = (0,_react_17_0_2_react.useState)(false),
_useState2 = slicedToArray_default()(_useState, 2),
editAnalysis = _useState2[0],
setEditAnalysis = _useState2[1];
var is_random = ((_location = location) === null || _location === void 0 || (_location = _location.search) === null || _location === void 0 ? void 0 : _location.includes('select')) || false;
var _useState3 = (0,_react_17_0_2_react.useState)(isshows),
_useState4 = slicedToArray_default()(_useState3, 2),
isshow = _useState4[0],
setisshow = _useState4[1];
var test_set_average = hack.test_set_average,
test_set_score = hack.test_set_score;
var _useState5 = (0,_react_17_0_2_react.useState)(false),
_useState6 = slicedToArray_default()(_useState5, 2),
unfold = _useState6[0],
setUnfold = _useState6[1];
var _useState7 = (0,_react_17_0_2_react.useState)(false),
_useState8 = slicedToArray_default()(_useState7, 2),
showUploadFile = _useState8[0],
setShowUploadFile = _useState8[1];
var handleRemove = function handleRemove(item, key) {
var newList = toConsumableArray_default()(uploadData);
newList.splice(key, 1);
if (test_set_average) {
handleUploadRatio(newList);
} else {
setUploadData(newList);
}
};
var handleInputChange = function handleInputChange(e, key) {
var testData = uploadData.map(function (test, testIndex) {
if (testIndex === key) {
return objectSpread2_default()(objectSpread2_default()({}, test), {}, {
score: e.target.value ? Number(e.target.value) : 0
});
}
return test;
});
setUploadData(testData);
};
var addUploadData = function addUploadData(files) {
if (!(files !== null && files !== void 0 && files.length)) return;
//文件
if (files !== null && files !== void 0 && files[0].is_file) {
addUploadFnc(files, true)();
var newList = uploadData.concat(files);
if (hack.test_set_average) {
handleUploadRatio(newList);
} else {
setUploadData(newList);
}
}
//文本
if (!(files !== null && files !== void 0 && files[0].is_file)) {
addUploadFnc(files);
}
};
function onStopPropagation(e) {
e.stopPropagation();
}
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: NewEditmodules.baseInfoWrapper,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u8BD5\u9898\u540D\u79F0",
name: ['hack', 'name'],
rules: [{
required: true,
message: '请输入试题名称'
}],
className: "".concat(NewEditmodules.baseLineHeight),
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
className: NewEditmodules.baseFormItem,
maxLength: 60,
placeholder: "\u8BF7\u8F93\u5165\u8BD5\u9898\u540D\u79F0"
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u8BD5\u9898\u63CF\u8FF0",
name: ['hack', "description"],
valuePropName: "defaultValue",
rules: [{
required: true,
message: '请输入描述内容'
}],
className: "".concat(NewEditmodules.baseLineHeight),
children: /*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor/* default */.Z, {
miniToolbar: true,
id: "moop_cases_content",
noStorage: true,
height: 200
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u53C2\u8003\u7B54\u6848",
name: ['hack', "answer_text"],
valuePropName: "defaultValue",
className: "".concat(NewEditmodules.baseLineHeight),
children: /*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor/* default */.Z, {
miniToolbar: true,
noStorage: true,
height: 200
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
onClick: function onClick() {
return setEditAnalysis(true);
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u9898\u76EE\u89E3\u6790",
name: ["hack", 'analysis'],
className: "".concat(NewEditmodules.baseLineHeight),
children: /*#__PURE__*/(0,jsx_runtime.jsx)(MdEditorInForm/* RegularInput */.x, {
placeholder: "\u8BF7\u7F16\u8F91\u9898\u76EE\u89E3\u6790\uFF08\u975E\u5FC5\u586B\uFF09",
isEdit: editAnalysis
})
})
}), callback_url && /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z.Item, {
label: "\u5206\u503C",
className: "".concat(NewEditmodules.baseLineHeight),
required: true,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: ['hack', 'score'],
rules: [{
required: true,
message: '请输入分数'
}],
noStyle: true,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {
disabled: is_random,
min: 1,
max: 100,
className: NewEditmodules.baseFormItem,
style: {
width: 176
}
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "ml10 font14",
children: "\u5206"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u65B9\u5411&\u8BFE\u7A0B",
name: ['hack', 'sub_discipline_id'],
rules: [{
required: true,
message: '请选择课程'
}],
className: "".concat(NewEditmodules.baseLineHeight),
children: /*#__PURE__*/(0,jsx_runtime.jsx)(cascader/* default */.Z, {
className: NewEditmodules.baseFormItem,
disabled: is_random,
allowClear: false,
options: categorys,
placeholder: "\u8BF7\u9009\u62E9",
onChange: onChangeSubDiscipline,
popupClassName: NewEditmodules.cascaderPopup,
dropdownMenuColumnStyle: {
padding: '8px 12px',
fontSize: 14
}
})
}), isProgram ? /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u7F16\u7A0B\u8BED\u8A00",
style: {
paddingBottom: 16
},
name: ['hack', 'languages'],
rules: [{
required: true,
message: '请选择编程语言'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_checkbox/* default */.Z.Group, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, {
value: 'C',
children: "C"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, {
value: 'C++',
children: "C++"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, {
value: 'Java',
children: "Java"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, {
value: 'Python',
children: "Python"
})]
})
}) : /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u7F16\u7A0B\u8BED\u8A00",
name: ['hack_codes', 'language'],
rules: [{
required: true,
message: '请选择编程语言'
}],
className: NewEditmodules.baseLineHeight,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"], {
className: NewEditmodules.baseFormItem,
onChange: onChangeLanguage,
children: (0,util/* getSelectOptions */.jw)(util/* Keys */.R8.language)
})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z.Item, {
label: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
lineHeight: '22px'
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: "\u5355\u4E2A\u6D4B\u8BD5\u96C6"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: "\u6700\u5927\u8BC4\u6D4B\u65F6\u957F"
})]
}),
required: true,
className: NewEditmodules.baseLineHeight,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: ['hack', 'time_limit'],
rules: [{
required: true,
message: '请输入单个测试集评测时长限制'
}, {
type: 'number',
min: 3,
message: '最小限制时间是3秒'
}],
noStyle: true,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {
max: 10,
min: 3,
className: NewEditmodules.baseFormItem,
style: {
width: 316
}
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "ml10 font14",
children: "\u79D2"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u8BC4\u6D4B\u5F97\u5206\u89C4\u8303",
name: ['hack', 'test_set_score'],
rules: [{
required: true
}],
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default.Group */.ZP.Group, {
onChange: onChangeScore,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
value: true,
children: "\u901A\u8FC7\u5168\u90E8\u6D4B\u8BD5\u96C6\u624D\u80FD\u83B7\u5F97\u5956\u52B1"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
value: false,
children: "\u901A\u8FC7\u90E8\u5206\u6D4B\u8BD5\u96C6\u5373\u53EF\u83B7\u5F97\u5956\u52B1"
})]
})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
align: "middle",
className: "mb30",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
style: {
marginLeft: 200
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: ['hack', "hide_actual_output"],
valuePropName: "checked",
noStyle: true,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_switch/* default */.Z, {})
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
className: "ml10",
children: "\u9690\u85CF\u5B66\u5458\u8BC4\u6D4B\u5B9E\u9645\u8F93\u51FA\u7ED3\u679C\uFF0C\u4EC5\u5C55\u793A\u8BC4\u6D4B\u662F\u5426\u901A\u8FC7"
})]
}), !hack.test_set_score && /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: ['hack', 'test_set_average'],
label: "\u7CFB\u7EDF\u8BC4\u5206\u5360\u6BD4",
rules: [{
required: true
}],
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default.Group */.ZP.Group, {
onChange: onChangeAverage,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
value: true,
children: "\u5747\u5206\u6BD4\u4F8B"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
value: false,
children: "\u81EA\u5B9A\u4E49\u6BD4\u4F8B"
})]
})
}), !hack.test_set_score && /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
align: "middle",
className: "mb20",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
style: {
marginLeft: 200
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_switch/* default */.Z, {
onChange: function onChange(e) {
setisshow(e);
form.setFieldsValue({
hack: {
code_compile_score: 0
}
});
if (hack.test_set_average) {
if (hack.is_file) {
handleUploadRatio(uploadData);
} else {
onAddTestCases();
}
}
},
checked: isshow
})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(col/* default */.Z, {
className: "ml10",
children: ["\u542F\u7528\u7F16\u8BD1\u901A\u8FC7\u5373\u53EF\u5F97\u5206", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
style: {
color: '#E99237'
},
children: "\uFF08\u82E5\u6CA1\u6709\u7F16\u8BD1\u8FC7\u7A0B\uFF0C\u5C06\u65E0\u6CD5\u83B7\u5F97\u7F16\u8BD1\u5F97\u5206\uFF09"
})]
})]
}), isshow && !hack.test_set_score && /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
align: "middle",
className: "mb30",
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
style: {
marginLeft: 200
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
rules: [{
required: true,
message: '请输入编译得分'
}],
name: ['hack', 'code_compile_score'],
style: {
marginBottom: 0
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {
className: NewEditmodules.baseFormItem,
onChange: function onChange() {
if (hack.test_set_average) {
if (hack.is_file) {
handleUploadRatio(uploadData);
} else {
onAddTestCases();
}
}
},
parser: function parser(e) {
return isNaN(parseInt(e)) ? '' : parseInt(e);
},
min: 0,
max: 100
})
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
className: "ml10",
children: "%"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u8BC4\u6D4B\u65F6\u7A7A\u683C\u5904\u7406",
name: ['hack', 'submit_rule'],
rules: [{
required: true,
message: '请选择评测时空格处理'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default.Group */.ZP.Group, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
value: 1,
children: "\u5FFD\u7565\u9996\u5C3E\u7A7A\u683C"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
value: 0,
children: "\u4E0D\u5FFD\u7565\u7A7A\u683C"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
value: 2,
children: "\u5FFD\u7565\u6240\u6709\u7A7A\u683C"
})]
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
className: NewEditmodules.radioBtnWrapper,
name: ['hack', 'is_file'],
label: "\u7528\u4F8B\u7C7B\u578B",
rules: [{
required: true
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default.Group */.ZP.Group, {
onChange: onChangeFile,
optionType: "button",
className: NewEditmodules.testCaseTypeRadio,
options: [{
label: '文本',
value: false
}, {
label: '文件',
value: true
}]
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u6D4B\u8BD5\u7528\u4F8B",
required: true,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: NewEditmodules.uploadBtnWrapper,
children: [!hack.is_file && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: "primary",
onClick: onAddTestCase,
children: "\u6DFB\u52A0"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
className: "ml20",
type: "primary",
onClick: function onClick() {
return setShowUploadFile(true);
},
children: "\u6279\u91CF\u4E0A\u4F20"
})]
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: NewEditmodules.upBtn,
children: (hack === null || hack === void 0 ? void 0 : hack.is_file) && /*#__PURE__*/(0,jsx_runtime.jsx)(UploadFile/* UploadTable */.Y2, {
className: NewEditmodules.uploadTableWrapper,
disabled: hack === null || hack === void 0 ? void 0 : hack.test_set_average,
inputChange: handleInputChange,
showScore: !hack.test_set_score,
data: uploadData,
onRemove: handleRemove
})
}), !hack.is_file && /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.List, {
name: "hack_sets",
children: function children(fields, _ref2) {
objectDestructuringEmpty_default()(_ref2);
return /*#__PURE__*/(0,jsx_runtime.jsx)(collapse/* default */.Z, {
accordion: true,
bordered: false,
activeKey: activeKey,
onChange: setActiveKey,
className: NewEditmodules.collapseWrapper,
expandIcon: function expandIcon(_ref3) {
var isActive = _ref3.isActive;
return /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-weizhankai ".concat(isActive ? NewEditmodules.open : NewEditmodules.close),
style: {
fontSize: 14,
transition: 'all .2s'
}
});
},
children: fields.map(function (field, index) {
return /*#__PURE__*/(0,jsx_runtime.jsxs)(Panel, {
id: "scroll-key-".concat(field.key),
header: /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
align: "middle",
justify: "space-between",
wrap: false,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
className: NewEditmodules.panelHeader,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
children: ["\u6D4B\u8BD5\u7528\u4F8B", index + 1]
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
flex: 1,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
align: "middle",
justify: "end",
wrap: false,
children: [!test_set_score && /*#__PURE__*/(0,jsx_runtime.jsxs)(col/* default */.Z, {
className: NewEditmodules.rateInput,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "mr20",
children: "\u8BC4\u5206\u5360\u6BD4"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
onClick: onStopPropagation,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: [field.name, 'score'],
rules: [{
required: true,
message: "\u8BF7\u8F93\u5165\u6D4B\u8BD5\u96C6".concat(index + 1, "\u8BC4\u5206")
}],
noStyle: true,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {
className: NewEditmodules.baseFormItem,
min: 0,
max: 100,
disabled: test_set_average
})
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
className: "ml10",
children: "%"
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
flex: '78px',
className: NewEditmodules.operationWrapper,
children: index > 0 && /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(PlusCircleOutlined/* default */.Z, {
className: NewEditmodules.add,
onClick: function onClick(e) {
onStopPropagation(e);
onAddTestCase();
}
}), /*#__PURE__*/(0,jsx_runtime.jsx)(popconfirm/* default */.Z, {
okText: "\u786E\u5B9A",
cancelText: "\u53D6\u6D88",
title: '确定删除测试集' + (index + 1),
onCancel: onStopPropagation,
onConfirm: function onConfirm(e) {
onStopPropagation(e);
onRemoveTestCase(index);
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)(MinusCircleOutlined/* default */.Z, {
className: "".concat(NewEditmodules.remove, " ml20"),
onClick: onStopPropagation
})
})]
})
})]
})
})]
}),
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u8F93\u5165",
labelCol: {
span: 24
},
name: [field.name, 'input'],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {
rows: 4
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u8F93\u51FA",
labelCol: {
span: 24
},
name: [field.name, 'output'],
rules: [{
required: true,
message: '请输入输出内容'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {
rows: 4
})
})]
}, field.key);
})
});
}
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: NewEditmodules.unfold,
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
onClick: function onClick() {
return setUnfold(!unfold);
},
children: ["\u66F4\u591A\u8BBE\u7F6E", unfold ? /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-xialajiantou1"
}) : /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "iconfont icon-xialajiantoubeifen"
})]
})
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
style: {
display: unfold ? 'block' : 'none'
},
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u96BE\u5EA6",
name: ['hack', 'difficult'],
className: NewEditmodules.radioBtnWrapper,
rules: [{
required: true,
message: '请选择难度'
}],
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default.Group */.ZP.Group, {
optionType: "button",
className: NewEditmodules.difficultyRadio,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default.Button */.ZP.Button, {
value: 1,
className: NewEditmodules.easy,
children: "\u7B80\u5355"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default.Button */.ZP.Button, {
value: 2,
className: NewEditmodules.medium,
children: "\u9002\u4E2D"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default.Button */.ZP.Button, {
value: 3,
className: NewEditmodules.hard,
children: "\u56F0\u96BE"
})]
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
label: "\u77E5\u8BC6\u70B9",
name: ['hack', 'tag_discipline_ids'],
className: NewEditmodules.baseLineHeight,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(Knowledge/* Knowledge */.N, {
selectvalues: (hack === null || hack === void 0 ? void 0 : hack.tag_discipline_id) || (hack === null || hack === void 0 ? void 0 : hack.tag_discipline_ids),
disabled: is_random,
subId: formValue === null || formValue === void 0 || (_formValue$hack = formValue.hack) === null || _formValue$hack === void 0 || (_formValue$hack = _formValue$hack.sub_discipline_id) === null || _formValue$hack === void 0 ? void 0 : _formValue$hack[1],
knowledgeOptions: knowledgeOptions,
onAddKnowledgeFinish: handleAddKnowledgeFinish
})
}), !is_random && /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
className: NewEditmodules.folderLineHeight,
label: '放入文件夹',
name: ['hack', 'item_banks_group_ids'],
children: /*#__PURE__*/(0,jsx_runtime.jsx)(FolderTree, {
scrollId: "item_banks_group_ids"
})
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(UploadFile/* default */.ZP, {
rootIdentifier: null,
visible: showUploadFile,
onClose: function onClose() {
return setShowUploadFile(false);
},
onOK: addUploadData,
multiple: true,
defaultMultipleValue: hack === null || hack === void 0 ? void 0 : hack.is_file
})]
});
}
/* harmony default export */ var NewEdit_BaseInfo = (BaseInfo);
// EXTERNAL MODULE: ./node_modules/_lodash@4.17.21@lodash/lodash.js
var lodash = __webpack_require__(89392);
;// CONCATENATED MODULE: ./src/pages/Problems/OjForm/NewEdit/index.tsx
function getTimeStamp() {
return new Date().getTime();
}
var initialState = {
loading: true,
user: null,
disciplines: [],
dicts: null,
status: 0,
data: undefined,
lastedUpdateTime: 0
};
var Types = /*#__PURE__*/function (Types) {
Types[Types["SET_INITAL_DATA"] = 0] = "SET_INITAL_DATA";
Types[Types["SET_LOADING"] = 1] = "SET_LOADING";
Types[Types["SET_STATUS"] = 2] = "SET_STATUS";
return Types;
}({});
function reducer(state, action) {
switch (action.type) {
case Types.SET_INITAL_DATA:
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
case Types.SET_LOADING:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
loading: action.payload
});
case Types.SET_STATUS:
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
status: action.payload
});
default:
throw new Error();
}
}
//problems/new?difficult=3&sub_discipline_id=95&tag_discipline_id=105&newoj=1&pages=1
///problems/p2mblri6/edit
//* 从课堂试卷编辑入口进来 http://localhost:8000/problems/i4b5wuhn/edit?type=exercises&express_id=2510&callback_url=/classrooms/1309/exercise/2510/edit
/* harmony default export */ var NewEdit = (function () {
var _data$hack, _data$hack4;
var _useSearchParams = (0,_umi_production_exports.useSearchParams)(),
_useSearchParams2 = slicedToArray_default()(_useSearchParams, 1),
searchParams = _useSearchParams2[0];
var _useParams = (0,_umi_production_exports.useParams)(),
id = _useParams.id;
var _Form$useForm = es_form/* default */.Z.useForm(),
_Form$useForm2 = slicedToArray_default()(_Form$useForm, 1),
form = _Form$useForm2[0];
var _useState = (0,_react_17_0_2_react.useState)(),
_useState2 = slicedToArray_default()(_useState, 2),
formValue = _useState2[0],
setFormValue = _useState2[1];
var _useState3 = (0,_react_17_0_2_react.useState)([]),
_useState4 = slicedToArray_default()(_useState3, 2),
knowledgeOptions = _useState4[0],
setKnowledgeOptions = _useState4[1];
var _useState5 = (0,_react_17_0_2_react.useState)([]),
_useState6 = slicedToArray_default()(_useState5, 2),
uploadData = _useState6[0],
setUploadData = _useState6[1];
var _useReducer = (0,_react_17_0_2_react.useReducer)(reducer, initialState),
_useReducer2 = slicedToArray_default()(_useReducer, 2),
state = _useReducer2[0],
dispatch = _useReducer2[1];
var loading = state.loading,
data = state.data,
user = state.user,
disciplines = state.disciplines,
dicts = state.dicts,
status = state.status;
var hack_sets = data === null || data === void 0 ? void 0 : data.hack_sets;
var test_set_average = data === null || data === void 0 || (_data$hack = data.hack) === null || _data$hack === void 0 ? void 0 : _data$hack.test_set_average;
var _getJsonFromUrl = (0,utils_util/* getJsonFromUrl */.oP)(),
callback_url = _getJsonFromUrl.callback_url,
express_id = _getJsonFromUrl.express_id,
score = _getJsonFromUrl.score,
question_id = _getJsonFromUrl.question_id,
type = _getJsonFromUrl.type;
var _useState7 = (0,_react_17_0_2_react.useState)([]),
_useState8 = slicedToArray_default()(_useState7, 2),
MyGroup = _useState8[0],
setMyGroup = _useState8[1];
var _useState9 = (0,_react_17_0_2_react.useState)(false),
_useState10 = slicedToArray_default()(_useState9, 2),
isshows = _useState10[0],
setisshows = _useState10[1];
var isProgram = type === '1';
var categorys = (0,_react_17_0_2_react.useMemo)(function () {
var rs = [];
if (disciplines) {
(0,util/* getDisciplineOptions */.D0)(disciplines, rs);
}
return rs;
}, [disciplines]);
var initData = (0,_react_17_0_2_react.useCallback)( /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
var timeStamp,
discips,
response,
rs,
res,
category,
_user,
code,
language,
_hack_sets,
description,
difficult,
name,
open_or_not,
sub_discipline_id,
tag_discipline_id,
analysis,
_res$submit_rule,
submit_rule,
time_limit,
_test_set_average,
test_set_score,
_status,
tag_discipline_ids,
item_banks_group_id,
_res$is_file,
is_file,
hide_actual_output,
code_compile_score,
languages,
is_my,
codes,
answer_text,
_getDisciplineIds,
_getDisciplineIds2,
ids,
dictData,
new_hack_sets,
_getJsonFromUrl2,
lastedUpdateTime,
newCodes,
_tagIds$split,
_tagIds$split2,
_ids2,
_ids3,
_yield$getUser,
_user2,
_getJsonFromUrl3,
_difficult,
discipline_id,
_sub_discipline_id,
_tag_discipline_id,
tagIds,
banksIds,
_getDisciplineIds3,
_getDisciplineIds4,
_ids,
_dictData,
_args = arguments;
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
while (1) switch (_context.prev = _context.next) {
case 0:
timeStamp = _args.length > 0 && _args[0] !== undefined ? _args[0] : 0;
discips = disciplines;
if (!(discips.length === 0)) {
_context.next = 7;
break;
}
_context.next = 5;
return (0,service/* getDisciplines */.d1)('new_question');
case 5:
response = _context.sent;
discips = response.disciplines;
case 7:
if (!id) {
_context.next = 15;
break;
}
rs = {
disciplines: discips
};
_context.next = 11;
return (0,service/* getProgrammingTopic */.fu)(id);
case 11:
res = _context.sent;
if (res.message) {
if (res.status === '401') {
// history.push('/user/login')
document.location.href = '/user/login';
}
} else {
// console.log(res.hack_sets, 'response1')
category = res.category, _user = res.user, code = res.code, language = res.language, _hack_sets = res.hack_sets, description = res.description, difficult = res.difficult, name = res.name, open_or_not = res.open_or_not, sub_discipline_id = res.sub_discipline_id, tag_discipline_id = res.tag_discipline_id, analysis = res.analysis, _res$submit_rule = res.submit_rule, submit_rule = _res$submit_rule === void 0 ? 1 : _res$submit_rule, time_limit = res.time_limit, _test_set_average = res.test_set_average, test_set_score = res.test_set_score, _status = res.status, tag_discipline_ids = res.tag_discipline_ids, item_banks_group_id = res.item_banks_group_id, _res$is_file = res.is_file, is_file = _res$is_file === void 0 ? false : _res$is_file, hide_actual_output = res.hide_actual_output, code_compile_score = res.code_compile_score, languages = res.languages, is_my = res.is_my, codes = res.codes, answer_text = res.answer_text; //
_getDisciplineIds = (0,util/* getDisciplineIds */.y3)(discips, sub_discipline_id), _getDisciplineIds2 = slicedToArray_default()(_getDisciplineIds, 2), ids = _getDisciplineIds2[0], dictData = _getDisciplineIds2[1]; // console.log('----',hack_sets);
new_hack_sets = is_file ? [{
input: '',
output: '',
score: 100,
position: 1
}] : _hack_sets;
if (is_file) {
setUploadData(_hack_sets);
form.setFieldsValue({
'hack_sets': new_hack_sets
});
} else {
setUploadData([]);
}
_getJsonFromUrl2 = (0,utils_util/* getJsonFromUrl */.oP)(), lastedUpdateTime = _getJsonFromUrl2.lastedUpdateTime;
newCodes = codes === null || codes === void 0 ? void 0 : codes.map(function (e) {
return objectSpread2_default()(objectSpread2_default()({}, e), {}, {
code: base64.Base64.decode(e === null || e === void 0 ? void 0 : e.code)
});
});
rs = objectSpread2_default()(objectSpread2_default()({}, rs), {}, {
loading: false,
user: _user,
dicts: dictData,
status: _status,
lastedUpdateTime: timeStamp ? timeStamp : lastedUpdateTime ? lastedUpdateTime : 0,
data: {
hack_codes: {
language: language,
code: base64.Base64.decode(code)
},
hack: {
category: category,
difficult: difficult,
name: name,
description: description,
open_or_not: open_or_not,
time_limit: time_limit,
test_set_average: _test_set_average,
test_set_score: test_set_score,
sub_discipline_id: ids,
tag_discipline_ids: tag_discipline_ids,
languages: languages,
score: score || 1,
item_banks_group_ids: item_banks_group_id,
is_file: is_file,
is_my: is_my,
code_compile_score: code_compile_score,
hide_actual_output: hide_actual_output,
analysis: analysis,
answer_text: answer_text,
submit_rule: submit_rule
},
hack_sets: new_hack_sets,
tags: tag_discipline_ids,
codes: newCodes
}
});
if (parseInt(code_compile_score) > 0) {
setisshows(true);
}
dispatch({
type: Types.SET_INITAL_DATA,
payload: rs
});
setFormValue({
hack: {
category: category,
difficult: difficult,
name: name,
description: description,
open_or_not: open_or_not,
time_limit: time_limit,
test_set_average: _test_set_average,
test_set_score: test_set_score,
sub_discipline_id: ids,
tag_discipline_ids: tag_discipline_ids,
score: score || 1,
item_banks_group_ids: item_banks_group_id,
is_file: is_file,
analysis: analysis,
answer_text: answer_text,
submit_rule: submit_rule
},
codes: newCodes
});
handleSetKnowledge(ids === null || ids === void 0 ? void 0 : ids[0], ids === null || ids === void 0 ? void 0 : ids[1], discips);
}
_context.next = 27;
break;
case 15:
_context.next = 17;
return (0,service/* getUser */.PR)();
case 17:
_yield$getUser = _context.sent;
_user2 = _yield$getUser.user;
_getJsonFromUrl3 = (0,utils_util/* getJsonFromUrl */.oP)(), _difficult = _getJsonFromUrl3.difficult, discipline_id = _getJsonFromUrl3.discipline_id, _sub_discipline_id = _getJsonFromUrl3.sub_discipline_id, _tag_discipline_id = _getJsonFromUrl3.tag_discipline_id, tagIds = _getJsonFromUrl3.tagIds, banksIds = _getJsonFromUrl3.banksIds;
_difficult = Number(_difficult || 2);
banksIds = [Number(banksIds || 0)];
_getDisciplineIds3 = (0,util/* getDisciplineIds */.y3)(discips, parseInt(_sub_discipline_id, 10)), _getDisciplineIds4 = slicedToArray_default()(_getDisciplineIds3, 2), _ids = _getDisciplineIds4[0], _dictData = _getDisciplineIds4[1];
_ids = discipline_id ? [Number(discipline_id || 0), Number(_sub_discipline_id || 0)].filter(function (e) {
return !!e;
}) : [];
dispatch({
type: Types.SET_INITAL_DATA,
payload: {
loading: false,
user: _user2,
disciplines: discips,
status: 0,
dicts: _dictData,
data: {
hack_codes: {
language: 'C',
code: ''
},
hack: {
category: null,
difficult: _difficult,
time_limit: 3,
description: '',
test_set_score: true,
test_set_average: true,
open_or_not: true,
sub_discipline_id: _ids,
tag_discipline_id: tagIds && (tagIds === null || tagIds === void 0 || (_tagIds$split = tagIds.split(',')) === null || _tagIds$split === void 0 ? void 0 : _tagIds$split.map(function (x) {
return Number(x);
})),
name: '',
item_banks_group_ids: banksIds,
is_file: false,
answer_text: '',
submit_rule: 1
},
tags: _tag_discipline_id ? _tag_discipline_id === null || _tag_discipline_id === void 0 ? void 0 : _tag_discipline_id.split(',').map(function (t) {
return parseInt(t, 10);
}) : [],
hack_sets: [{
input: '',
output: '',
score: 100,
position: 1
}]
}
}
});
setFormValue({
hack: {
category: null,
difficult: _difficult,
time_limit: 3,
description: '',
test_set_average: true,
open_or_not: true,
sub_discipline_id: _ids,
tag_discipline_id: tagIds && (tagIds === null || tagIds === void 0 || (_tagIds$split2 = tagIds.split(',')) === null || _tagIds$split2 === void 0 ? void 0 : _tagIds$split2.map(function (x) {
return Number(x);
})),
name: '',
item_banks_group_id: banksIds,
is_file: false,
answer_text: '',
submit_rule: 1
}
});
handleSetKnowledge((_ids2 = _ids) === null || _ids2 === void 0 ? void 0 : _ids2[0], (_ids3 = _ids) === null || _ids3 === void 0 ? void 0 : _ids3[1], discips);
case 27:
case "end":
return _context.stop();
}
}, _callee);
})), [id, disciplines]);
(0,_react_17_0_2_react.useEffect)(function () {
try {
initData();
} catch (error) {
console.log(error, '----');
// history.replace('/user/login', { from: location.pathname })
}
}, []);
(0,_react_17_0_2_react.useEffect)(function () {
//获取我的分组信息
function init() {
return _init.apply(this, arguments);
}
function _init() {
_init = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
var data;
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
while (1) switch (_context2.prev = _context2.next) {
case 0:
_context2.next = 2;
return (0,fetch/* get */.U2)('item_banks_groups/mine.json');
case 2:
data = _context2.sent;
setMyGroup(data);
case 4:
case "end":
return _context2.stop();
}
}, _callee2);
}));
return _init.apply(this, arguments);
}
init();
}, []);
var handleSetKnowledge = function handleSetKnowledge(id, subId, discips) {
var _discips$find;
var options = discips === null || discips === void 0 || (_discips$find = discips.find(function (item) {
return item.id === id;
})) === null || _discips$find === void 0 || (_discips$find = _discips$find.sub_disciplines) === null || _discips$find === void 0 || (_discips$find = _discips$find.find(function (subItem) {
return subItem.id === subId;
})) === null || _discips$find === void 0 ? void 0 : _discips$find.tag_disciplines;
// setKnowledgeOptions(options || []);
};
function onSubmit(_x, _x2, _x3) {
return _onSubmit.apply(this, arguments);
}
function _onSubmit() {
_onSubmit = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6(values, saveType, is_cover) {
var _hack$tag_discipline_;
var _values, hack_sets, hack_codes, hack, tags, codes, obj, _hack$tag_discipline_2, _hack$tag_discipline_3, update_hack_sets, new_hack_sets, sumScore, new_list, _iterator, _step, item, newCodes, res, _yield$updateExercise, _status2, _yield$addProgramming, identifier, exam_identifier, _res, _yield$addExerciseQue, _status3;
return regeneratorRuntime_default()().wrap(function _callee6$(_context6) {
while (1) switch (_context6.prev = _context6.next) {
case 0:
_values = objectSpread2_default()({}, values), hack_sets = _values.hack_sets, hack_codes = _values.hack_codes, hack = _values.hack, tags = _values.tags, codes = _values.codes; // 知识点多选功能
obj = [];
if ((hack === null || hack === void 0 || (_hack$tag_discipline_ = hack.tag_discipline_ids) === null || _hack$tag_discipline_ === void 0 ? void 0 : _hack$tag_discipline_.length) > 0) {
if (hack !== null && hack !== void 0 && (_hack$tag_discipline_2 = hack.tag_discipline_ids) !== null && _hack$tag_discipline_2 !== void 0 && (_hack$tag_discipline_2 = _hack$tag_discipline_2[0]) !== null && _hack$tag_discipline_2 !== void 0 && _hack$tag_discipline_2.value) {
hack === null || hack === void 0 || (_hack$tag_discipline_3 = hack.tag_discipline_ids) === null || _hack$tag_discipline_3 === void 0 || _hack$tag_discipline_3.map(function (v) {
obj.push(v === null || v === void 0 ? void 0 : v.value);
});
} else {
obj = hack === null || hack === void 0 ? void 0 : hack.tag_discipline_ids;
}
}
hack.tag_discipline_ids = obj;
update_hack_sets = [];
new_hack_sets = [];
sumScore = 0;
new_list = hack !== null && hack !== void 0 && hack.is_file ? uploadData.map(function (e, i) {
return objectSpread2_default()(objectSpread2_default()({}, e), {}, {
position: i + 1
});
}) : hack_sets.map(function (e) {
return objectSpread2_default()(objectSpread2_default()({}, e), {}, {
is_file: false
});
});
_iterator = createForOfIteratorHelper_default()(new_list);
try {
for (_iterator.s(); !(_step = _iterator.n()).done;) {
item = _step.value;
sumScore += item.score;
if (item.id && item.id >= 0) {
update_hack_sets.push(item);
} else {
new_hack_sets.push(item);
}
}
} catch (err) {
_iterator.e(err);
} finally {
_iterator.f();
}
if (new_list !== null && new_list !== void 0 && new_list.length) {
_context6.next = 13;
break;
}
message/* default */.ZP.error('测试集不能为空');
return _context6.abrupt("return");
case 13:
sumScore += parseInt(hack.code_compile_score || 0);
if (!(sumScore !== 100 && !hack.test_set_score)) {
_context6.next = 17;
break;
}
message/* default */.ZP.error('测试集的评分占比之和必须等于100');
return _context6.abrupt("return");
case 17:
if (!(new_list !== null && new_list !== void 0 && new_list.some(function (e) {
return !e.output;
}))) {
_context6.next = 20;
break;
}
message/* default */.ZP.error('测试集输出不能为空');
return _context6.abrupt("return");
case 20:
newCodes = {};
if (isProgram) {
codes === null || codes === void 0 || codes.forEach(function (e) {
newCodes[e.language] = e !== null && e !== void 0 && e.code ? base64.Base64.encode(e === null || e === void 0 ? void 0 : e.code) : '';
});
} else {
hack_codes.code = base64.Base64.encode(hack_codes === null || hack_codes === void 0 ? void 0 : hack_codes.code);
}
hack.sub_discipline_id = hack.sub_discipline_id[1];
dispatch({
type: Types.SET_LOADING,
payload: true
});
if (!callback_url) {
hack.score = hack.difficult * 100;
}
//编辑
if (!id) {
_context6.next = 53;
break;
}
_context6.next = 28;
return (0,service/* updateProgrammingTopic */.l_)(id, {
hack: hack,
hack_codes: hack_codes,
hack_sets: new_hack_sets,
update_hack_sets: update_hack_sets,
tags: tags,
is_cover: is_cover,
languages: hack.languages,
codes: newCodes
});
case 28:
if (!callback_url) {
_context6.next = 47;
break;
}
_context6.next = 31;
return (0,service/* publishProgrammingTopic */.j2)(id);
case 31:
if (!callback_url.includes('paperlibrary')) {
_context6.next = 37;
break;
}
_context6.next = 34;
return (0,paperlibrary/* createOrModifyQuestion */.oF)({
id: express_id,
question_id: question_id,
item_type: utils_enum/* QuestionType */.c.Program,
name: hack.name,
question_score: hack.score,
difficulty: hack.difficult,
sub_discipline_id: hack.sub_discipline_id,
tag_discipline_ids: hack.tag_discipline_ids,
item_banks_group_ids: hack.item_banks_group_ids,
analysis: hack.analysis
// identifier: id
});
case 34:
res = _context6.sent;
if (res.status === 0) {
_umi_production_exports.history.replace(searchParams.get('callback_url'));
}
return _context6.abrupt("return");
case 37:
_context6.next = 39;
return (0,service/* updateExerciseQuestion */.GM)(question_id, {
question_type: 6,
question_score: hack.score,
question_title: hack.name,
description: hack.description,
sub_discipline_id: hack.sub_discipline_id,
tag_discipline_ids: hack.tag_discipline_ids,
item_banks_group_ids: hack.item_banks_group_ids,
identifier: id,
analysis: hack.analysis
});
case 39:
_yield$updateExercise = _context6.sent;
_status2 = _yield$updateExercise.status;
if (!(_status2 === 0)) {
_context6.next = 45;
break;
}
if (!(saveType === 'start')) {
_context6.next = 44;
break;
}
return _context6.abrupt("return");
case 44:
_umi_production_exports.history.replace(searchParams.get('callback_url'));
case 45:
_context6.next = 50;
break;
case 47:
// window.location.reload()
message/* default */.ZP.success('保存成功');
_umi_production_exports.history.replace('/problemset');
initData(getTimeStamp());
case 50:
dispatch({
type: Types.SET_LOADING,
payload: false
});
_context6.next = 83;
break;
case 53:
_context6.next = 55;
return (0,service/* addProgrammingTopic */.zQ)({
hack: hack,
hack_codes: hack_codes,
hack_sets: new_list,
tags: tags,
examination_bank_id: express_id || null
});
case 55:
_yield$addProgramming = _context6.sent;
identifier = _yield$addProgramming.identifier;
exam_identifier = _yield$addProgramming.exam_identifier;
dispatch({
type: Types.SET_LOADING,
payload: false
});
if (!(saveType === 'start')) {
_context6.next = 61;
break;
}
return _context6.abrupt("return");
case 61:
if (!identifier) {
_context6.next = 83;
break;
}
if (callback_url) {
_context6.next = 66;
break;
}
modal/* default */.Z.confirm({
icon: null,
title: '提示',
width: 452,
centered: true,
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
children: "\u7F16\u7A0B\u9898\u5DF2\u4FDD\u5B58!\u76EE\u524D\u5916\u4E8E\u672A\u53D1\u5E03\u72B6\u6001\uFF0C\u53D1\u5E03\u540E\u5373\u53EF\u5E94\u7528\u5230\u81EA\u5DF1\u7BA1\u7406\u7684\u8BFE\u5802\uFF0C\u662F\u5426\u7ACB\u5373\u53D1\u5E03?"
}),
cancelText: '稍后再说',
okText: '立即发布',
onCancel: function onCancel() {
_umi_production_exports.history.replace('/problemset');
},
onOk: function () {
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5() {
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
while (1) switch (_context5.prev = _context5.next) {
case 0:
_context5.next = 2;
return onPublish(identifier);
case 2:
_umi_production_exports.history.replace('/problemset');
case 3:
case "end":
return _context5.stop();
}
}, _callee5);
}));
function onOk() {
return _onOk.apply(this, arguments);
}
return onOk;
}()
});
// history.replace(`/problems/${identifier}/edit?lastedUpdateTime=${getTimeStamp()}`)
_context6.next = 83;
break;
case 66:
_context6.next = 68;
return (0,service/* publishProgrammingTopic */.j2)(identifier);
case 68:
if (id) {
_context6.next = 82;
break;
}
if (!callback_url.includes('paperlibrary')) {
_context6.next = 75;
break;
}
_context6.next = 72;
return (0,paperlibrary/* createOrModifyQuestion */.oF)({
id: express_id,
item_type: utils_enum/* QuestionType */.c.Program,
name: hack.name,
question_score: hack.score,
difficulty: hack.difficult,
sub_discipline_id: hack.sub_discipline_id,
tag_discipline_ids: hack.tag_discipline_ids,
identifier: exam_identifier,
analysis: hack.analysis
});
case 72:
_res = _context6.sent;
if (_res.status === 0) {
_umi_production_exports.history.replace(searchParams.get('callback_url'));
}
return _context6.abrupt("return");
case 75:
_context6.next = 77;
return (0,service/* addExerciseQuestion */.MK)(parseInt(express_id, 10), {
question_type: 6,
question_score: hack.score,
question_title: hack.name,
identifier: identifier,
tag_discipline_ids: hack.tag_discipline_ids,
analysis: hack.analysis
});
case 77:
_yield$addExerciseQue = _context6.sent;
_status3 = _yield$addExerciseQue.status;
if (_status3 === 0) {
_umi_production_exports.history.replace(searchParams.get('callback_url'));
}
_context6.next = 83;
break;
case 82:
_umi_production_exports.history.replace(searchParams.get('callback_url'));
case 83:
case "end":
return _context6.stop();
}
}, _callee6);
}));
return _onSubmit.apply(this, arguments);
}
function onPublish(_x4) {
return _onPublish.apply(this, arguments);
}
function _onPublish() {
_onPublish = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee7(identifier) {
var response;
return regeneratorRuntime_default()().wrap(function _callee7$(_context7) {
while (1) switch (_context7.prev = _context7.next) {
case 0:
_context7.next = 2;
return (0,service/* publishProgrammingTopic */.j2)(identifier);
case 2:
response = _context7.sent;
if (response.status === 0) {
message/* default */.ZP.success('发布成功');
dispatch({
type: Types.SET_STATUS,
payload: 1
});
} else {
message/* default */.ZP.info(response.message);
}
case 4:
case "end":
return _context7.stop();
}
}, _callee7);
}));
return _onPublish.apply(this, arguments);
}
function onCancelPublish() {
return _onCancelPublish.apply(this, arguments);
}
function _onCancelPublish() {
_onCancelPublish = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee8() {
var response;
return regeneratorRuntime_default()().wrap(function _callee8$(_context8) {
while (1) switch (_context8.prev = _context8.next) {
case 0:
_context8.next = 2;
return (0,service/* cancelPublishProgrammingTopic */.ZS)(id);
case 2:
response = _context8.sent;
if (response.status === 0) {
message/* default */.ZP.success('撤销发布成功');
dispatch({
type: Types.SET_STATUS,
payload: 0
});
} else {
message/* default */.ZP.info(response.message);
}
case 4:
case "end":
return _context8.stop();
}
}, _callee8);
}));
return _onCancelPublish.apply(this, arguments);
}
function onChallenge() {
return _onChallenge.apply(this, arguments);
}
function _onChallenge() {
_onChallenge = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee10() {
var formValues;
return regeneratorRuntime_default()().wrap(function _callee10$(_context10) {
while (1) switch (_context10.prev = _context10.next) {
case 0:
formValues = form.getFieldsValue();
onSubmit(formValues, 'start');
setTimeout( /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee9() {
var _yield$startChallenge, identifier;
return regeneratorRuntime_default()().wrap(function _callee9$(_context9) {
while (1) switch (_context9.prev = _context9.next) {
case 0:
_context9.next = 2;
return (0,service/* startChallenge */.uE)(id);
case 2:
_yield$startChallenge = _context9.sent;
identifier = _yield$startChallenge.identifier;
if (isProgram) {
window.location.href = "/myproblems/".concat(identifier, "?type=1");
} else {
window.location.href = "/myproblems/".concat(identifier);
}
case 5:
case "end":
return _context9.stop();
}
}, _callee9);
})), 400);
case 3:
case "end":
return _context10.stop();
}
}, _callee10);
}));
return _onChallenge.apply(this, arguments);
}
function onBack() {
if (callback_url) {
console.log('---', searchParams.get('callback_url'));
_umi_production_exports.history.replace(searchParams.get('callback_url'));
} else {
if (isProgram) {
var _localStorage$getItem;
var item = (_localStorage$getItem = localStorage.getItem('program_homework')) === null || _localStorage$getItem === void 0 ? void 0 : _localStorage$getItem.split(',');
_umi_production_exports.history.push("/classrooms/".concat(item === null || item === void 0 ? void 0 : item[0], "/program_homework/").concat(item === null || item === void 0 ? void 0 : item[1], "/detail"));
} else {
_umi_production_exports.history.replace("/problemset");
}
}
}
var handleUploadRatio = function handleUploadRatio(testSetData) {
var code_compile_score = parseInt(form.getFieldValue('hack').code_compile_score) || 0;
var score = Math.floor((100 - code_compile_score) / testSetData.length);
var lastScore = score + (100 - code_compile_score) % testSetData.length;
var newTestSetData = testSetData.map(function (item, index) {
if (index === testSetData.length - 1) {
return objectSpread2_default()(objectSpread2_default()({}, item), {}, {
score: lastScore
});
}
return objectSpread2_default()(objectSpread2_default()({}, item), {}, {
score: score
});
});
setUploadData(newTestSetData);
};
function onChangeScore(e) {
if (!e.target.value) {
handleUploadRatio(uploadData);
}
dispatch({
type: Types.SET_INITAL_DATA,
payload: {
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, {
test_set_score: e.target.value
})
})
}
});
}
function onChangeFile(e) {
dispatch({
type: Types.SET_INITAL_DATA,
payload: {
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, {
is_file: e.target.value
})
})
}
});
}
function onChangeAverage(e) {
var value = e.target.value;
if (value) {
handleUploadRatio(uploadData);
}
var currentHackSets = form.getFieldValue('hack_sets');
dispatch({
type: Types.SET_INITAL_DATA,
payload: {
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack_sets: currentHackSets,
hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, {
test_set_average: value
})
})
}
});
}
function onAddTestCase() {
var rs = form.getFieldValue('hack_sets');
var by = parseInt(form.getFieldValue('hack').code_compile_score) || 0;
var len = rs.length + 1;
var averageMark = Math.floor((100 - by) / len);
var remainder = (100 - by) % len;
rs.map(function (item, index) {
if (test_set_average) {
item.score = averageMark;
}
item.position = index + 1;
return item;
});
rs.push({
input: '',
output: '',
position: len,
score: test_set_average ? averageMark + remainder : 0
});
form.setFieldsValue({
'hack_sets': rs
});
dispatch({
type: Types.SET_INITAL_DATA,
payload: {
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack_sets: rs
})
}
});
setActiveKey(rs.length - 1);
setScrollFlag(true);
}
function onAddTestCases() {
var rs = form.getFieldValue('hack_sets');
var by = parseInt(form.getFieldValue('hack').code_compile_score) || 0;
var len = rs.length;
var averageMark = Math.floor((100 - by) / len);
var remainder = (100 - by) % len;
rs.map(function (item, index) {
if (test_set_average) {
item.score = averageMark;
if (index === rs.length - 1) {
item.score = averageMark + remainder;
}
}
item.position = index + 1;
return item;
});
form.setFieldsValue({
'hack_sets': rs
});
dispatch({
type: Types.SET_INITAL_DATA,
payload: {
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack_sets: rs
})
}
});
}
(0,_react_17_0_2_react.useEffect)(function () {
if (test_set_average) {
var by = parseInt(form.getFieldValue('hack').code_compile_score) || 0;
var len = hack_sets === null || hack_sets === void 0 ? void 0 : hack_sets.length;
var averageMark = Math.floor((100 - by) / len);
var remainder = (100 - by) % len;
hack_sets === null || hack_sets === void 0 || hack_sets.map(function (item, index) {
item.score = averageMark;
item.position = index + 1;
if (index === len - 1) {
item.score = averageMark + remainder;
}
return item;
});
dispatch({
type: Types.SET_INITAL_DATA,
payload: {
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack_sets: hack_sets
})
}
});
form.setFieldsValue({
'hack_sets': hack_sets
});
}
}, [test_set_average]);
function onRemoveTestCase(index) {
var sets = form.getFieldValue('hack_sets');
var by = parseInt(form.getFieldValue('hack').code_compile_score) || 0;
var len = (sets === null || sets === void 0 ? void 0 : sets.length) - 1;
var averageMark = Math.floor((100 - by) / len);
var remainder = (100 - by) % len;
sets.splice(index, 1);
sets === null || sets === void 0 || sets.map(function (item, index) {
if (test_set_average) {
item.score = averageMark;
if (index === len - 1) {
item.score = averageMark + remainder;
}
}
item.position = index + 1;
return item;
});
dispatch({
type: Types.SET_INITAL_DATA,
payload: {
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack_sets: sets
})
}
});
form.setFieldsValue({
'hack_sets': sets
});
}
function onChangeLanguage(language) {
dispatch({
type: Types.SET_INITAL_DATA,
payload: {
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack_codes: objectSpread2_default()(objectSpread2_default()({}, data.hack_codes), {}, {
language: language
})
})
}
});
}
var handleValuesChange = function handleValuesChange(changedValues) {
var _changedValues$hack;
if (changedValues !== null && changedValues !== void 0 && (_changedValues$hack = changedValues.hack) !== null && _changedValues$hack !== void 0 && _changedValues$hack.sub_discipline_id) {
var _changedValues$hack2, _disciplines$find, _form$getFieldsValue;
var _changedValues$hack$s = changedValues === null || changedValues === void 0 || (_changedValues$hack2 = changedValues.hack) === null || _changedValues$hack2 === void 0 ? void 0 : _changedValues$hack2.sub_discipline_id,
_changedValues$hack$s2 = slicedToArray_default()(_changedValues$hack$s, 2),
_id = _changedValues$hack$s2[0],
subId = _changedValues$hack$s2[1];
var options = disciplines === null || disciplines === void 0 || (_disciplines$find = disciplines.find(function (item) {
return item.id === _id;
})) === null || _disciplines$find === void 0 || (_disciplines$find = _disciplines$find.sub_disciplines) === null || _disciplines$find === void 0 || (_disciplines$find = _disciplines$find.find(function (subItem) {
return subItem.id === subId;
})) === null || _disciplines$find === void 0 ? void 0 : _disciplines$find.tag_disciplines;
// setKnowledgeOptions(options);
var fieldData = objectSpread2_default()(objectSpread2_default()({}, form.getFieldsValue()), {}, {
hack: objectSpread2_default()(objectSpread2_default()({}, (_form$getFieldsValue = form.getFieldsValue()) === null || _form$getFieldsValue === void 0 ? void 0 : _form$getFieldsValue.hack), {}, {
tag_discipline_ids: []
})
});
form.setFieldsValue(fieldData);
setFormValue(fieldData);
} else {
setFormValue(objectSpread2_default()({}, form.getFieldsValue()));
}
};
var handleAddKnowledgeFinish = function handleAddKnowledgeFinish(item) {
setKnowledgeOptions([].concat(toConsumableArray_default()(knowledgeOptions), [objectSpread2_default()({}, item)]));
};
(0,_react_17_0_2_react.useEffect)(function () {
var _data$hack2;
if (data !== null && data !== void 0 && (_data$hack2 = data.hack) !== null && _data$hack2 !== void 0 && (_data$hack2 = _data$hack2.sub_discipline_id) !== null && _data$hack2 !== void 0 && _data$hack2[1]) {
var _data$hack3;
getTagData(data === null || data === void 0 || (_data$hack3 = data.hack) === null || _data$hack3 === void 0 || (_data$hack3 = _data$hack3.sub_discipline_id) === null || _data$hack3 === void 0 ? void 0 : _data$hack3[1]);
}
}, [data === null || data === void 0 || (_data$hack4 = data.hack) === null || _data$hack4 === void 0 ? void 0 : _data$hack4.sub_discipline_id]);
//进来的时候 取一次值
var getTagData = /*#__PURE__*/function () {
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3(id) {
var res;
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
while (1) switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return (0,exercise/* getTagDiscipline */.YY)({
sub_discipline_id: id
});
case 2:
res = _context3.sent;
setKnowledgeOptions(res.tag_disciplines);
case 4:
case "end":
return _context3.stop();
}
}, _callee3);
}));
return function getTagData(_x5) {
return _ref2.apply(this, arguments);
};
}();
//调用接口 获取knowledgeOptions
function onChangeSubDiscipline(values) {
// getTagData(values?.[1])
var subId = values[1];
var _getDisciplineIds5 = (0,util/* getDisciplineIds */.y3)(disciplines, subId),
_getDisciplineIds6 = slicedToArray_default()(_getDisciplineIds5, 2),
dictData = _getDisciplineIds6[1];
form.setFieldsValue({
tags: []
});
dispatch({
type: Types.SET_INITAL_DATA,
payload: {
dicts: dictData,
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, {
sub_discipline_id: values
}),
tags: []
})
}
});
}
var addUploadFnc = function addUploadFnc(files) {
var _form$getFieldValue;
var isFuc = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (isFuc) {
return function () {
dispatch({
type: Types.SET_INITAL_DATA,
payload: {
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, {
is_file: true
})
})
}
});
form.setFieldsValue({
hack: {
is_file: true
}
});
};
}
var newFiles = files === null || files === void 0 ? void 0 : files.map(function (e) {
return {
input: e.input,
output: e.output,
score: 0,
position: 1
};
});
var sets = (_form$getFieldValue = form.getFieldValue('hack_sets')) === null || _form$getFieldValue === void 0 || (_form$getFieldValue = _form$getFieldValue.filter(function (e) {
return e.input || e.output;
})) === null || _form$getFieldValue === void 0 ? void 0 : _form$getFieldValue.concat(newFiles);
var by = parseInt(form.getFieldValue('hack').code_compile_score) || 0;
var len = sets === null || sets === void 0 ? void 0 : sets.length;
var averageMark = Math.floor((100 - by) / len);
var remainder = (100 - by) % len;
sets === null || sets === void 0 || sets.map(function (item, index) {
if (test_set_average) {
item.score = averageMark;
if (index === len - 1) {
item.score = averageMark + remainder;
}
}
item.position = index + 1;
return item;
});
dispatch({
type: Types.SET_INITAL_DATA,
payload: {
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
hack_sets: sets,
hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, {
is_file: false
})
})
}
});
form.setFieldsValue({
'hack_sets': sets,
hack: {
is_file: false
}
});
};
var handleFinish = /*#__PURE__*/function () {
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
var formValues, _errorInfo$errorField, _errorInfo$errorField2, firstErrorMessage;
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
while (1) switch (_context4.prev = _context4.next) {
case 0:
_context4.prev = 0;
_context4.next = 3;
return form.validateFields();
case 3:
formValues = form.getFieldsValue();
if (!(searchParams.get("exercise") && !callback_url.includes('paperlibrary'))) {
_context4.next = 7;
break;
}
modal/* default */.Z.confirm({
title: '保存提示',
content: '此题目已存在试题库中,是否将修改后的试题覆盖试题库的原题?',
okText: '覆盖原题',
cancelText: '不覆盖',
onOk: function onOk() {
return onSubmit(formValues, '', 1);
},
onCancel: function onCancel() {
return onSubmit(formValues, '', 0);
}
});
return _context4.abrupt("return");
case 7:
onSubmit(formValues, '', 1);
_context4.next = 15;
break;
case 10:
_context4.prev = 10;
_context4.t0 = _context4["catch"](0);
form.scrollToField(_context4.t0 === null || _context4.t0 === void 0 || (_errorInfo$errorField = _context4.t0.errorFields) === null || _errorInfo$errorField === void 0 || (_errorInfo$errorField = _errorInfo$errorField[0]) === null || _errorInfo$errorField === void 0 ? void 0 : _errorInfo$errorField.name, {
behavior: 'smooth',
block: 'start'
});
firstErrorMessage = _context4.t0 === null || _context4.t0 === void 0 || (_errorInfo$errorField2 = _context4.t0.errorFields) === null || _errorInfo$errorField2 === void 0 || (_errorInfo$errorField2 = _errorInfo$errorField2[0]) === null || _errorInfo$errorField2 === void 0 || (_errorInfo$errorField2 = _errorInfo$errorField2.errors) === null || _errorInfo$errorField2 === void 0 ? void 0 : _errorInfo$errorField2[0];
message/* default */.ZP.error(firstErrorMessage);
case 15:
case "end":
return _context4.stop();
}
}, _callee4, null, [[0, 10]]);
}));
return function handleFinish() {
return _ref3.apply(this, arguments);
};
}();
var _useState11 = (0,_react_17_0_2_react.useState)(),
_useState12 = slicedToArray_default()(_useState11, 2),
activeKey = _useState12[0],
setActiveKey = _useState12[1];
var _useState13 = (0,_react_17_0_2_react.useState)(false),
_useState14 = slicedToArray_default()(_useState13, 2),
scrollFlag = _useState14[0],
setScrollFlag = _useState14[1]; //标识activeKey的变动是不是由于添加测试用例如果是则需要滚动到相应位置
(0,_react_17_0_2_react.useEffect)(function () {
if (scrollFlag) {
var newCaseDom = document.getElementById("scroll-key-".concat(activeKey));
newCaseDom === null || newCaseDom === void 0 || newCaseDom.scrollIntoView({
behavior: "smooth"
});
setScrollFlag(false);
}
}, [activeKey, scrollFlag]);
return /*#__PURE__*/(0,jsx_runtime.jsx)(spin/* default */.Z, {
spinning: loading,
delay: 500,
children: !data ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: "vh100"
}) : /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: NewEditmodules.bg,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("header", {
className: NewEditmodules.header,
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: NewEditmodules.avatar,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("img", {
src: "".concat(env/* default */.Z.IMG_SERVER, "/images/").concat(user === null || user === void 0 ? void 0 : user.image_url),
alt: "user"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: user === null || user === void 0 ? void 0 : user.name
})]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: NewEditmodules.title,
children: [" ", (data === null || data === void 0 ? void 0 : data.hack.name) || '编程题', " "]
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
className: NewEditmodules.exitBtn,
onClick: onBack,
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "icon iconfont icon-tuichu1"
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
children: "\u9000\u51FA"
})]
})]
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z, {
colon: false,
form: form,
initialValues: data,
onValuesChange: handleValuesChange,
labelCol: {
flex: '200px'
},
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: NewEditmodules.contentWrapper,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(tabs/* default */.Z, {
className: NewEditmodules.tabWrapper,
tabBarGutter: 180,
centered: true,
items: [{
label: '基础信息',
key: '1',
children: /*#__PURE__*/(0,jsx_runtime.jsx)(NewEdit_BaseInfo, {
onAddTestCases: onAddTestCases,
form: form,
handleAddKnowledgeFinish: handleAddKnowledgeFinish,
MyGroup: MyGroup,
formValue: formValue,
knowledgeOptions: knowledgeOptions,
onChangeLanguage: onChangeLanguage,
onChangeSubDiscipline: onChangeSubDiscipline,
onRemoveTestCase: onRemoveTestCase,
onAddTestCase: onAddTestCase,
dicts: dicts,
categorys: categorys,
callback_url: callback_url,
hack: data.hack,
onChangeScore: onChangeScore,
onChangeAverage: onChangeAverage,
onChangeFile: onChangeFile,
uploadData: uploadData,
setUploadData: setUploadData,
handleUploadRatio: handleUploadRatio,
isshows: isshows,
isProgram: isProgram,
addUploadFnc: addUploadFnc,
activeKey: activeKey,
setActiveKey: setActiveKey
})
}, {
label: '学员初始代码',
key: '2',
forceRender: true,
children: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: NewEditmodules.codePanelWrapper,
children: isProgram ? /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: "codes",
noStyle: true,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(CodeProgramPanel/* default */.Z, {})
}) : /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
name: ['hack_codes', 'code'],
noStyle: true,
children: /*#__PURE__*/(0,jsx_runtime.jsx)(CodePanel/* default */.Z, {
language: data.hack_codes.language
})
})
})
}]
})
})
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: NewEditmodules.buttonFixed,
children: !id ? /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: NewEditmodules.cancelBtn,
onClick: onBack,
children: "\u53D6\u6D88"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
className: "".concat(NewEditmodules.saveBtn, " ml20"),
loading: loading,
type: "primary",
onClick: (0,lodash.throttle)(handleFinish, 1000),
children: "\u4FDD\u5B58"
})]
}) : /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
className: NewEditmodules.cancelBtn,
onClick: onBack,
children: "\u53D6\u6D88"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
className: "".concat(NewEditmodules.saveBtn, " ml20"),
loading: loading,
type: "primary",
onClick: (0,lodash.throttle)(handleFinish, 1000),
children: "\u4FDD\u5B58"
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
type: "primary",
className: "".concat(NewEditmodules.challengeBtn, " ml20"),
onClick: (0,lodash.throttle)(onChallenge, 1000),
icon: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
className: "icon iconfont icon-kaishitiaozhan1 mr5 font14"
}),
children: status ? '开始挑战' : '模拟挑战'
})]
})
})]
})
});
});
/***/ }),
/***/ 73631:
/*!********************************************************!*\
!*** ./src/assets/images/problemset/folder-closed.png ***!
\********************************************************/
/***/ (function(module) {
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAZxJREFUOBGtlL1Ow0AMgH2XUIkOLFXVASgTsDHxBIAEzAwMPBQjT8AATGVBgEBCYmHmFcICYmBogCbNYSe52HUTVZWwFJ3PP599Z+WMcy6Af5SwYkWnLYifTyBzq5XNK8YNwbbvYP381ZuaVlN1+HJwAc4d1QYaA+gDsHYANrhGHTdCMtSDMILtwSMDn7ZiANPKwyjeQ0Reo4r1gEoEwRkDb7spdPcBeocMk1Cv00oii5L+fgPwcR/zHfb3AJY2sEpUVLOUhB/l+w7I1iS9TYDFrM3AzhqGDstPZ3li2Z12U2WLvk4fGJh+F0elYN8ZrbWiA7igAP4WR6sFzDAKPgPHP0VnlMsFS5IyyIGoeAamCKybYI5UQLWVE2fgGI/s72wqQXRd9jyxiHgGJtihFxGQm8Qd5XvtF3fEQOrQH9mDm1Z9hyJuEphXIq9uSWSQqv8a4RbAUTFdcs7gifwplYGjT3wzbPFz6Q70EZv8WZoxMP66ApMc86inirNBA8njcFIuvOTXhowPyzuQJiukzi3hQgS7b+I9nJtQn/AHsLGsvlcPPWsAAAAASUVORK5CYII=";
/***/ }),
/***/ 5623:
/*!********************************************************!*\
!*** ./src/assets/images/problemset/folder-opened.png ***!
\********************************************************/
/***/ (function(module) {
module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAAXNSR0IArs4c6QAAAedJREFUOBGtVDtLA0EQ/jY5z7dgEBVJLHyAitpYWQqKjVZa5BfEKpWlWPgrLG0UEdTexkILRUQiSBBBCAhGUINFHia53Dm7ufXcvfgIOHA3O69vvtnbPeY4ThD/KIF/xBJQhg/wbmkZtj0KMKbEGNIweg4xuPmq+DWDKSOfz2/AqaxpOVWzip8HC2xTsydfjoMHhMd2VMDjkSswTPqSucOhh3PmupaIediBOnL52UTLENC7QCV1bC9vkjkF3i4WVUDeORIF2sf5ymOk7mY1pr87hoHEhekHDLYQOfck8c6c6OeYfPHN3LyOxEB2KwQru0LrBvTPdaGRipj7ISUzqUWJ/moiRyc1tUXAQP42Tsa6sEIRCtwDRXqESDYS8RuG5iyRMEWFAat4CbvsAmgFmukmeYofJYeSAimab0L4DfQNHiF1laFAyMv840o2zN3Q1FMuIOIWStF9OtAxH4xkIC8NZyN9SnIOsNISkLRd3EWlFBP0lQJtDzVTyc8mBKB3U65nUnBYmDaFAr98BFGqvYKtwOMZHRsp1vsedVxV8bQRJXu5BbKWa6sAmK1lj2FiOoLcS5LYNX/N+3ktp+GapFJMeoDccdI9gEJ2nW5HhJjKuXmktih7yjJoC8VVwNpldXnr+KX8DfcD09mnwzz7SXEAAAAASUVORK5CYII=";
/***/ })
}]);