"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[4994],{ /***/ 96845: /*!******************************************************!*\ !*** ./src/pages/Problems/OjForm/index.less?modules ***! \******************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__) { // extracted by mini-css-extract-plugin /* harmony default export */ __webpack_exports__.Z = ({"header":"header___HqHSe","checkboxs":"checkboxs___ObBnD","field":"field___w_sM6","oj-form-container":"oj-form-container____odYP","oj-left-panel":"oj-left-panel___emEB2","oj-form-info":"oj-form-info___m00Ag","footer":"footer___O4iSJ","collapse":"collapse___Ltfkj","test-case-name":"test-case-name___miZcb","btn-remove-case":"btn-remove-case___cHap2","icon-tag":"icon-tag___gmyTb","btn_back":"btn_back___tNmX3","testJi":"testJi___L3fHb","upBtn":"upBtn___RGH6X","djs":"djs____TS0n","time":"time___IAdHc"}); /***/ }), /***/ 92782: /*!*********************************************************!*\ !*** ./src/components/CustomTree/index.tsx + 1 modules ***! \*********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: function() { return /* binding */ components_CustomTree; } }); // 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__(48209); // EXTERNAL MODULE: ./src/service/problemset.ts var problemset = __webpack_require__(66401); ;// CONCATENATED MODULE: ./src/components/CustomTree/index.less?modules // extracted by mini-css-extract-plugin /* harmony default export */ var CustomTreemodules = ({"flex_box_center":"flex_box_center___SFmJH","flex_space_between":"flex_space_between___f2H1D","flex_box_vertical_center":"flex_box_vertical_center___hW_hp","flex_box_center_end":"flex_box_center_end___yklmJ","flex_box_column":"flex_box_column___m0oUw","customTree":"customTree___ZhEHU","name":"name___RIkn2"}); ;// CONCATENATED MODULE: ./src/components/CustomTree/index.tsx var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __objRest = (source, exclude) => { var target = {}; for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop]; if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) { if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop]; } return target; }; var __async = (__this, __arguments, generator) => { return new Promise((resolve, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e) { reject(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; const CustomTree = (_a) => { var _b = _a, { value, onChange, defaultValue, disabled } = _b, props = __objRest(_b, [ "value", "onChange", "defaultValue", "disabled" ]); const [treeData, setTreeData] = (0,_react_17_0_2_react.useState)([]); const [keyIndex, setKeyIndex] = (0,_react_17_0_2_react.useState)("1"); (0,_react_17_0_2_react.useEffect)(() => { getData(); }, []); const getData = () => __async(void 0, null, function* () { const res = yield (0,problemset/* getPaperList */.NZ)({}); if (res == null ? void 0 : res.data) { const item = [ { title: /* @__PURE__ */ _react_17_0_2_react.createElement("div", { title: "\u6839\u76EE\u5F55", className: CustomTreemodules.name }, "\u6839\u76EE\u5F55"), value: 0, key: 0, icon: /* @__PURE__ */ _react_17_0_2_react.createElement("i", { className: "iconfont icon-wenjianjia2 c-light-primary mr10", style: { lineHeight: "19px" } }), children: transformTreeKey(res.data || []) } ]; setTreeData(item); setKeyIndex("2"); } }); const transformTreeKey = (items) => { function mapTree(org) { const realChildren = org.children; const haveChildren = Array.isArray(realChildren) && realChildren.length > 0; const key = org == null ? void 0 : org.group_id; return { //分别将我们查询出来的值做出改变他的key title: /* @__PURE__ */ _react_17_0_2_react.createElement("div", { title: org == null ? void 0 : org.name, className: CustomTreemodules.name }, org == null ? void 0 : org.name), value: key, key, icon: /* @__PURE__ */ _react_17_0_2_react.createElement("i", { className: "iconfont icon-wenjianjia2 c-light-primary mr10", style: { lineHeight: "19px" } }), //判断它是否存在子集,若果存在就进行再次进行遍历操作,知道不存在子集便对其他的元素进行操作 children: haveChildren ? realChildren == null ? void 0 : realChildren.map((e) => mapTree(e)) : [] }; } return items == null ? void 0 : items.map((org) => mapTree(org)); }; const param = defaultValue ? { defaultExpandedKeys: [0], defaultSelectedKeys: [0] } : { selectedKeys: value, defaultExpandedKeys: value }; return /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: CustomTreemodules.customTree }, /* @__PURE__ */ _react_17_0_2_react.createElement( tree["default"], __spreadValues(__spreadProps(__spreadValues({ key: keyIndex }, param), { showIcon: true, treeData, onSelect: onChange, disabled }), props) )); }; /* harmony default export */ var components_CustomTree = (CustomTree); /***/ }), /***/ 30580: /*!*************************************************************!*\ !*** ./src/components/SplitContainer/index.tsx + 1 modules ***! \*************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { // EXPORTS __webpack_require__.d(__webpack_exports__, { Z: function() { return /* binding */ SplitContainer; } }); // EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js var _react_17_0_2_react = __webpack_require__(59301); ;// CONCATENATED MODULE: ./src/components/SplitContainer/index.less // extracted by mini-css-extract-plugin ;// CONCATENATED MODULE: ./src/components/SplitContainer/index.tsx /* harmony default export */ var SplitContainer = (({ defaultX = "40%", leftChild, rightChild, className, hideResize = false }) => { const [moveX, setMoveX] = (0,_react_17_0_2_react.useState)(defaultX); const resizeXFlag = (0,_react_17_0_2_react.useRef)(); function onResizeStart() { resizeXFlag.current = true; } (0,_react_17_0_2_react.useEffect)(() => { function onMove(e) { if (resizeXFlag.current) { setMoveX(e.pageX); } } function onMouseUp() { resizeXFlag.current = false; } window.addEventListener("mousemove", onMove); window.addEventListener("mouseup", onMouseUp); return () => { window.removeEventListener("mousemove", onMove); window.removeEventListener("mouseup", onMouseUp); }; }, []); const leftPanelWidth = typeof moveX === "number" && moveX !== 0.01 ? `${moveX}px` : defaultX; const rightPanelWidth = `calc(100% - ${hideResize ? "0px" : "4px"} - ${leftPanelWidth})`; return /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: `split-panel-container ${className}` }, /* @__PURE__ */ _react_17_0_2_react.createElement("section", { style: { width: leftPanelWidth, display: moveX === 0.01 ? "none" : "" } }, leftChild), /* @__PURE__ */ _react_17_0_2_react.createElement( "section", { className: "resize-x-bar", onMouseDown: onResizeStart }, /* @__PURE__ */ _react_17_0_2_react.createElement("a", { className: "btn-resize" }, /* @__PURE__ */ _react_17_0_2_react.createElement("svg", { width: "16", height: "13", viewBox: "0 0 16 13" }, /* @__PURE__ */ _react_17_0_2_react.createElement("path", { d: "M12.245 7.53H5.647v1.882h6.598v2.823L16 8.471l-3.755-3.765V7.53zM10.353 4.706H3.755v2.823L0 3.765 3.755 0v2.824h6.598v1.882z" }))) ), /* @__PURE__ */ _react_17_0_2_react.createElement( "section", { style: { width: rightPanelWidth } }, rightChild )); }); /***/ }), /***/ 16826: /*!*********************************************!*\ !*** ./src/pages/Problems/OjForm/index.tsx ***! \*********************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { __webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Types: function() { return /* binding */ Types; } /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301); /* harmony import */ var _index_less_modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.less?modules */ 96845); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! antd */ 98135); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! antd */ 43418); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! antd */ 36381); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! antd */ 78241); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! antd */ 8591); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! antd */ 71418); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! antd */ 3113); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! antd */ 57809); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! antd */ 19842); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! antd */ 54449); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! antd */ 24905); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! antd */ 5112); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! antd */ 81327); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! antd */ 14478); /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./util */ 15014); /* harmony import */ var umi__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! umi */ 67866); /* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! js-base64 */ 24334); /* harmony import */ var js_base64__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(js_base64__WEBPACK_IMPORTED_MODULE_4__); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! @ant-design/icons */ 84078); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! @ant-design/icons */ 41521); /* harmony import */ var _components_markdown_editor__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/markdown-editor */ 96180); /* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./service */ 44563); /* harmony import */ var _service_exercise__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/service/exercise */ 41044); /* harmony import */ var _components_SplitContainer__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/components/SplitContainer */ 30580); /* harmony import */ var _CodePanel__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./CodePanel */ 10166); /* harmony import */ var _CodeProgramPanel__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./CodeProgramPanel */ 11207); /* harmony import */ var _utils_fetch__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @/utils/fetch */ 51165); /* harmony import */ var _utils_util__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! @/utils/util */ 13462); /* harmony import */ var _utils_env__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! @/utils/env */ 21873); /* harmony import */ var _components_Knowledge__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @/components/Knowledge */ 20928); /* harmony import */ var _components_CustomTree__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! @/components/CustomTree */ 92782); /* harmony import */ var _pages_Shixuns_Edit_body_Level_Challenges_components_UploadFile__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! @/pages/Shixuns/Edit/body/Level/Challenges/components/UploadFile */ 449); /* harmony import */ var _service_paperlibrary__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! @/service/paperlibrary */ 6587); /* harmony import */ var _utils_enum__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! @/utils/enum */ 35782); /* harmony import */ var _components_QuestionEditor_MdEditorInForm__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! @/components/QuestionEditor/MdEditorInForm */ 57782); /* provided dependency */ var React = __webpack_require__(/*! react */ 59301); var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __async = (__this, __arguments, generator) => { return new Promise((resolve, reject) => { var fulfilled = (value) => { try { step(generator.next(value)); } catch (e) { reject(e); } }; var rejected = (value) => { try { step(generator.throw(value)); } catch (e) { reject(e); } }; var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); step((generator = generator.apply(__this, __arguments)).next()); }); }; const { TextArea } = antd__WEBPACK_IMPORTED_MODULE_20__["default"]; const { confirm } = antd__WEBPACK_IMPORTED_MODULE_21__["default"]; const { Panel } = antd__WEBPACK_IMPORTED_MODULE_22__["default"]; function getTimeStamp() { return (/* @__PURE__ */ new Date()).getTime(); } const initialState = { loading: true, user: null, disciplines: [], dicts: null, status: 0, data: void 0, lastedUpdateTime: 0 }; var Types = /* @__PURE__ */ ((Types2) => { Types2[Types2["SET_INITAL_DATA"] = 0] = "SET_INITAL_DATA"; Types2[Types2["SET_LOADING"] = 1] = "SET_LOADING"; Types2[Types2["SET_STATUS"] = 2] = "SET_STATUS"; return Types2; })(Types || {}); function reducer(state, action) { switch (action.type) { case 0 /* SET_INITAL_DATA */: return __spreadValues(__spreadValues({}, state), action.payload); case 1 /* SET_LOADING */: return __spreadProps(__spreadValues({}, state), { loading: action.payload }); case 2 /* SET_STATUS */: return __spreadProps(__spreadValues({}, state), { status: action.payload }); default: throw new Error(); } } /* harmony default export */ __webpack_exports__["default"] = (() => { var _a, _b; const [searchParams] = (0,umi__WEBPACK_IMPORTED_MODULE_3__.useSearchParams)(); const location2 = (0,umi__WEBPACK_IMPORTED_MODULE_3__.useLocation)(); const { id } = (0,umi__WEBPACK_IMPORTED_MODULE_3__.useParams)(); const [form] = antd__WEBPACK_IMPORTED_MODULE_23__["default"].useForm(); const [formValue, setFormValue] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); const [knowledgeOptions, setKnowledgeOptions] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]); const [uploadData, setUploadData] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]); const [state, dispatch] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useReducer)(reducer, initialState); const { loading, data, user, disciplines, dicts, status } = state; const hack_sets = data == null ? void 0 : data.hack_sets; const test_set_average = (_a = data == null ? void 0 : data.hack) == null ? void 0 : _a.test_set_average; const { callback_url, express_id, score, question_id, type } = (0,_utils_util__WEBPACK_IMPORTED_MODULE_12__/* .getJsonFromUrl */ .oP)(); const [MyGroup, setMyGroup] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)([]); const [ischecked, setischecked] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); const [isshows, setisshows] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); const isProgram = type === "1"; const categorys = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => { let rs = []; if (disciplines) { (0,_util__WEBPACK_IMPORTED_MODULE_2__/* .getDisciplineOptions */ .D0)(disciplines, rs); } return rs; }, [disciplines]); const initData = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((timeStamp = 0) => __async(void 0, null, function* () { var _a2, _b2; let discips = disciplines; if (discips.length === 0) { const response = yield (0,_service__WEBPACK_IMPORTED_MODULE_6__/* .getDisciplines */ .d1)("new_question"); discips = response.disciplines; } if (id) { let rs = { disciplines: discips }; const res = yield (0,_service__WEBPACK_IMPORTED_MODULE_6__/* .getProgrammingTopic */ .fu)(id); if (res.message) { if (res.status === "401") { document.location.href = "/user/login"; } } else { const { category, user: user2, code, language, hack_sets: hack_sets2, description, difficult, name, open_or_not, sub_discipline_id, tag_discipline_id, analysis, time_limit, test_set_average: test_set_average2, test_set_score, status: status2, tag_discipline_ids, item_banks_group_id, is_file = false, hide_actual_output, code_compile_score, languages, is_my, codes, submit_rule } = res; const [ids, dictData] = (0,_util__WEBPACK_IMPORTED_MODULE_2__/* .getDisciplineIds */ .y3)(discips, sub_discipline_id); setischecked(hide_actual_output); const new_hack_sets = is_file ? [{ input: "", output: "", score: 100, position: 1 }] : hack_sets2; if (is_file) { setUploadData(hack_sets2); form.setFieldsValue({ "hack_sets": new_hack_sets }); } else { setUploadData([]); } const { lastedUpdateTime } = (0,_utils_util__WEBPACK_IMPORTED_MODULE_12__/* .getJsonFromUrl */ .oP)(); const newCodes = codes == null ? void 0 : codes.map((e) => __spreadProps(__spreadValues({}, e), { code: js_base64__WEBPACK_IMPORTED_MODULE_4__.Base64.decode(e == null ? void 0 : e.code) })); rs = __spreadProps(__spreadValues({}, rs), { loading: false, user: user2, dicts: dictData, status: status2, lastedUpdateTime: timeStamp ? timeStamp : lastedUpdateTime ? lastedUpdateTime : 0, data: { hack_codes: { language, code: js_base64__WEBPACK_IMPORTED_MODULE_4__.Base64.decode(code) }, hack: { category, difficult, name, description, open_or_not, time_limit, test_set_average: test_set_average2, test_set_score, sub_discipline_id: ids, tag_discipline_ids, languages, score: score || 1, item_banks_group_ids: item_banks_group_id, is_file, is_my, code_compile_score, analysis, submit_rule }, hack_sets: new_hack_sets, tags: tag_discipline_ids, codes: newCodes } }); if (parseInt(code_compile_score) > 0) { setisshows(true); } dispatch({ type: 0 /* SET_INITAL_DATA */, payload: rs }); setFormValue({ hack: { category, difficult, name, description, open_or_not, time_limit, test_set_average: test_set_average2, test_set_score, sub_discipline_id: ids, tag_discipline_ids, score: score || 1, item_banks_group_ids: item_banks_group_id, is_file, analysis }, codes: newCodes }); handleSetKnowledge(ids == null ? void 0 : ids[0], ids == null ? void 0 : ids[1], discips); } } else { const { user: user2 } = yield (0,_service__WEBPACK_IMPORTED_MODULE_6__/* .getUser */ .PR)(); const { difficult, sub_discipline_id, tag_discipline_id, tagIds, banksIds } = (0,_utils_util__WEBPACK_IMPORTED_MODULE_12__/* .getJsonFromUrl */ .oP)(); const [ids, dictData] = (0,_util__WEBPACK_IMPORTED_MODULE_2__/* .getDisciplineIds */ .y3)(discips, parseInt(sub_discipline_id, 10)); let bankstime = [Number(banksIds)]; dispatch({ type: 0 /* SET_INITAL_DATA */, payload: { loading: false, user: user2, disciplines: discips, status: 0, dicts: dictData, data: { hack_codes: { language: "C", code: "" }, hack: { category: null, difficult: parseInt(difficult, 10), time_limit: 3, description: "", test_set_score: true, test_set_average: true, open_or_not: true, sub_discipline_id: ids, tag_discipline_id: tagIds && ((_a2 = tagIds == null ? void 0 : tagIds.split(",")) == null ? void 0 : _a2.map((x) => Number(x))), name: "", item_banks_group_ids: bankstime, is_file: false }, tags: tag_discipline_id ? tag_discipline_id == null ? void 0 : tag_discipline_id.split(",").map((t) => parseInt(t, 10)) : [], hack_sets: [{ input: "", output: "", score: 100, position: 1 }] } } }); setFormValue({ hack: { category: null, difficult: parseInt(difficult, 10), time_limit: 3, description: "", test_set_average: true, open_or_not: true, sub_discipline_id: ids, tag_discipline_id: tagIds && ((_b2 = tagIds == null ? void 0 : tagIds.split(",")) == null ? void 0 : _b2.map((x) => Number(x))), name: "", item_banks_group_id: bankstime, is_file: false } }); handleSetKnowledge(ids == null ? void 0 : ids[0], ids == null ? void 0 : ids[1], discips); } }), [id, disciplines]); (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { try { initData(); } catch (error) { console.log(error, "----"); } }, []); (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { function init() { return __async(this, null, function* () { let data2 = yield (0,_utils_fetch__WEBPACK_IMPORTED_MODULE_11__/* .get */ .U2)("item_banks_groups/mine.json"); setMyGroup(data2); }); } init(); }, []); const handleSetKnowledge = (id2, subId, discips) => { var _a2, _b2, _c; const options = (_c = (_b2 = (_a2 = discips == null ? void 0 : discips.find((item) => item.id === id2)) == null ? void 0 : _a2.sub_disciplines) == null ? void 0 : _b2.find((subItem) => subItem.id === subId)) == null ? void 0 : _c.tag_disciplines; }; function onSubmit(values, type2, is_cover) { return __async(this, null, function* () { const { hack_sets: hack_sets2, hack_codes, hack, tags, codes } = __spreadValues({}, values); hack.hide_actual_output = ischecked; let update_hack_sets = []; let new_hack_sets = []; let sumScore = 0; const new_list = (hack == null ? void 0 : hack.is_file) ? uploadData.map((e, i) => __spreadProps(__spreadValues({}, e), { position: i + 1 })) : hack_sets2.map((e) => __spreadProps(__spreadValues({}, e), { is_file: false })); for (let item of new_list) { sumScore += item.score; if (item.id && item.id >= 0) { update_hack_sets.push(item); } else { new_hack_sets.push(item); } } if (!(new_list == null ? void 0 : new_list.length)) { antd__WEBPACK_IMPORTED_MODULE_24__/* ["default"] */ .ZP.error("\u6D4B\u8BD5\u96C6\u4E0D\u80FD\u4E3A\u7A7A"); return; } sumScore += parseInt(hack.code_compile_score || 0); if (sumScore !== 100 && !hack.test_set_score) { antd__WEBPACK_IMPORTED_MODULE_24__/* ["default"] */ .ZP.error("\u6D4B\u8BD5\u96C6\u7684\u8BC4\u5206\u5360\u6BD4\u4E4B\u548C\u5FC5\u987B\u7B49\u4E8E100"); return; } if (new_list == null ? void 0 : new_list.some((e) => !e.output)) { antd__WEBPACK_IMPORTED_MODULE_24__/* ["default"] */ .ZP.error("\u6D4B\u8BD5\u96C6\u8F93\u51FA\u4E0D\u80FD\u4E3A\u7A7A"); return; } let newCodes = {}; if (isProgram) { codes == null ? void 0 : codes.forEach((e) => { newCodes[e.language] = (e == null ? void 0 : e.code) ? js_base64__WEBPACK_IMPORTED_MODULE_4__.Base64.encode(e == null ? void 0 : e.code) : ""; }); } else { hack_codes.code = js_base64__WEBPACK_IMPORTED_MODULE_4__.Base64.encode(hack_codes == null ? void 0 : hack_codes.code); } hack.sub_discipline_id = hack.sub_discipline_id[1]; dispatch({ type: 1 /* SET_LOADING */, payload: true }); if (!callback_url) { hack.score = hack.difficult * 100; } if (id) { yield (0,_service__WEBPACK_IMPORTED_MODULE_6__/* .updateProgrammingTopic */ .l_)(id, { hack, hack_codes, hack_sets: new_hack_sets, update_hack_sets, tags, is_cover, languages: hack.languages, codes: newCodes }); if (callback_url) { yield (0,_service__WEBPACK_IMPORTED_MODULE_6__/* .publishProgrammingTopic */ .j2)(id); if (callback_url.includes("paperlibrary")) { const res = yield (0,_service_paperlibrary__WEBPACK_IMPORTED_MODULE_17__/* .createOrModifyQuestion */ .oF)({ id: express_id, question_id, item_type: _utils_enum__WEBPACK_IMPORTED_MODULE_18__/* .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 }); if (res.status === 0) { umi__WEBPACK_IMPORTED_MODULE_3__.history.replace(callback_url); } return; } const { status: status2 } = yield (0,_service__WEBPACK_IMPORTED_MODULE_6__/* .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 }); if (status2 === 0) { if (type2 === "start") return; umi__WEBPACK_IMPORTED_MODULE_3__.history.replace(callback_url); } } else { antd__WEBPACK_IMPORTED_MODULE_24__/* ["default"] */ .ZP.success("\u4FDD\u5B58\u6210\u529F"); initData(getTimeStamp()); } dispatch({ type: 1 /* SET_LOADING */, payload: false }); } else { const { identifier, exam_identifier } = yield (0,_service__WEBPACK_IMPORTED_MODULE_6__/* .addProgrammingTopic */ .zQ)({ hack, hack_codes, hack_sets: new_list, tags, examination_bank_id: express_id || null }); dispatch({ type: 1 /* SET_LOADING */, payload: false }); if (type2 === "start") return; if (identifier) { if (!callback_url) { umi__WEBPACK_IMPORTED_MODULE_3__.history.replace(`/problems/${identifier}/edit?lastedUpdateTime=${getTimeStamp()}`); } else { yield (0,_service__WEBPACK_IMPORTED_MODULE_6__/* .publishProgrammingTopic */ .j2)(identifier); if (!id) { if (callback_url.includes("paperlibrary")) { const res = yield (0,_service_paperlibrary__WEBPACK_IMPORTED_MODULE_17__/* .createOrModifyQuestion */ .oF)({ id: express_id, item_type: _utils_enum__WEBPACK_IMPORTED_MODULE_18__/* .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 }); if (res.status === 0) { umi__WEBPACK_IMPORTED_MODULE_3__.history.replace(callback_url); } return; } const { status: status2 } = yield (0,_service__WEBPACK_IMPORTED_MODULE_6__/* .addExerciseQuestion */ .MK)(parseInt(express_id, 10), { question_type: 6, question_score: hack.score, question_title: hack.name, identifier, tag_discipline_ids: hack.tag_discipline_ids, analysis: hack.analysis }); if (status2 === 0) { umi__WEBPACK_IMPORTED_MODULE_3__.history.replace(callback_url); } } else { umi__WEBPACK_IMPORTED_MODULE_3__.history.replace(callback_url); } } } } }); } function onPublish() { form.submit(); setTimeout(() => __async(this, null, function* () { const response = yield (0,_service__WEBPACK_IMPORTED_MODULE_6__/* .publishProgrammingTopic */ .j2)(id); if (response.status === 0) { antd__WEBPACK_IMPORTED_MODULE_24__/* ["default"] */ .ZP.success("\u53D1\u5E03\u6210\u529F"); dispatch({ type: 2 /* SET_STATUS */, payload: 1 }); } else { antd__WEBPACK_IMPORTED_MODULE_24__/* ["default"] */ .ZP.info(response.message); } }), 400); } function onCancelPublish() { return __async(this, null, function* () { const response = yield (0,_service__WEBPACK_IMPORTED_MODULE_6__/* .cancelPublishProgrammingTopic */ .ZS)(id); if (response.status === 0) { antd__WEBPACK_IMPORTED_MODULE_24__/* ["default"] */ .ZP.success("\u64A4\u9500\u53D1\u5E03\u6210\u529F"); dispatch({ type: 2 /* SET_STATUS */, payload: 0 }); } else { antd__WEBPACK_IMPORTED_MODULE_24__/* ["default"] */ .ZP.info(response.message); } }); } function onTriggerPublish() { if (status === 0) { confirm({ title: "\u63D0\u793A", content: /* @__PURE__ */ React.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, " ", /* @__PURE__ */ React.createElement("div", null, "\u53D1\u5E03\u540E\u5373\u53EF\u5E94\u7528\u5230\u81EA\u5DF1\u7BA1\u7406\u7684\u8BFE\u5802"), " ", /* @__PURE__ */ React.createElement("div", null, " \u662F\u5426\u786E\u8BA4\u53D1\u5E03?"), " "), okText: "\u786E\u5B9A", cancelText: "\u53D6\u6D88", onOk() { onPublish(); } }); } else { confirm({ title: "\u63D0\u793A", content: /* @__PURE__ */ React.createElement("p", null, "\u662F\u5426\u786E\u8BA4\u64A4\u9500\u53D1\u5E03\uFF1F"), okText: "\u786E\u5B9A", cancelText: "\u53D6\u6D88", onOk() { onCancelPublish(); } }); } } function onChallenge() { return __async(this, null, function* () { onSubmit(yield form.getFieldValue(), "start"); setTimeout(() => __async(this, null, function* () { const { identifier } = yield (0,_service__WEBPACK_IMPORTED_MODULE_6__/* .startChallenge */ .uE)(id); if (isProgram) { window.location.href = `/myproblems/${identifier}?type=1`; } else { window.location.href = `/myproblems/${identifier}`; } }), 400); }); } function onBack() { var _a2; if (callback_url) { umi__WEBPACK_IMPORTED_MODULE_3__.history.replace(callback_url); } else { if (isProgram) { let item = (_a2 = localStorage.getItem("program_homework")) == null ? void 0 : _a2.split(","); umi__WEBPACK_IMPORTED_MODULE_3__.history.push(`/classrooms/${item == null ? void 0 : item[0]}/program_homework/${item == null ? void 0 : item[1]}/detail`); } else { umi__WEBPACK_IMPORTED_MODULE_3__.history.replace(`/problemset`); } } } const handleUploadRatio = (testSetData) => { let code_compile_score = parseInt(form.getFieldValue("hack").code_compile_score) || 0; const score2 = Math.floor((100 - code_compile_score) / testSetData.length); const lastScore = score2 + (100 - code_compile_score) % testSetData.length; testSetData = testSetData.map((item, index) => { if (index === testSetData.length - 1) { return __spreadProps(__spreadValues({}, item), { score: lastScore }); } return __spreadProps(__spreadValues({}, item), { score: score2 }); }); setUploadData(testSetData); }; function onChangeScore(e) { if (!e.target.value) { handleUploadRatio(uploadData); } dispatch({ type: 0 /* SET_INITAL_DATA */, payload: { data: __spreadProps(__spreadValues({}, data), { hack: __spreadProps(__spreadValues({}, data.hack), { test_set_score: e.target.value }) }) } }); } function onChangeFile(e) { dispatch({ type: 0 /* SET_INITAL_DATA */, payload: { data: __spreadProps(__spreadValues({}, data), { hack: __spreadProps(__spreadValues({}, data.hack), { is_file: e.target.value }) }) } }); } function onChangehide(e) { setischecked(e.target.checked); } function onChangeAverage(e) { const value = e.target.value; if (value) { handleUploadRatio(uploadData); } dispatch({ type: 0 /* SET_INITAL_DATA */, payload: { data: __spreadProps(__spreadValues({}, data), { hack: __spreadProps(__spreadValues({}, data.hack), { test_set_average: value }) }) } }); } function onAddTestCase() { let rs = form.getFieldValue("hack_sets"); let by = parseInt(form.getFieldValue("hack").code_compile_score) || 0; const len = rs.length + 1; const averageMark = Math.floor((100 - by) / len); const remainder = (100 - by) % len; rs.map((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: 0 /* SET_INITAL_DATA */, payload: { data: __spreadProps(__spreadValues({}, data), { hack_sets: rs }) } }); } function onAddTestCases() { let rs = form.getFieldValue("hack_sets"); let by = parseInt(form.getFieldValue("hack").code_compile_score) || 0; const len = rs.length; const averageMark = Math.floor((100 - by) / len); const remainder = (100 - by) % len; rs.map((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: 0 /* SET_INITAL_DATA */, payload: { data: __spreadProps(__spreadValues({}, data), { hack_sets: rs }) } }); } (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { if (test_set_average) { let by = parseInt(form.getFieldValue("hack").code_compile_score) || 0; const len = hack_sets == null ? void 0 : hack_sets.length; const averageMark = Math.floor((100 - by) / len); const remainder = (100 - by) % len; hack_sets == null ? void 0 : hack_sets.map((item, index) => { item.score = averageMark; item.position = index + 1; if (index === len - 1) { item.score = averageMark + remainder; } return item; }); dispatch({ type: 0 /* SET_INITAL_DATA */, payload: { data: __spreadProps(__spreadValues({}, data), { hack_sets }) } }); form.setFieldsValue({ "hack_sets": hack_sets }); } }, [test_set_average]); function onRemoveTestCase(index) { let sets = form.getFieldValue("hack_sets"); let by = parseInt(form.getFieldValue("hack").code_compile_score) || 0; const len = (sets == null ? void 0 : sets.length) - 1; const averageMark = Math.floor((100 - by) / len); const remainder = (100 - by) % len; sets.splice(index, 1); sets == null ? void 0 : sets.map((item, index2) => { if (test_set_average) { item.score = averageMark; if (index2 === len - 1) { item.score = averageMark + remainder; } } item.position = index2 + 1; return item; }); dispatch({ type: 0 /* SET_INITAL_DATA */, payload: { data: __spreadProps(__spreadValues({}, data), { hack_sets: sets }) } }); form.setFieldsValue({ "hack_sets": sets }); } function onChangeLanguage(language) { dispatch({ type: 0 /* SET_INITAL_DATA */, payload: { data: __spreadProps(__spreadValues({}, data), { hack_codes: __spreadProps(__spreadValues({}, data.hack_codes), { language }) }) } }); } const handleValuesChange = (changedValues) => { var _a2, _b2, _c, _d, _e, _f; if ((_a2 = changedValues == null ? void 0 : changedValues.hack) == null ? void 0 : _a2.sub_discipline_id) { const [id2, subId] = (_b2 = changedValues == null ? void 0 : changedValues.hack) == null ? void 0 : _b2.sub_discipline_id; const options = (_e = (_d = (_c = disciplines == null ? void 0 : disciplines.find((item) => item.id === id2)) == null ? void 0 : _c.sub_disciplines) == null ? void 0 : _d.find((subItem) => subItem.id === subId)) == null ? void 0 : _e.tag_disciplines; const fieldData = __spreadProps(__spreadValues({}, form.getFieldsValue()), { hack: __spreadProps(__spreadValues({}, (_f = form.getFieldsValue()) == null ? void 0 : _f.hack), { tag_discipline_ids: [] }) }); form.setFieldsValue(fieldData); setFormValue(fieldData); } else { setFormValue(__spreadValues({}, form.getFieldsValue())); } }; const handleAddKnowledgeFinish = (item) => { setKnowledgeOptions([...knowledgeOptions, __spreadValues({}, item)]); }; (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => { var _a2, _b2, _c, _d; if ((_b2 = (_a2 = data == null ? void 0 : data.hack) == null ? void 0 : _a2.sub_discipline_id) == null ? void 0 : _b2[1]) { getTagData((_d = (_c = data == null ? void 0 : data.hack) == null ? void 0 : _c.sub_discipline_id) == null ? void 0 : _d[1]); } }, [(_b = data == null ? void 0 : data.hack) == null ? void 0 : _b.sub_discipline_id]); const getTagData = (id2) => __async(void 0, null, function* () { const res = yield (0,_service_exercise__WEBPACK_IMPORTED_MODULE_7__/* .getTagDiscipline */ .YY)({ sub_discipline_id: id2 }); setKnowledgeOptions(res.tag_disciplines); }); function onChangeSubDiscipline(values) { let subId = values[1]; const [, dictData] = (0,_util__WEBPACK_IMPORTED_MODULE_2__/* .getDisciplineIds */ .y3)(disciplines, subId); form.setFieldsValue({ tags: [] }); dispatch({ type: 0 /* SET_INITAL_DATA */, payload: { dicts: dictData, data: __spreadProps(__spreadValues({}, data), { hack: __spreadProps(__spreadValues({}, data.hack), { sub_discipline_id: values }), tags: [] }) } }); } const addUploadFnc = (files, isFuc = false) => { var _a2, _b2; if (isFuc) { return () => { dispatch({ type: 0 /* SET_INITAL_DATA */, payload: { data: __spreadProps(__spreadValues({}, data), { hack: __spreadProps(__spreadValues({}, data.hack), { is_file: true }) }) } }); form.setFieldsValue({ hack: { is_file: true } }); }; } const newFiles = files == null ? void 0 : files.map((e) => ({ input: e.input, output: e.output, score: 0, position: 1 })); let sets = (_b2 = (_a2 = form.getFieldValue("hack_sets")) == null ? void 0 : _a2.filter((e) => e.input || e.output)) == null ? void 0 : _b2.concat(newFiles); let by = parseInt(form.getFieldValue("hack").code_compile_score) || 0; const len = sets == null ? void 0 : sets.length; const averageMark = Math.floor((100 - by) / len); const remainder = (100 - by) % len; sets == null ? void 0 : sets.map((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: 0 /* SET_INITAL_DATA */, payload: { data: __spreadProps(__spreadValues({}, data), { hack_sets: sets, hack: __spreadProps(__spreadValues({}, data.hack), { is_file: false }) }) } }); form.setFieldsValue({ "hack_sets": sets, hack: { is_file: false } }); }; return /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_25__/* ["default"] */ .Z, { spinning: loading, delay: 500 }, !data ? null : /* @__PURE__ */ React.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /* @__PURE__ */ React.createElement("header", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.header }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("img", { src: `${_utils_env__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z.IMG_SERVER}/images/${user == null ? void 0 : user.image_url}`, alt: "user", width: 30 }), /* @__PURE__ */ React.createElement("span", null, user == null ? void 0 : user.name)), /* @__PURE__ */ React.createElement("h2", null, " ", data == null ? void 0 : data.hack.name, " "), id ? /* @__PURE__ */ React.createElement("a", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.btn_back, onClick: onBack }, " ", /* @__PURE__ */ React.createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_26__/* ["default"] */ .Z, null), "\u9000\u51FA") : null), /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"], { form, initialValues: data, layout: "vertical", className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z["oj-form-container"], onValuesChange: handleValuesChange, onFinish: (v, s) => { if (searchParams.get("exercise") && !callback_url.includes("paperlibrary")) { antd__WEBPACK_IMPORTED_MODULE_21__["default"].confirm({ title: "\u4FDD\u5B58\u63D0\u793A", content: "\u6B64\u9898\u76EE\u5DF2\u5B58\u5728\u8BD5\u9898\u5E93\u4E2D\uFF0C\u662F\u5426\u5C06\u4FEE\u6539\u540E\u7684\u8BD5\u9898\u8986\u76D6\u8BD5\u9898\u5E93\u7684\u539F\u9898\uFF1F", okText: "\u8986\u76D6\u539F\u9898", cancelText: "\u4E0D\u8986\u76D6", onOk: () => onSubmit(v, s, 1), onCancel: () => onSubmit(v, s, 0) }); return; } onSubmit(v, s); } }, /* @__PURE__ */ React.createElement(_components_SplitContainer__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { leftChild: /* @__PURE__ */ React.createElement(LeftPanel, { onAddTestCases, form, handleAddKnowledgeFinish, MyGroup, formValue, knowledgeOptions, onChangeLanguage, onChangeSubDiscipline, onRemoveTestCase, onAddTestCase, dicts, categorys, callback_url, hack: data.hack, onChangeScore, onChangehide, onChangeAverage, onChangeFile, uploadData, setUploadData, handleUploadRatio, ischecked, isshows, isProgram, addUploadFnc }), rightChild: isProgram ? /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { name: "codes", style: { marginBottom: 0 } }, /* @__PURE__ */ React.createElement(_CodeProgramPanel__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, null)) : /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { name: ["hack_codes", "code"], style: { marginBottom: 0 } }, /* @__PURE__ */ React.createElement(_CodePanel__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { language: data.hack_codes.language })) }), /* @__PURE__ */ React.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z["footer"] }, !id ? /* @__PURE__ */ React.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_27__/* ["default"] */ .ZP, { onClick: onBack }, "\u53D6\u6D88"), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_27__/* ["default"] */ .ZP, { loading, type: "primary", htmlType: "submit" }, "\u4FDD\u5B58")) : /* @__PURE__ */ React.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, isProgram && /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_27__/* ["default"] */ .ZP, { onClick: onBack, type: "primary", ghost: true }, "\u9000\u51FA\u7F16\u8F91"), callback_url ? null : isProgram ? null : /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_27__/* ["default"] */ .ZP, { type: status ? "default" : "primary", onClick: onTriggerPublish }, status ? "\u64A4\u9500\u53D1\u5E03" : "\u7ACB\u5373\u53D1\u5E03"), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_27__/* ["default"] */ .ZP, { loading, type: "primary", htmlType: "submit" }, "\u4FDD\u5B58"), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_27__/* ["default"] */ .ZP, { type: "primary", onClick: onChallenge }, status ? "\u5F00\u59CB\u6311\u6218" : "\u6A21\u62DF\u6311\u6218"))) ))); }); function LeftPanel({ form, onAddTestCases, handleAddKnowledgeFinish, ischecked, MyGroup, formValue, knowledgeOptions, categorys, hack, callback_url, onChangeAverage, onChangeScore, onChangehide, onChangeFile, onAddTestCase, onRemoveTestCase, onChangeSubDiscipline, onChangeLanguage, uploadData, setUploadData, handleUploadRatio, isshows, isProgram, addUploadFnc }) { var _a, _b, _c; const is_random = ((_a = location == null ? void 0 : location.search) == null ? void 0 : _a.includes("select")) || false; const [isshow, setisshow] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(isshows); const [editAnalysis, setEditAnalysis] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); const { test_set_average, test_set_score } = hack; const [showUploadFile, setShowUploadFile] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); const handleRemove = (item, key) => { const newList = [...uploadData]; newList.splice(key, 1); if (test_set_average) { handleUploadRatio(newList); } else { setUploadData(newList); } }; const handleInputChange = (e, key) => { console.log(e, key); const testData = uploadData.map((test, testIndex) => { if (testIndex === key) { return __spreadProps(__spreadValues({}, test), { score: e.target.value ? Number(e.target.value) : 0 }); } return test; }); setUploadData(testData); }; const addUploadData = (files) => { if (!(files == null ? void 0 : files.length)) return; if (files == null ? void 0 : files[0].is_file) { addUploadFnc(files, true)(); const newList = uploadData.concat(files); if (hack.test_set_average) { handleUploadRatio(newList); } else { setUploadData(newList); } } if (!(files == null ? void 0 : files[0].is_file)) { addUploadFnc(files); } }; function onStopPropagation(e) { e.stopPropagation(); } return /* @__PURE__ */ React.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z["oj-left-panel"] }, /* @__PURE__ */ React.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z["oj-form-info"] }, /* @__PURE__ */ React.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.field }, /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { label: "\u96BE\u6613\u5EA6", name: ["hack", "difficult"], rules: [{ required: true, message: "\u8BF7\u9009\u62E9\u96BE\u6613\u5EA6" }] }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_28__["default"], { disabled: is_random }, (0,_util__WEBPACK_IMPORTED_MODULE_2__/* .getSelectOptions */ .jw)(_util__WEBPACK_IMPORTED_MODULE_2__/* .Keys */ .R8.difficult)) ), /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { label: "\u8BFE\u7A0B(\u5408\u7406\u7684\u8BFE\u7A0B\u5206\u7C7B\u6709\u5229\u4E8E\u5FEB\u901F\u68C0\u7D22)", name: ["hack", "sub_discipline_id"], rules: [{ required: true, message: "\u8BF7\u9009\u62E9\u8BFE\u7A0B" }] }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_29__/* ["default"] */ .Z, { disabled: is_random, allowClear: false, options: categorys, placeholder: "\u8BF7\u9009\u62E9", onChange: onChangeSubDiscipline }) )), /* @__PURE__ */ React.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.field }, callback_url && /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { label: "\u5206\u6570", name: ["hack", "score"], rules: [{ required: true, message: "\u8BF7\u8F93\u5165\u5206\u6570" }], extra: /* @__PURE__ */ React.createElement("span", { style: { position: "absolute", left: 100, top: 5 } }, "\u5206") }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_30__/* ["default"] */ .Z, { disabled: is_random, min: 1, max: 100 }) ), /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { label: /* @__PURE__ */ React.createElement("div", null, "\u5355\u4E2A\u6D4B\u8BD5\u96C6\u8BC4\u6D4B\u65F6\u957F\u9650\u5236 "), name: ["hack", "time_limit"], rules: [{ required: true, message: "\u8BF7\u8F93\u5165\u5355\u4E2A\u6D4B\u8BD5\u96C6\u8BC4\u6D4B\u65F6\u957F\u9650\u5236" }, { type: "number", min: 3, message: "\u6700\u5C0F\u9650\u5236\u65F6\u95F4\u662F3\u79D2" }], extra: /* @__PURE__ */ React.createElement("span", { style: { position: "absolute", left: 100, top: 5 } }, "\u79D2") }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_30__/* ["default"] */ .Z, { min: 3 }) ), isProgram ? /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { label: "\u7F16\u7A0B\u8BED\u8A00", style: { paddingBottom: 16 }, name: ["hack", "languages"], rules: [{ required: true, message: "\u8BF7\u9009\u62E9\u7F16\u7A0B\u8BED\u8A00" }] }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_31__["default"].Group, null, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_31__["default"], { value: "C" }, "C"), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_31__["default"], { value: "C++" }, "C++"), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_31__["default"], { value: "Java" }, "Java"), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_31__["default"], { value: "Python" }, "Python")) ) : /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { label: "\u7F16\u7A0B\u8BED\u8A00", name: ["hack_codes", "language"], style: { paddingBottom: 16 }, rules: [{ required: true, message: "\u8BF7\u9009\u62E9\u7F16\u7A0B\u8BED\u8A00" }] }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_28__["default"], { onChange: onChangeLanguage }, (0,_util__WEBPACK_IMPORTED_MODULE_2__/* .getSelectOptions */ .jw)(_util__WEBPACK_IMPORTED_MODULE_2__/* .Keys */ .R8.language)) )), /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { label: /* @__PURE__ */ React.createElement("span", null, "\u77E5\u8BC6\u70B9\uFF1A", /* @__PURE__ */ React.createElement("span", { className: "c-grey-999" }, "\uFF08\u6240\u6709\u81EA\u5EFA\u77E5\u8BC6\u70B9\u4EC5\u672C\u4EBA\u53EF\u89C1\uFF0C\u88ABEduCoder\u5E73\u53F0\u5BA1\u6838\u901A\u8FC7\u4E3A\u5B98\u65B9\u77E5\u8BC6\u70B9\u540E\u6240\u6709\u7528\u6237\u53EF\u89C1\uFF09")), name: ["hack", "tag_discipline_ids"] }, /* @__PURE__ */ React.createElement( _components_Knowledge__WEBPACK_IMPORTED_MODULE_14__/* .Knowledge */ .N, { selectvalues: (hack == null ? void 0 : hack.tag_discipline_id) || (hack == null ? void 0 : hack.tag_discipline_ids), disabled: is_random, subId: (_c = (_b = formValue == null ? void 0 : formValue.hack) == null ? void 0 : _b.sub_discipline_id) == null ? void 0 : _c[1], knowledgeOptions, onAddKnowledgeFinish: handleAddKnowledgeFinish } ) ), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { label: "\u52A0\u5165\u6587\u4EF6\u5939\u76EE\u5F55", name: ["hack", "item_banks_group_ids"], labelCol: { span: 24 }, wrapperCol: { span: 24 } }, /* @__PURE__ */ React.createElement(_components_CustomTree__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z, { disabled: is_random })), /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { label: "\u4EFB\u52A1\u540D\u79F0", name: ["hack", "name"], rules: [{ required: true, message: "\u8BF7\u8F93\u5165\u4EFB\u52A1\u540D\u79F0" }] }, /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_20__["default"], { maxLength: 60, placeholder: "\u8BF7\u8F93\u5165\u4EFB\u52A1\u540D\u79F0", suffix: /* @__PURE__ */ React.createElement("span", null, 60 - hack.name.length) } ) ), /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { name: ["hack", "description"], valuePropName: "defaultValue", rules: [{ required: true, message: "\u8BF7\u8F93\u5165\u63CF\u8FF0\u5185\u5BB9" }] }, /* @__PURE__ */ React.createElement(_components_markdown_editor__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { miniToolbar: true, id: "moop_cases_content", noStorage: true, height: 200 }) ), /* @__PURE__ */ React.createElement("div", { onClick: () => setEditAnalysis(true) }, /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { label: "\u9898\u76EE\u89E3\u6790", name: ["hack", "analysis"], className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.baseLineHeight}` }, /* @__PURE__ */ React.createElement(_components_QuestionEditor_MdEditorInForm__WEBPACK_IMPORTED_MODULE_19__/* .RegularInput */ .x, { placeholder: "\u8BF7\u7F16\u8F91\u9898\u76EE\u89E3\u6790\uFF08\u975E\u5FC5\u586B\uFF09", isEdit: editAnalysis }) )), /* @__PURE__ */ React.createElement("div", { className: "tst-case-info" }, /* @__PURE__ */ React.createElement("h3", { className: "flex-container", style: { justifyContent: "space-between" } }, " \u6D4B\u8BD5\u7528\u4F8B\u4E0E\u7CFB\u7EDF\u8BC4\u5206\u89C4\u5219", !hack.is_file && /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_27__/* ["default"] */ .ZP, { type: "primary", ghost: true, onClick: onAddTestCase }, "\u6DFB\u52A0\u6D4B\u8BD5\u7528\u4F8B")), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { name: ["hack", "test_set_score"] }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_32__/* ["default"].Group */ .ZP.Group, { onChange: onChangeScore }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_32__/* ["default"] */ .ZP, { value: true }, "\u901A\u8FC7\u5168\u90E8\u6D4B\u8BD5\u96C6", /* @__PURE__ */ React.createElement("span", { className: "tip" }, " \uFF08\u5B66\u5458\u8BC4\u6D4B\uFF0C\u4EC5\u5F53\u6240\u6709\u6D4B\u8BD5\u96C6\u90FD\u6B63\u786E\u65F6\uFF0C\u624D\u83B7\u5F97\u4E00\u6B21\u6027\u5956\u52B1\uFF09")), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_32__/* ["default"] */ .ZP, { value: false }, "\u901A\u8FC7\u90E8\u5206\u6D4B\u8BD5\u96C6", /* @__PURE__ */ React.createElement("span", { className: "tip" }, " \uFF08\u5B66\u5458\u8BC4\u6D4B\uFF0C\u901A\u8FC7\u6D4B\u8BD5\u96C6\u5373\u53EF\u83B7\u5F97\u5BF9\u5E94\u5956\u52B1\uFF09")))), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_31__["default"], { style: { marginBottom: "5px" }, checked: ischecked, onChange: onChangehide }, "\u9690\u85CF\u5B9E\u9645\u8F93\u51FA \uFF08\u9009\u4E2D\uFF0C\u5219\u5728\u5B66\u751F\u8003\u8BD5\u8FC7\u7A0B\u4E2D\u65E0\u6CD5\u770B\u5230\u5B9E\u9645\u8F93\u51FA\u7ED3\u679C\uFF0C\u4EC5\u5C55\u793A\u662F\u5426\u8BC4\u6D4B\u662F\u5426\u901A\u8FC7\uFF09"), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.testJi, name: ["hack", "is_file"], label: "\u7528\u4F8B\u7C7B\u578B:" }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_32__/* ["default"].Group */ .ZP.Group, { onChange: onChangeFile }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_33__/* ["default"] */ .Z, { direction: "horizontal" }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_32__/* ["default"] */ .ZP, { value: false }, "\u6587\u672C"), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_32__/* ["default"] */ .ZP, { value: true }, "\u6587\u4EF6")))), /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { label: "\u8BC4\u6D4B\u65F6\u7A7A\u683C\u5904\u7406", name: ["hack", "submit_rule"], rules: [{ required: true }] }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_32__/* ["default"].Group */ .ZP.Group, null, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_32__/* ["default"] */ .ZP, { value: 0 }, "\u4E0D\u5FFD\u7565\u7A7A\u683C"), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_32__/* ["default"] */ .ZP, { value: 1 }, "\u5FFD\u7565\u9996\u5C3E\u7A7A\u683C"), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_32__/* ["default"] */ .ZP, { value: 2 }, "\u5FFD\u7565\u6240\u6709\u7A7A\u683C")) ), !hack.test_set_score && /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { name: ["hack", "test_set_average"], label: "\u7CFB\u7EDF\u8BC4\u5206\u5360\u6BD4" }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_32__/* ["default"].Group */ .ZP.Group, { onChange: onChangeAverage }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_32__/* ["default"] */ .ZP, { value: true }, "\u5747\u5206\u6BD4\u4F8B"), /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_32__/* ["default"] */ .ZP, { value: false }, "\u81EA\u5B9A\u4E49\u6BD4\u4F8B"))), !hack.test_set_score && /* @__PURE__ */ React.createElement("div", { style: { marginBottom: "20px", marginTop: "-10px" } }, /* @__PURE__ */ React.createElement("div", { style: { display: "flex", height: "30px", marginBottom: "10px" } }, /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_31__["default"], { checked: isshow, style: { display: "flex", alignItems: "center" }, className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.checkboxs, onChange: (e) => { setisshow(e.target.checked); form.setFieldsValue({ hack: { code_compile_score: 0 } }); if (hack.test_set_average) { if (hack.is_file) { handleUploadRatio(uploadData); } else { onAddTestCases(); } } } }, "\u542F\u7528\u7F16\u8BD1\u901A\u8FC7\u5373\u53EF\u5F97\u5206" ), isshow && /* @__PURE__ */ React.createElement("span", { style: { display: "flex" } }, /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { rules: [{ required: true, message: "\u8BF7\u8F93\u5165\u7F16\u8BD1\u5F97\u5206" }], name: ["hack", "code_compile_score"] }, /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_30__/* ["default"] */ .Z, { onChange: () => { if (hack.test_set_average) { if (hack.is_file) { handleUploadRatio(uploadData); } else { onAddTestCases(); } } }, parser: (e) => { return isNaN(parseInt(e)) ? "" : parseInt(e); }, min: 0, max: 100, style: { width: "90px", margin: "5px 0px" } } ) ), " ", /* @__PURE__ */ React.createElement("span", { style: { display: "flex", alignItems: "center", marginLeft: "5px" } }, "%"))), /* @__PURE__ */ React.createElement("span", { style: { color: "#999", fontSize: "12px", marginLeft: "-8px" } }, "\uFF08\u8BF7\u6CE8\u610F\u8BE5\u5B9E\u8BAD\u9898\u662F\u5426\u6709\u7F16\u8BD1\u8FC7\u7A0B\uFF0C\u82E5\u6CA1\u6709\u5219\u65E0\u6CD5\u83B7\u5F97\u7F16\u8BD1\u5F97\u5206\uFF09")), /* @__PURE__ */ React.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.upBtn }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_27__/* ["default"] */ .ZP, { ghost: true, type: "primary", className: "mb20", onClick: () => setShowUploadFile(true) }, "\u6279\u91CF\u4E0A\u4F20\u6D4B\u8BD5\u7528\u4F8B"), (hack == null ? void 0 : hack.is_file) && /* @__PURE__ */ React.createElement(_pages_Shixuns_Edit_body_Level_Challenges_components_UploadFile__WEBPACK_IMPORTED_MODULE_16__/* .UploadTable */ .Y2, { disabled: hack == null ? void 0 : hack.test_set_average, inputChange: handleInputChange, showScore: !hack.test_set_score, data: uploadData, onRemove: handleRemove })), !hack.is_file && /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_23__["default"].List, { name: "hack_sets" }, (fields, {}) => { return /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_22__["default"], { accordion: true, className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.collapse }, fields.map((field, index) => /* @__PURE__ */ React.createElement( Panel, { key: `${field.key}--${index}`, header: /* @__PURE__ */ React.createElement("a", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z["test-case-name"] }, /* @__PURE__ */ React.createElement("span", null, "\u6D4B\u8BD5\u7528\u4F8B", index + 1), !test_set_score ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { name: [field.name, "score"], style: { marginBottom: 0 }, fieldKey: [field.fieldKey, "score"], rules: [{ required: true, message: `\u8BF7\u8F93\u5165\u6D4B\u8BD5\u96C6${index + 1}\u8BC4\u5206` }] }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_30__/* ["default"] */ .Z, { onClick: onStopPropagation, min: 0, max: 100, disabled: test_set_average }) ), /* @__PURE__ */ React.createElement("span", null, "%")) : null), extra: index > 0 ? /* @__PURE__ */ React.createElement("div", { onClick: onStopPropagation }, /* @__PURE__ */ React.createElement(antd__WEBPACK_IMPORTED_MODULE_34__/* ["default"] */ .Z, { okText: "\u786E\u5B9A", cancelText: "\u53D6\u6D88", title: "\u786E\u5B9A\u5220\u9664\u6D4B\u8BD5\u96C6" + (index + 1), onConfirm: () => { onRemoveTestCase(index); } }, /* @__PURE__ */ React.createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_35__/* ["default"] */ .Z, { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z["btn-remove-case"] }))) : null }, /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { label: "\u8F93\u5165", name: [field.name, "input"], fieldKey: [field.fieldKey, "input"] }, /* @__PURE__ */ React.createElement(TextArea, null) ), /* @__PURE__ */ React.createElement( antd__WEBPACK_IMPORTED_MODULE_23__["default"].Item, { label: "\u8F93\u51FA", name: [field.name, "output"], fieldKey: [field.fieldKey, "output"], rules: [{ required: true, message: "\u8BF7\u8F93\u5165\u8F93\u51FA\u5185\u5BB9" }] }, /* @__PURE__ */ React.createElement(TextArea, null) ) ))); }))), /* @__PURE__ */ React.createElement( _pages_Shixuns_Edit_body_Level_Challenges_components_UploadFile__WEBPACK_IMPORTED_MODULE_16__/* ["default"] */ .ZP, { rootIdentifier: null, visible: showUploadFile, onClose: () => setShowUploadFile(false), onOK: addUploadData, multiple: true, defaultMultipleValue: hack == null ? void 0 : hack.is_file } )); } /***/ }) }]);