"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[34741],{ /***/ 34332: /*!*********************************************************!*\ !*** ./src/components/FolderTree/index.tsx + 1 modules ***! \*********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: function() { return /* binding */ FolderTree; } }); // 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/_@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/_react@17.0.2@react/index.js var _react_17_0_2_react = __webpack_require__(59301); // EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tree/index.js + 8 modules var tree = __webpack_require__(32985); ;// 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__(17258); // 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); /***/ }), /***/ 39694: /*!*****************************************************************!*\ !*** ./src/pages/Problems/OjForm/NewEdit/index.tsx + 2 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__(95021); // EXTERNAL MODULE: ./src/.umi-production/exports.ts var _umi_production_exports = __webpack_require__(80608); // 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__(12796); // EXTERNAL MODULE: ./src/service/exercise.ts var exercise = __webpack_require__(43516); // EXTERNAL MODULE: ./src/pages/Problems/OjForm/CodePanel/index.tsx + 1 modules var CodePanel = __webpack_require__(47234); // EXTERNAL MODULE: ./src/pages/Problems/OjForm/CodeProgramPanel/index.tsx + 1 modules var CodeProgramPanel = __webpack_require__(9876); // EXTERNAL MODULE: ./src/utils/fetch.ts var fetch = __webpack_require__(49105); // EXTERNAL MODULE: ./src/utils/util.tsx var utils_util = __webpack_require__(27876); // EXTERNAL MODULE: ./src/utils/env.ts + 1 modules var env = __webpack_require__(71681); // EXTERNAL MODULE: ./src/service/paperlibrary.ts var paperlibrary = __webpack_require__(96242); // EXTERNAL MODULE: ./src/utils/enum.ts var utils_enum = __webpack_require__(38768); // 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 + 3 modules var input = __webpack_require__(92832); // 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__(94001); // 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.4.0@@ant-design/icons/es/icons/PlusCircleOutlined.js + 1 modules var PlusCircleOutlined = __webpack_require__(65547); // EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.4.0@@ant-design/icons/es/icons/MinusCircleOutlined.js + 1 modules var MinusCircleOutlined = __webpack_require__(97810); // EXTERNAL MODULE: ./src/components/markdown-editor/index.tsx + 10 modules var markdown_editor = __webpack_require__(77036); // EXTERNAL MODULE: ./src/components/FolderTree/index.tsx + 1 modules var FolderTree = __webpack_require__(34332); // EXTERNAL MODULE: ./src/components/Knowledge/index.tsx + 1 modules var Knowledge = __webpack_require__(12943); // EXTERNAL MODULE: ./src/pages/Shixuns/Edit/body/Level/Challenges/components/UploadFile/index.tsx + 2 modules var UploadFile = __webpack_require__(19989); // EXTERNAL MODULE: ./src/components/QuestionEditor/MdEditorInForm.tsx var MdEditorInForm = __webpack_require__(78666); // EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js var jsx_runtime = __webpack_require__(37712); ;// 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, { 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/* default */.Z, { 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, 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, _yield$getUser, _user2, _getJsonFromUrl3, _sub_discipline_id, _tag_discipline_id, tagIds, banksIds, _difficult, _getDisciplineIds3, _getDisciplineIds4, _ids, _dictData, bankstime, _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, 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 }, 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 }, codes: newCodes }); handleSetKnowledge(ids === null || ids === void 0 ? void 0 : ids[0], ids === null || ids === void 0 ? void 0 : ids[1], discips); } _context.next = 26; 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)(), _sub_discipline_id = _getJsonFromUrl3.sub_discipline_id, _tag_discipline_id = _getJsonFromUrl3.tag_discipline_id, tagIds = _getJsonFromUrl3.tagIds, banksIds = _getJsonFromUrl3.banksIds; _difficult = 2; //默认适中难度,不再通过url里的difficult参数设置默认值 _getDisciplineIds3 = (0,util/* getDisciplineIds */.y3)(discips, parseInt(_sub_discipline_id, 10)), _getDisciplineIds4 = slicedToArray_default()(_getDisciplineIds3, 2), _ids = _getDisciplineIds4[0], _dictData = _getDisciplineIds4[1]; bankstime = [Number(banksIds)]; 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: bankstime, is_file: false, answer_text: '' }, 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: bankstime, is_file: false, answer_text: '' } }); handleSetKnowledge(_ids === null || _ids === void 0 ? void 0 : _ids[0], _ids === null || _ids === void 0 ? void 0 : _ids[1], discips); case 26: 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="; /***/ }) }]);