|
|
"use strict";
|
|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[86913],{
|
|
|
|
|
|
/***/ 93083:
|
|
|
/*!*************************************************************!*\
|
|
|
!*** ./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/_@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);
|
|
|
;// CONCATENATED MODULE: ./src/components/SplitContainer/index.less
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/components/SplitContainer/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* harmony default export */ var SplitContainer = (function (_ref) {
|
|
|
var _ref$defaultX = _ref.defaultX,
|
|
|
defaultX = _ref$defaultX === void 0 ? '40%' : _ref$defaultX,
|
|
|
leftChild = _ref.leftChild,
|
|
|
rightChild = _ref.rightChild,
|
|
|
className = _ref.className,
|
|
|
_ref$hideResize = _ref.hideResize,
|
|
|
hideResize = _ref$hideResize === void 0 ? false : _ref$hideResize;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(defaultX),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
moveX = _useState2[0],
|
|
|
setMoveX = _useState2[1];
|
|
|
var resizeXFlag = (0,_react_17_0_2_react.useRef)();
|
|
|
function onResizeStart() {
|
|
|
resizeXFlag.current = true;
|
|
|
}
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
function onMove(e) {
|
|
|
if (resizeXFlag.current) {
|
|
|
setMoveX(e.pageX);
|
|
|
}
|
|
|
}
|
|
|
function onMouseUp() {
|
|
|
resizeXFlag.current = false;
|
|
|
}
|
|
|
window.addEventListener('mousemove', onMove);
|
|
|
window.addEventListener('mouseup', onMouseUp);
|
|
|
return function () {
|
|
|
window.removeEventListener('mousemove', onMove);
|
|
|
window.removeEventListener('mouseup', onMouseUp);
|
|
|
};
|
|
|
}, []);
|
|
|
var leftPanelWidth = typeof moveX === 'number' && moveX !== 0.01 ? "".concat(moveX, "px") : defaultX;
|
|
|
var rightPanelWidth = "calc(100% - ".concat(hideResize ? "0px" : "4px", " - ").concat(leftPanelWidth, ")");
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "split-panel-container ".concat(className),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("section", {
|
|
|
style: {
|
|
|
width: leftPanelWidth,
|
|
|
display: moveX === 0.01 ? 'none' : ''
|
|
|
},
|
|
|
children: leftChild
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("section", {
|
|
|
className: "resize-x-bar",
|
|
|
onMouseDown: onResizeStart,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
className: "btn-resize",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("svg", {
|
|
|
width: "16",
|
|
|
height: "13",
|
|
|
viewBox: "0 0 16 13",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("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__*/(0,jsx_runtime.jsx)("section", {
|
|
|
style: {
|
|
|
width: rightPanelWidth
|
|
|
},
|
|
|
children: rightChild
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 93740:
|
|
|
/*!*********************************************************!*\
|
|
|
!*** ./src/components/tpi-code-setting/CodeSetting.tsx ***!
|
|
|
\*********************************************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301);
|
|
|
/* harmony import */ var _index_less__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.less */ 55235);
|
|
|
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd */ 57809);
|
|
|
/* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd */ 78673);
|
|
|
/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react/jsx-runtime */ 37712);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Option = antd__WEBPACK_IMPORTED_MODULE_3__["default"].Option;
|
|
|
/* harmony default export */ __webpack_exports__.Z = (function (_ref) {
|
|
|
var isTheoretical = _ref.isTheoretical,
|
|
|
onFontSizeChange = _ref.onFontSizeChange,
|
|
|
cmFontSize = _ref.cmFontSize,
|
|
|
cmCodeMode = _ref.cmCodeMode,
|
|
|
autoFormat = _ref.autoFormat,
|
|
|
onCodeModeChange = _ref.onCodeModeChange,
|
|
|
onTabToSpace = _ref.onTabToSpace,
|
|
|
onAutoFormat = _ref.onAutoFormat,
|
|
|
formatDocument = _ref.formatDocument,
|
|
|
_ref$className = _ref.className,
|
|
|
className = _ref$className === void 0 ? '' : _ref$className,
|
|
|
tabToSpace = _ref.tabToSpace,
|
|
|
children = _ref.children;
|
|
|
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "tpi-code-setting ".concat(className),
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("h3", {
|
|
|
children: "\u4EE3\u7801\u683C\u5F0F"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("section", {
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u663E\u793A\u6A21\u5F0F"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_3__["default"], {
|
|
|
bordered: false,
|
|
|
size: "small",
|
|
|
value: cmCodeMode,
|
|
|
onChange: onCodeModeChange,
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 'vs',
|
|
|
children: "\u767D\u8272\u80CC\u666F"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 'vs-dark',
|
|
|
children: "\u9ED1\u8272\u80CC\u666F"
|
|
|
})]
|
|
|
})]
|
|
|
}), !isTheoretical && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u5B57\u4F53\u5927\u5C0F"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(antd__WEBPACK_IMPORTED_MODULE_3__["default"], {
|
|
|
bordered: false,
|
|
|
size: "small",
|
|
|
value: cmFontSize,
|
|
|
onChange: onFontSizeChange,
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 12,
|
|
|
children: "12px"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 14,
|
|
|
children: "14px"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 16,
|
|
|
children: "16px"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 18,
|
|
|
children: "18px"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 20,
|
|
|
children: "20px"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(Option, {
|
|
|
value: 22,
|
|
|
children: "22px"
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "Tab\u8F6C\u6362"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)(antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, {
|
|
|
checked: tabToSpace,
|
|
|
onChange: onTabToSpace
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("div", {
|
|
|
className: "file-item",
|
|
|
onClick: formatDocument,
|
|
|
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
style: {
|
|
|
cursor: "pointer"
|
|
|
},
|
|
|
children: "\u683C\u5F0F\u5316\u4EE3\u7801"
|
|
|
})
|
|
|
})]
|
|
|
})]
|
|
|
}), !isTheoretical && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("h3", {
|
|
|
children: "\u5FEB\u6377\u952E"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("section", {
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u4FDD\u5B58\u4EE3\u7801"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
|
|
|
children: "Ctrl + S"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u5524\u51FA\u5FEB\u6377\u952E\u5217\u8868"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
|
|
|
children: "F1 / Alt + F1"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u5DE6\u53F3\u7F29\u8FDB"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
|
|
|
children: "Ctrl + ]/["
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u8DF3\u5230\u5339\u914D\u7684\u62EC\u53F7"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
|
|
|
children: "Ctrl + Shift + \\"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u8F6C\u5230\u884C\u9996"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
|
|
|
children: "Home"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsxs)("div", {
|
|
|
className: "file-item",
|
|
|
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("b", {
|
|
|
children: "\u8F6C\u5230\u884C\u5C3E"
|
|
|
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__.jsx)("span", {
|
|
|
children: "End"
|
|
|
})]
|
|
|
})]
|
|
|
}), children]
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 30454:
|
|
|
/*!************************************************************!*\
|
|
|
!*** ./src/pages/Question/AddOrEdit/index.tsx + 7 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 */ AddOrEdit_Types; },
|
|
|
"default": function() { return /* binding */ AddOrEdit; }
|
|
|
});
|
|
|
|
|
|
// 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/_@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/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/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/Question/AddOrEdit/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var AddOrEditmodules = ({"header":"header___N_IdR","field":"field___XG_dh","oj-form-container":"oj-form-container___syYzK","oj-left-panel":"oj-left-panel___L082x","oj-form-info":"oj-form-info___q0IU5","footer":"footer___pGCM2","result":"result___LM9Ms","passText":"passText___nUoL4","noPassText":"noPassText___ECHHG","pass":"pass___tDubp","noPass":"noPass___ilYvg","test-case-name":"test-case-name___MI_KD","btn-remove-case":"btn-remove-case___OiaTQ","icon-tag":"icon-tag___D86WO","btn_back":"btn_back___FyaSY","testJi":"testJi___NDviK","upBtn":"upBtn___FiZX4","oj-problems":"oj-problems___xb70g","row":"row___v036E","a":"a___yRaYH","b":"b___gWQyu","inputTwo":"inputTwo___IZ9og","inputOne":"inputOne____NmcT","cusModal":"cusModal___fJ5gm","oj-custom-large-spin":"oj-custom-large-spin___Aar0g","MdEditor":"MdEditor___hgoes"});
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 5 modules
|
|
|
var input = __webpack_require__(36920);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
|
|
|
var es_modal = __webpack_require__(43418);
|
|
|
// 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/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/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/spin/index.js + 1 modules
|
|
|
var spin = __webpack_require__(71418);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
|
|
|
var es_button = __webpack_require__(3113);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/table/index.js + 85 modules
|
|
|
var table = __webpack_require__(2595);
|
|
|
// 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/input-number/index.js + 14 modules
|
|
|
var input_number = __webpack_require__(400);
|
|
|
// 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/checkbox/index.js + 3 modules
|
|
|
var es_checkbox = __webpack_require__(24905);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/space/index.js + 3 modules
|
|
|
var space = __webpack_require__(81327);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/popconfirm/index.js + 2 modules
|
|
|
var popconfirm = __webpack_require__(14478);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.23.6@@babel/runtime/helpers/defineProperty.js
|
|
|
var defineProperty = __webpack_require__(85573);
|
|
|
var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty);
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/jsx-runtime.js
|
|
|
var jsx_runtime = __webpack_require__(37712);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/util.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var Option = es_select["default"].Option;
|
|
|
var Keys = /*#__PURE__*/function (Keys) {
|
|
|
Keys[Keys["language"] = 0] = "language";
|
|
|
Keys[Keys["difficulty"] = 1] = "difficulty";
|
|
|
Keys[Keys["category"] = 2] = "category";
|
|
|
Keys[Keys["openOrNot"] = 3] = "openOrNot";
|
|
|
return Keys;
|
|
|
}({});
|
|
|
var Options = defineProperty_default()(defineProperty_default()(defineProperty_default()(defineProperty_default()({}, Keys.language, [{
|
|
|
title: 'C',
|
|
|
key: 'C'
|
|
|
}, {
|
|
|
title: 'C++',
|
|
|
key: 'C++'
|
|
|
}, {
|
|
|
title: 'Python',
|
|
|
key: 'Python'
|
|
|
}, {
|
|
|
title: 'Java',
|
|
|
key: 'Java'
|
|
|
}, {
|
|
|
title: 'JavaScript',
|
|
|
key: 'JavaScript'
|
|
|
}, {
|
|
|
title: 'Ruby',
|
|
|
key: 'Ruby'
|
|
|
}]), Keys.difficulty, [{
|
|
|
title: '简单',
|
|
|
key: 1
|
|
|
}, {
|
|
|
title: '适中',
|
|
|
key: 2
|
|
|
}, {
|
|
|
title: '困难',
|
|
|
key: 3
|
|
|
}]), Keys.category, [{
|
|
|
title: '程序设计',
|
|
|
key: 1
|
|
|
}, {
|
|
|
title: '算法',
|
|
|
key: 2
|
|
|
}]), Keys.openOrNot, [{
|
|
|
title: '公开',
|
|
|
key: 1
|
|
|
}, {
|
|
|
title: '私有',
|
|
|
key: 0
|
|
|
}]);
|
|
|
function getSelectOptions(name) {
|
|
|
return Options[name].map(function (item) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(Option, {
|
|
|
value: item.key,
|
|
|
children: [" ", item.title, " "]
|
|
|
}, item.title);
|
|
|
});
|
|
|
}
|
|
|
function getDisciplineOptions(data, result) {
|
|
|
data.map(function (value) {
|
|
|
var id = value.id,
|
|
|
name = value.name,
|
|
|
sub_disciplines = value.sub_disciplines;
|
|
|
var item = {
|
|
|
value: id,
|
|
|
label: name
|
|
|
};
|
|
|
result.push(item);
|
|
|
if (sub_disciplines && sub_disciplines.length > 0) {
|
|
|
item.children = [];
|
|
|
getDisciplineOptions(sub_disciplines, item.children);
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function getDisciplineIds(data, sub_disciplines_id) {
|
|
|
var rs = [];
|
|
|
for (var index = 0; index < data.length; index++) {
|
|
|
var _value$sub_discipline;
|
|
|
var value = data[index];
|
|
|
if (((_value$sub_discipline = value.sub_disciplines) === null || _value$sub_discipline === void 0 ? void 0 : _value$sub_discipline.length) > 0) {
|
|
|
rs[0] = value.id;
|
|
|
for (var j = 0; j < value.sub_disciplines.length; j++) {
|
|
|
var item = value.sub_disciplines[j];
|
|
|
if (item.id === sub_disciplines_id) {
|
|
|
rs[1] = item.id;
|
|
|
return [rs, item.tag_disciplines || item.sub_disciplines || []];
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
return [rs, []];
|
|
|
}
|
|
|
// EXTERNAL MODULE: ./src/.umi-production/exports.ts
|
|
|
var _umi_production_exports = __webpack_require__(42289);
|
|
|
// EXTERNAL MODULE: ./node_modules/_js-base64@2.6.4@js-base64/base64.js
|
|
|
var base64 = __webpack_require__(24334);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.5.2@@ant-design/icons/es/icons/PoweroffOutlined.js + 1 modules
|
|
|
var PoweroffOutlined = __webpack_require__(15962);
|
|
|
// EXTERNAL MODULE: ./node_modules/_@ant-design_icons@5.5.2@@ant-design/icons/es/icons/CloseCircleOutlined.js + 1 modules
|
|
|
var CloseCircleOutlined = __webpack_require__(2377);
|
|
|
// EXTERNAL MODULE: ./src/components/markdown-editor/index.tsx + 10 modules
|
|
|
var markdown_editor = __webpack_require__(9424);
|
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
|
var fetch = __webpack_require__(5219);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/service.ts
|
|
|
|
|
|
function addProgrammingTopic(params) {
|
|
|
return (0,fetch/* post */.v_)("practices.json", params);
|
|
|
}
|
|
|
function getUser() {
|
|
|
return (0,fetch/* get */.U2)('problems/new.json');
|
|
|
}
|
|
|
function getProgrammingTopic(id) {
|
|
|
return (0,fetch/* get */.U2)("practices/".concat(id, "/edit.json"));
|
|
|
}
|
|
|
function updateProgrammingTopic(id, params) {
|
|
|
return (0,fetch/* put */.gz)("practices/".concat(id), params);
|
|
|
}
|
|
|
function addExerciseQuestion(exerciseId, params) {
|
|
|
return post("exercises/".concat(exerciseId, "/exercise_questions.json"), params);
|
|
|
}
|
|
|
function updateExerciseQuestion(id, params) {
|
|
|
return put("exercise_questions/".concat(id, ".json"), params);
|
|
|
}
|
|
|
// EXTERNAL MODULE: ./src/components/SplitContainer/index.tsx + 1 modules
|
|
|
var SplitContainer = __webpack_require__(93083);
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/drawer/index.js + 9 modules
|
|
|
var drawer = __webpack_require__(43428);
|
|
|
// EXTERNAL MODULE: ./src/components/monaco-editor/index.jsx + 3 modules
|
|
|
var monaco_editor = __webpack_require__(41242);
|
|
|
// EXTERNAL MODULE: ./src/components/tpi-code-setting/CodeSetting.tsx
|
|
|
var CodeSetting = __webpack_require__(93740);
|
|
|
// EXTERNAL MODULE: ./src/components/modal.tsx
|
|
|
var modal = __webpack_require__(42692);
|
|
|
// EXTERNAL MODULE: ./src/utils/urlTool.ts
|
|
|
var urlTool = __webpack_require__(51747);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/CodePanel/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var CodePanelmodules = ({"code-panel-container":"code-panel-container___BZjjl","action-oj-bar":"action-oj-bar___xbXpK","active":"active___EMVKI"});
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/CodePanel/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//@ts-ignore
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var initialState = {
|
|
|
theme: (0,urlTool/* fromStore */.G)('cmCodeMode', 'vs-dark'),
|
|
|
fontSize: (0,urlTool/* fromStore */.G)('cmFontSize', 14),
|
|
|
showEditorSetting: false,
|
|
|
tabToSpace: (0,urlTool/* fromStore */.G)('cmTabToSpace', true)
|
|
|
};
|
|
|
var Types = /*#__PURE__*/function (Types) {
|
|
|
Types[Types["set_font_size"] = 0] = "set_font_size";
|
|
|
Types[Types["set_theme"] = 1] = "set_theme";
|
|
|
Types[Types["on_tab_to_space"] = 2] = "on_tab_to_space";
|
|
|
Types[Types["set_show_editor_setting"] = 3] = "set_show_editor_setting";
|
|
|
return Types;
|
|
|
}(Types || {});
|
|
|
function reducer(state, action) {
|
|
|
switch (action.type) {
|
|
|
case Types.set_show_editor_setting:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
showEditorSetting: action.payload
|
|
|
});
|
|
|
case Types.set_theme:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
theme: action.payload
|
|
|
});
|
|
|
case Types.set_font_size:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
fontSize: action.payload
|
|
|
});
|
|
|
case Types.on_tab_to_space:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
tabToSpace: action.payload
|
|
|
});
|
|
|
default:
|
|
|
throw new Error();
|
|
|
}
|
|
|
}
|
|
|
/* harmony default export */ var CodePanel = (function (_ref) {
|
|
|
var value = _ref.value,
|
|
|
onChange = _ref.onChange,
|
|
|
language = _ref.language,
|
|
|
onLanguage = _ref.onLanguage,
|
|
|
languageItems = _ref.languageItems,
|
|
|
_ref$ActionBarRender = _ref.ActionBarRender,
|
|
|
ActionBarRender = _ref$ActionBarRender === void 0 ? function (onShowCodeSetting) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(DefaultActionBar, {
|
|
|
languageItems: languageItems,
|
|
|
onLanguage: onLanguage,
|
|
|
language: language,
|
|
|
onShowCodeSetting: onShowCodeSetting
|
|
|
});
|
|
|
} : _ref$ActionBarRender;
|
|
|
var _useReducer = (0,_react_17_0_2_react.useReducer)(reducer, initialState),
|
|
|
_useReducer2 = slicedToArray_default()(_useReducer, 2),
|
|
|
state = _useReducer2[0],
|
|
|
dispatch = _useReducer2[1];
|
|
|
var theme = state.theme,
|
|
|
fontSize = state.fontSize,
|
|
|
showEditorSetting = state.showEditorSetting,
|
|
|
tabToSpace = state.tabToSpace;
|
|
|
console.log(value, language, 'value');
|
|
|
var codeSettingOption = {
|
|
|
onFontSizeChange: function onFontSizeChange(val) {
|
|
|
dispatch({
|
|
|
type: Types.set_font_size,
|
|
|
payload: val
|
|
|
});
|
|
|
(0,urlTool/* toStore */.t)('cmFontSize', val);
|
|
|
},
|
|
|
tabToSpace: tabToSpace,
|
|
|
cmFontSize: fontSize,
|
|
|
className: 'oj',
|
|
|
cmCodeMode: theme,
|
|
|
onTabToSpace: function onTabToSpace(checked) {
|
|
|
dispatch({
|
|
|
type: Types.on_tab_to_space,
|
|
|
payload: checked
|
|
|
});
|
|
|
(0,urlTool/* toStore */.t)('cmTabToSpace', checked);
|
|
|
},
|
|
|
onCodeModeChange: function onCodeModeChange(val) {
|
|
|
dispatch({
|
|
|
type: Types.set_theme,
|
|
|
payload: val
|
|
|
});
|
|
|
(0,urlTool/* toStore */.t)('cmCodeMode', val);
|
|
|
}
|
|
|
};
|
|
|
function onHideCodeSetting() {
|
|
|
dispatch({
|
|
|
type: Types.set_show_editor_setting,
|
|
|
payload: false
|
|
|
});
|
|
|
}
|
|
|
function onShowCodeSetting() {
|
|
|
dispatch({
|
|
|
type: Types.set_show_editor_setting,
|
|
|
payload: true
|
|
|
});
|
|
|
}
|
|
|
var editorOption = {
|
|
|
value: value,
|
|
|
language: language,
|
|
|
onChange: onChange,
|
|
|
theme: theme,
|
|
|
height: 'calc(100% - 56px)',
|
|
|
options: {
|
|
|
fontSize: fontSize,
|
|
|
insertSpaces: tabToSpace
|
|
|
}
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: CodePanelmodules["code-panel-container"],
|
|
|
children: [ActionBarRender(onShowCodeSetting), /*#__PURE__*/(0,jsx_runtime.jsx)(monaco_editor/* default */.ZP, objectSpread2_default()({}, editorOption), language)]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(modal/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(drawer/* default */.Z, {
|
|
|
rootClassName: "oj",
|
|
|
title: null,
|
|
|
placement: "right",
|
|
|
closable: false,
|
|
|
open: showEditorSetting,
|
|
|
onClose: onHideCodeSetting,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(CodeSetting/* default */.Z, objectSpread2_default()({}, codeSettingOption))
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
function DefaultActionBar(_ref2) {
|
|
|
var languageItems = _ref2.languageItems,
|
|
|
language = _ref2.language,
|
|
|
onShowCodeSetting = _ref2.onShowCodeSetting,
|
|
|
onLanguage = _ref2.onLanguage;
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: CodePanelmodules["action-oj-bar"],
|
|
|
children: [languageItems === null || languageItems === void 0 ? void 0 : languageItems.map(function (e) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: language === (e === null || e === void 0 ? void 0 : e.language) ? CodePanelmodules.active : '',
|
|
|
onClick: function onClick() {
|
|
|
return onLanguage(e === null || e === void 0 ? void 0 : e.language);
|
|
|
},
|
|
|
children: e === null || e === void 0 ? void 0 : e.language
|
|
|
}, e === null || e === void 0 ? void 0 : e.language);
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("a", {
|
|
|
onClick: onShowCodeSetting,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-shezhi"
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
}
|
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tabs/index.js + 24 modules
|
|
|
var tabs = __webpack_require__(99313);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/ManageModal/index.less?modules
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
/* harmony default export */ var ManageModalmodules = ({"flex_box_center":"flex_box_center___4yAaY","flex_space_between":"flex_space_between___YaUgM","flex_box_vertical_center":"flex_box_vertical_center___zR3dp","flex_box_center_end":"flex_box_center_end___rwgS5","flex_box_column":"flex_box_column___LhFeP","wrap":"wrap___xTL91","in":"in___eSY86","btns":"btns___UdEGI","customModal":"customModal___CL0OL"});
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/ManageModal/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var ManageModal = function ManageModal(_ref) {
|
|
|
var visible = _ref.visible,
|
|
|
onOK = _ref.onOK,
|
|
|
onCancel = _ref.onCancel;
|
|
|
var _useState = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState2 = slicedToArray_default()(_useState, 2),
|
|
|
loading = _useState2[0],
|
|
|
setLoading = _useState2[1];
|
|
|
var _useState3 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
btnLoading = _useState4[0],
|
|
|
setBtnLoading = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)('1'),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
active = _useState6[0],
|
|
|
setActive = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)(''),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
text = _useState8[0],
|
|
|
setText = _useState8[1];
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
dataSource = _useState10[0],
|
|
|
setDataSource = _useState10[1];
|
|
|
var add = /*#__PURE__*/function () {
|
|
|
var _ref2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
if (text) {
|
|
|
_context.next = 3;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.warning("\u9898\u76EE".concat(title, "\u4E0D\u80FD\u4E3A\u7A7A"));
|
|
|
return _context.abrupt("return");
|
|
|
case 3:
|
|
|
setBtnLoading(true);
|
|
|
_context.next = 6;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
target: visible,
|
|
|
name: text
|
|
|
}
|
|
|
});
|
|
|
case 6:
|
|
|
res = _context.sent;
|
|
|
if (!((res === null || res === void 0 ? void 0 : res.status) === 0)) {
|
|
|
_context.next = 10;
|
|
|
break;
|
|
|
}
|
|
|
onOK();
|
|
|
return _context.abrupt("return");
|
|
|
case 10:
|
|
|
setBtnLoading(false);
|
|
|
case 11:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function add() {
|
|
|
return _ref2.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var getPointData = /*#__PURE__*/function () {
|
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
|
|
|
var search,
|
|
|
res,
|
|
|
_args2 = arguments;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
search = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : '';
|
|
|
setLoading(true);
|
|
|
_context2.next = 4;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", {
|
|
|
method: 'get',
|
|
|
params: {
|
|
|
target: visible,
|
|
|
search: search
|
|
|
}
|
|
|
});
|
|
|
case 4:
|
|
|
res = _context2.sent;
|
|
|
setDataSource(res.tag_disciplines || []);
|
|
|
setLoading(false);
|
|
|
case 7:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
}));
|
|
|
return function getPointData() {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var rename = function rename(r) {
|
|
|
var text = r.name;
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
className: 'custom-modal-divider',
|
|
|
centered: true,
|
|
|
title: '重命名',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
defaultValue: text,
|
|
|
placeholder: "\u8BF7\u8F93\u5165".concat(title, "\u540D\u79F0\uFF0C\u4E0D\u8D85\u8FC720\u4E2A\u5B57"),
|
|
|
maxLength: 20,
|
|
|
onChange: function onChange(e) {
|
|
|
text = e.target.value;
|
|
|
}
|
|
|
})
|
|
|
}),
|
|
|
okText: '确认',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
if (text) {
|
|
|
_context3.next = 3;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.warning("\u9898\u76EE".concat(title, "\u4E0D\u80FD\u4E3A\u7A7A"));
|
|
|
return _context3.abrupt("return", Promise.reject());
|
|
|
case 3:
|
|
|
_context3.next = 5;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines/".concat(r.id, "/rename.json"), {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
id: r.id,
|
|
|
name: text
|
|
|
}
|
|
|
});
|
|
|
case 5:
|
|
|
res = _context3.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
getPointData();
|
|
|
}
|
|
|
case 7:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
};
|
|
|
var del = function del(r) {
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
className: 'custom-modal-divider',
|
|
|
centered: true,
|
|
|
width: 570,
|
|
|
title: '删除',
|
|
|
content: visible === 'practice' ? /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: ["\u786E\u8BA4\u5C06\u9898\u76EE\u6765\u6E90\u201C", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "c-light-primary",
|
|
|
children: r.name
|
|
|
}), "\u201D\u5220\u9664\u5417\uFF1F", /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), "\u5220\u9664\u540E\uFF0C\u4F1A\u5C06\u76F8\u5173\u9898\u76EE\u4E2D\u7684\u6765\u6E90\u8FDB\u884C\u6E05\u9664\u3002"]
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: ["\u786E\u8BA4\u5C06\u9898\u76EE\u77E5\u8BC6\u70B9\u201C", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "c-light-primary",
|
|
|
children: r.name
|
|
|
}), "\u201D\u5220\u9664\u5417\uFF1F", /*#__PURE__*/(0,jsx_runtime.jsx)("br", {}), "\u5220\u9664\u540E\uFF0C\u4F1A\u5C06\u76F8\u5173\u9898\u76EE\u4E2D\u7684\u77E5\u8BC6\u70B9\u8FDB\u884C\u6E05\u9664\u3002"]
|
|
|
}),
|
|
|
okText: '确认',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
_context4.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines/".concat(r.id, ".json"), {
|
|
|
method: 'delete',
|
|
|
body: {
|
|
|
id: r.id
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context4.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
getPointData();
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk2.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
};
|
|
|
var handleSearch = function handleSearch(e) {
|
|
|
getPointData(e);
|
|
|
};
|
|
|
var title = visible === 'practice' ? '知识点' : '来源';
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
|
afterClose: function afterClose() {
|
|
|
setBtnLoading(false);
|
|
|
setLoading(false);
|
|
|
setText('');
|
|
|
setActive('1');
|
|
|
setDataSource([]);
|
|
|
},
|
|
|
centered: true,
|
|
|
keyboard: false,
|
|
|
width: 600,
|
|
|
title: "".concat(title, "\u7BA1\u7406"),
|
|
|
open: !!visible,
|
|
|
className: ManageModalmodules.customModal,
|
|
|
footer: null,
|
|
|
onCancel: onCancel,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("section", {
|
|
|
className: ManageModalmodules.wrap,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(tabs/* default */.Z, {
|
|
|
activeKey: active,
|
|
|
onChange: function onChange(key) {
|
|
|
setText('');
|
|
|
setActive(key);
|
|
|
getPointData();
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(tabs/* default */.Z.TabPane, {
|
|
|
tab: "\u65B0\u589E".concat(title),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
value: text,
|
|
|
onChange: function onChange(e) {
|
|
|
return setText(e.target.value);
|
|
|
},
|
|
|
className: ManageModalmodules["in"],
|
|
|
placeholder: "\u8F93\u5165".concat(title, "\u540D\u79F0\uFF0C\u4E0D\u8D85\u8FC720\u4E2A\u5B57"),
|
|
|
maxLength: 20
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: ManageModalmodules.btns,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
onClick: onCancel,
|
|
|
className: "mr20",
|
|
|
children: "\u53D6\u6D88 "
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
loading: btnLoading,
|
|
|
onClick: add,
|
|
|
type: "primary",
|
|
|
children: "\u786E\u8BA4\u65B0\u5EFA"
|
|
|
})]
|
|
|
})]
|
|
|
}, "1"), /*#__PURE__*/(0,jsx_runtime.jsxs)(tabs/* default */.Z.TabPane, {
|
|
|
tab: "\u5DF2\u6709".concat(title),
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z.Search, {
|
|
|
allowClear: true,
|
|
|
onSearch: handleSearch,
|
|
|
value: text,
|
|
|
onChange: function onChange(e) {
|
|
|
return setText(e.target.value);
|
|
|
},
|
|
|
className: ManageModalmodules["in"],
|
|
|
placeholder: "\u8F93\u5165".concat(title, "\u540D\u79F0\u8FDB\u884C\u67E5\u8BE2")
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, {
|
|
|
dataSource: dataSource,
|
|
|
bordered: false,
|
|
|
loading: loading,
|
|
|
scroll: dataSource.length > 7 ? {
|
|
|
y: 300
|
|
|
} : {},
|
|
|
style: {
|
|
|
padding: '0 0px 20px 0px'
|
|
|
},
|
|
|
columns: [{
|
|
|
title: "".concat(title, "\u540D\u79F0"),
|
|
|
dataIndex: 'name',
|
|
|
ellipsis: true
|
|
|
}, {
|
|
|
title: '操作',
|
|
|
dataIndex: 'action',
|
|
|
width: 120,
|
|
|
render: function render(v, r) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
onClick: function onClick() {
|
|
|
return rename(r);
|
|
|
},
|
|
|
className: "current mr10 c-light-primary",
|
|
|
children: "\u91CD\u547D\u540D"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
onClick: function onClick() {
|
|
|
return del(r);
|
|
|
},
|
|
|
className: "current c-grey-666",
|
|
|
children: "\u5220\u9664"
|
|
|
})]
|
|
|
});
|
|
|
}
|
|
|
}],
|
|
|
pagination: false
|
|
|
})]
|
|
|
}, "2")]
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
/* harmony default export */ var AddOrEdit_ManageModal = (ManageModal);
|
|
|
// EXTERNAL MODULE: ./src/utils/env.ts + 1 modules
|
|
|
var env = __webpack_require__(22805);
|
|
|
// EXTERNAL MODULE: ./src/pages/Shixuns/Edit/body/Level/Challenges/components/UploadFile/index.tsx + 2 modules
|
|
|
var UploadFile = __webpack_require__(41447);
|
|
|
// EXTERNAL MODULE: ./node_modules/_dayjs@1.11.13@dayjs/dayjs.min.js
|
|
|
var dayjs_min = __webpack_require__(61186);
|
|
|
var dayjs_min_default = /*#__PURE__*/__webpack_require__.n(dayjs_min);
|
|
|
// EXTERNAL MODULE: ./src/utils/util.tsx
|
|
|
var util = __webpack_require__(69824);
|
|
|
// EXTERNAL MODULE: ./src/components/RenderHtml/index.tsx + 2 modules
|
|
|
var RenderHtml = __webpack_require__(73618);
|
|
|
// EXTERNAL MODULE: ./src/utils/authority.ts
|
|
|
var authority = __webpack_require__(30400);
|
|
|
;// CONCATENATED MODULE: ./src/pages/Question/AddOrEdit/index.tsx
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//@ts-ignore
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var TextArea = input/* default */.Z.TextArea;
|
|
|
var AddOrEdit_confirm = es_modal/* default */.Z.confirm;
|
|
|
var Panel = collapse/* default */.Z.Panel;
|
|
|
var AddOrEdit_initialState = {
|
|
|
loading: true,
|
|
|
user: null,
|
|
|
status: 0,
|
|
|
data: undefined,
|
|
|
lastedUpdateTime: 0
|
|
|
};
|
|
|
var AddOrEdit_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;
|
|
|
}({});
|
|
|
var initText = '#### 题目描述\n现有一个整型数组 `nums`,请编写程序将数组 `nums` 中的所有 `$$0$$` 移动到数组的末尾,但不改变非零元素在数组中的相对位置。请在原数组 `nums` 上进行操作。\n#### 输入输出格式\n**输入格式**\n第一行有一个整数 `numsSize`,表示数组 `nums` 的大小;\n第二行有 `numsSize` 个整数,表示数组 `nums` 的所有元素,每个整数用一个空格隔开。\n**输出格式**\n一行输出数组 `nums` 的所有元素,有 `numsSize` 个整数,每个整数用一个空格隔开。\n#### 输入输出样例1\n**输入**\n`4`\n`0 1 2 3`\n**输出**\n`1 2 3 0`\n**解释(可选)**\nXXXXX\n#### 输入输出样例2\n**输入**\n`5`\n`1 1 0 1 0`\n**输出**\n`1 1 1 0 0`\n**解释(可选)**\nXXXXX\n#### 说明提示\n-`1≤n≤100`';
|
|
|
function AddOrEdit_reducer(state, action) {
|
|
|
switch (action.type) {
|
|
|
case AddOrEdit_Types.SET_INITAL_DATA:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), action.payload);
|
|
|
case AddOrEdit_Types.SET_LOADING:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
loading: action.payload
|
|
|
});
|
|
|
case AddOrEdit_Types.SET_STATUS:
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, state), {}, {
|
|
|
status: action.payload
|
|
|
});
|
|
|
default:
|
|
|
throw new Error();
|
|
|
}
|
|
|
}
|
|
|
/* harmony default export */ var AddOrEdit = (function () {
|
|
|
var _data$hack, _data$hack2, _languageItems$find;
|
|
|
var location = (0,_umi_production_exports.useLocation)();
|
|
|
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)(false),
|
|
|
_useState4 = slicedToArray_default()(_useState3, 2),
|
|
|
visible = _useState4[0],
|
|
|
setVisible = _useState4[1];
|
|
|
var _useState5 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState6 = slicedToArray_default()(_useState5, 2),
|
|
|
uploadData = _useState6[0],
|
|
|
setUploadData = _useState6[1];
|
|
|
var _useState7 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState8 = slicedToArray_default()(_useState7, 2),
|
|
|
pointData = _useState8[0],
|
|
|
setPointData = _useState8[1];
|
|
|
var _useState9 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState10 = slicedToArray_default()(_useState9, 2),
|
|
|
sourceData = _useState10[0],
|
|
|
setSourceData = _useState10[1];
|
|
|
var _useState11 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState12 = slicedToArray_default()(_useState11, 2),
|
|
|
dataSource = _useState12[0],
|
|
|
setDataSource = _useState12[1];
|
|
|
var _useState13 = (0,_react_17_0_2_react.useState)([]),
|
|
|
_useState14 = slicedToArray_default()(_useState13, 2),
|
|
|
languageItems = _useState14[0],
|
|
|
setLanguageItems = _useState14[1];
|
|
|
var _useState15 = (0,_react_17_0_2_react.useState)('C'),
|
|
|
_useState16 = slicedToArray_default()(_useState15, 2),
|
|
|
language = _useState16[0],
|
|
|
setLanguage = _useState16[1];
|
|
|
var _useReducer = (0,_react_17_0_2_react.useReducer)(AddOrEdit_reducer, AddOrEdit_initialState),
|
|
|
_useReducer2 = slicedToArray_default()(_useReducer, 2),
|
|
|
state = _useReducer2[0],
|
|
|
dispatch = _useReducer2[1];
|
|
|
var loading = state.loading,
|
|
|
data = state.data,
|
|
|
user = state.user,
|
|
|
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 _useState17 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState18 = slicedToArray_default()(_useState17, 2),
|
|
|
ischecked = _useState18[0],
|
|
|
setischecked = _useState18[1];
|
|
|
var saveLanguageItems = (0,_react_17_0_2_react.useRef)([]);
|
|
|
var _useState19 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState20 = slicedToArray_default()(_useState19, 2),
|
|
|
btnOneLoading = _useState20[0],
|
|
|
setBtnOneLoading = _useState20[1];
|
|
|
var _useState21 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState22 = slicedToArray_default()(_useState21, 2),
|
|
|
btnTwoLoading = _useState22[0],
|
|
|
setBtnTwoLoading = _useState22[1];
|
|
|
var btnClickStatus = (0,_react_17_0_2_react.useRef)(true);
|
|
|
var _useState23 = (0,_react_17_0_2_react.useState)({}),
|
|
|
_useState24 = slicedToArray_default()(_useState23, 2),
|
|
|
reviewData = _useState24[0],
|
|
|
setReviewData = _useState24[1];
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
(0,_umi_production_exports.getDvaApp)()._store.dispatch({
|
|
|
type: 'globalSetting/headerFooterToggle',
|
|
|
payload: false
|
|
|
});
|
|
|
(0,_umi_production_exports.getDvaApp)()._store.dispatch({
|
|
|
type: 'globalSetting/onlyShowBackTopToggle',
|
|
|
payload: true
|
|
|
});
|
|
|
return function () {
|
|
|
(0,_umi_production_exports.getDvaApp)()._store.dispatch({
|
|
|
type: 'globalSetting/headerFooterToggle',
|
|
|
payload: true
|
|
|
});
|
|
|
(0,_umi_production_exports.getDvaApp)()._store.dispatch({
|
|
|
type: 'globalSetting/onlyShowBackTopToggle',
|
|
|
payload: false
|
|
|
});
|
|
|
};
|
|
|
}, []);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
setTimeout(function () {
|
|
|
document.title = '在线刷题';
|
|
|
}, 400);
|
|
|
});
|
|
|
var getPointData = /*#__PURE__*/function () {
|
|
|
var _ref = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee() {
|
|
|
var res1, res2;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee$(_context) {
|
|
|
while (1) switch (_context.prev = _context.next) {
|
|
|
case 0:
|
|
|
_context.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", {
|
|
|
method: 'get',
|
|
|
params: {
|
|
|
target: 'practice'
|
|
|
// position: 'index'
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res1 = _context.sent;
|
|
|
_context.next = 5;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", {
|
|
|
method: 'get',
|
|
|
params: {
|
|
|
target: 'practice_source'
|
|
|
// position: 'index'
|
|
|
}
|
|
|
});
|
|
|
case 5:
|
|
|
res2 = _context.sent;
|
|
|
setPointData(res1.tag_disciplines || []);
|
|
|
setSourceData(res2.tag_disciplines || []);
|
|
|
case 8:
|
|
|
case "end":
|
|
|
return _context.stop();
|
|
|
}
|
|
|
}, _callee);
|
|
|
}));
|
|
|
return function getPointData() {
|
|
|
return _ref.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var initLanguage = [{
|
|
|
language: 'C',
|
|
|
code: ''
|
|
|
}, {
|
|
|
language: 'C++',
|
|
|
code: ''
|
|
|
}, {
|
|
|
language: 'Java',
|
|
|
code: ''
|
|
|
}, {
|
|
|
language: 'Python',
|
|
|
code: ''
|
|
|
}];
|
|
|
var initData = (0,_react_17_0_2_react.useCallback)( /*#__PURE__*/asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee2() {
|
|
|
var response, _user, _language, _hack_sets, practice_codes, description, difficulty, name, open_or_not, time_limit, _test_set_average, test_set_score, _status, tag_discipline_ids, source_discipline_ids, item_banks_group_id, _response$is_file, is_file, hide_actual_output, review_privilege, review_description, review, new_hack_sets, rs, newCodes, _yield$getUser, _user2;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee2$(_context2) {
|
|
|
while (1) switch (_context2.prev = _context2.next) {
|
|
|
case 0:
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_LOADING,
|
|
|
payload: true
|
|
|
});
|
|
|
if (!id) {
|
|
|
_context2.next = 19;
|
|
|
break;
|
|
|
}
|
|
|
_context2.next = 4;
|
|
|
return getProgrammingTopic(id);
|
|
|
case 4:
|
|
|
response = _context2.sent;
|
|
|
_user = response.user, _language = response.language, _hack_sets = response.practice_sets, practice_codes = response.practice_codes, description = response.description, difficulty = response.difficulty, name = response.name, open_or_not = response.open_or_not, time_limit = response.time_limit, _test_set_average = response.test_set_average, test_set_score = response.test_set_score, _status = response.status, tag_discipline_ids = response.tag_discipline_ids, source_discipline_ids = response.source_discipline_ids, item_banks_group_id = response.item_banks_group_id, _response$is_file = response.is_file, is_file = _response$is_file === void 0 ? false : _response$is_file, hide_actual_output = response.hide_actual_output, review_privilege = response.review_privilege, review_description = response.review_description;
|
|
|
review = {
|
|
|
review_privilege: review_privilege,
|
|
|
status: _status,
|
|
|
review_description: review_description,
|
|
|
name: name
|
|
|
};
|
|
|
setReviewData(review);
|
|
|
setischecked(hide_actual_output);
|
|
|
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([]);
|
|
|
}
|
|
|
//@ts-ignore
|
|
|
rs = {
|
|
|
loading: true,
|
|
|
user: _user,
|
|
|
status: _status,
|
|
|
data: {
|
|
|
hack: {
|
|
|
difficulty: difficulty,
|
|
|
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,
|
|
|
tag_discipline_ids: tag_discipline_ids,
|
|
|
source_discipline_ids: source_discipline_ids,
|
|
|
is_file: is_file
|
|
|
},
|
|
|
hack_sets: new_hack_sets
|
|
|
}
|
|
|
};
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_INITAL_DATA,
|
|
|
payload: rs
|
|
|
});
|
|
|
setFormValue({
|
|
|
hack: {
|
|
|
difficulty: difficulty,
|
|
|
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,
|
|
|
tag_discipline_ids: tag_discipline_ids,
|
|
|
source_discipline_ids: source_discipline_ids,
|
|
|
is_file: is_file
|
|
|
}
|
|
|
});
|
|
|
newCodes = practice_codes === null || practice_codes === void 0 ? void 0 : practice_codes.map(function (e) {
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, e), {}, {
|
|
|
code: base64.Base64.decode(e === null || e === void 0 ? void 0 : e.code)
|
|
|
});
|
|
|
});
|
|
|
setLanguageItems(newCodes);
|
|
|
saveLanguageItems.current = newCodes;
|
|
|
_context2.next = 27;
|
|
|
break;
|
|
|
case 19:
|
|
|
_context2.next = 21;
|
|
|
return getUser();
|
|
|
case 21:
|
|
|
_yield$getUser = _context2.sent;
|
|
|
_user2 = _yield$getUser.user;
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_INITAL_DATA,
|
|
|
payload: {
|
|
|
loading: true,
|
|
|
status: 0,
|
|
|
user: _user2,
|
|
|
data: {
|
|
|
hack: {
|
|
|
difficulty: '',
|
|
|
time_limit: 3,
|
|
|
description: initText,
|
|
|
test_set_score: true,
|
|
|
test_set_average: true,
|
|
|
open_or_not: true,
|
|
|
name: '',
|
|
|
is_file: false
|
|
|
},
|
|
|
hack_sets: [{
|
|
|
input: '',
|
|
|
output: '',
|
|
|
score: 100,
|
|
|
position: 1
|
|
|
}]
|
|
|
}
|
|
|
}
|
|
|
});
|
|
|
setFormValue({
|
|
|
hack: {
|
|
|
difficulty: '',
|
|
|
time_limit: 3,
|
|
|
description: '',
|
|
|
test_set_average: true,
|
|
|
open_or_not: true,
|
|
|
name: '',
|
|
|
is_file: false
|
|
|
}
|
|
|
});
|
|
|
setLanguageItems(initLanguage);
|
|
|
saveLanguageItems.current = initLanguage;
|
|
|
case 27:
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_LOADING,
|
|
|
payload: false
|
|
|
});
|
|
|
case 28:
|
|
|
case "end":
|
|
|
return _context2.stop();
|
|
|
}
|
|
|
}, _callee2);
|
|
|
})), [id]);
|
|
|
(0,_react_17_0_2_react.useEffect)(function () {
|
|
|
try {
|
|
|
initData();
|
|
|
getPointData();
|
|
|
} catch (error) {
|
|
|
console.log(error, '----');
|
|
|
}
|
|
|
}, []);
|
|
|
function onSubmit(_x, _x2) {
|
|
|
return _onSubmit.apply(this, arguments);
|
|
|
}
|
|
|
function _onSubmit() {
|
|
|
_onSubmit = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee8(values, type) {
|
|
|
var _res;
|
|
|
var _values, hack_sets, hack, update_hack_sets, new_hack_sets, sumScore, new_list, _iterator, _step, item, res, newLanguageItems, _res2, _res3, _res4, _res5;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee8$(_context8) {
|
|
|
while (1) switch (_context8.prev = _context8.next) {
|
|
|
case 0:
|
|
|
_values = objectSpread2_default()({}, values), hack_sets = _values.hack_sets, hack = _values.hack;
|
|
|
hack.hide_actual_output = ischecked;
|
|
|
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) {
|
|
|
_context8.next = 11;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.error('测试集不能为空');
|
|
|
return _context8.abrupt("return");
|
|
|
case 11:
|
|
|
if (!(sumScore !== 100 && !hack.test_set_score)) {
|
|
|
_context8.next = 14;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.error('测试集的评分占比之和必须等于100');
|
|
|
return _context8.abrupt("return");
|
|
|
case 14:
|
|
|
if (!(new_list !== null && new_list !== void 0 && new_list.some(function (e) {
|
|
|
return !e.output;
|
|
|
}))) {
|
|
|
_context8.next = 17;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.error('测试集输出不能为空');
|
|
|
return _context8.abrupt("return");
|
|
|
case 17:
|
|
|
if (btnClickStatus.current) {
|
|
|
setBtnOneLoading(true);
|
|
|
} else {
|
|
|
setBtnTwoLoading(true);
|
|
|
}
|
|
|
//编辑
|
|
|
newLanguageItems = languageItems === null || languageItems === void 0 ? void 0 : languageItems.map(function (e) {
|
|
|
return objectSpread2_default()(objectSpread2_default()({}, e), {}, {
|
|
|
code: base64.Base64.encode(e === null || e === void 0 ? void 0 : e.code)
|
|
|
});
|
|
|
});
|
|
|
if (!id) {
|
|
|
_context8.next = 25;
|
|
|
break;
|
|
|
}
|
|
|
_context8.next = 22;
|
|
|
return updateProgrammingTopic(id, {
|
|
|
practice: hack,
|
|
|
practice_codes: newLanguageItems,
|
|
|
practice_sets: new_hack_sets,
|
|
|
update_practice_sets: update_hack_sets
|
|
|
});
|
|
|
case 22:
|
|
|
res = _context8.sent;
|
|
|
_context8.next = 28;
|
|
|
break;
|
|
|
case 25:
|
|
|
_context8.next = 27;
|
|
|
return addProgrammingTopic({
|
|
|
practice: hack,
|
|
|
practice_codes: newLanguageItems,
|
|
|
practice_sets: new_list,
|
|
|
publish: !btnClickStatus.current
|
|
|
});
|
|
|
case 27:
|
|
|
res = _context8.sent;
|
|
|
case 28:
|
|
|
setBtnOneLoading(false);
|
|
|
setBtnTwoLoading(false);
|
|
|
if (!(((_res = res) === null || _res === void 0 ? void 0 : _res.status) === 0)) {
|
|
|
_context8.next = 46;
|
|
|
break;
|
|
|
}
|
|
|
if (!((_res2 = res) !== null && _res2 !== void 0 && (_res2 = _res2.similar_practice) !== null && _res2 !== void 0 && _res2.length)) {
|
|
|
_context8.next = 35;
|
|
|
break;
|
|
|
}
|
|
|
setVisible(true);
|
|
|
setDataSource((_res3 = res) === null || _res3 === void 0 ? void 0 : _res3.similar_practice);
|
|
|
return _context8.abrupt("return");
|
|
|
case 35:
|
|
|
if (!id) {
|
|
|
_context8.next = 44;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.success('保存成功');
|
|
|
if (btnClickStatus.current) {
|
|
|
_context8.next = 42;
|
|
|
break;
|
|
|
}
|
|
|
_context8.next = 40;
|
|
|
return (0,fetch/* default */.ZP)("/api/practices/".concat(id, "/start"), {
|
|
|
method: 'get'
|
|
|
});
|
|
|
case 40:
|
|
|
_res4 = _context8.sent;
|
|
|
if ((_res4 === null || _res4 === void 0 ? void 0 : _res4.status) === 0) {
|
|
|
_umi_production_exports.history.push("/problems/".concat(_res4 === null || _res4 === void 0 ? void 0 : _res4.identifier, "/oj/").concat(id));
|
|
|
}
|
|
|
case 42:
|
|
|
_context8.next = 46;
|
|
|
break;
|
|
|
case 44:
|
|
|
message/* default */.ZP.success('新建成功');
|
|
|
_umi_production_exports.history.replace("/problems/".concat((_res5 = res) === null || _res5 === void 0 ? void 0 : _res5.identifier, "/ojedit"));
|
|
|
case 46:
|
|
|
case "end":
|
|
|
return _context8.stop();
|
|
|
}
|
|
|
}, _callee8);
|
|
|
}));
|
|
|
return _onSubmit.apply(this, arguments);
|
|
|
}
|
|
|
function onBack() {
|
|
|
_umi_production_exports.history.replace('/problems');
|
|
|
}
|
|
|
var handleUploadRatio = function handleUploadRatio(testSetData) {
|
|
|
var score = Math.floor(100 / testSetData.length);
|
|
|
var lastScore = score + 100 % testSetData.length;
|
|
|
testSetData = 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(testSetData);
|
|
|
};
|
|
|
function onChangeScore(e) {
|
|
|
if (!e.target.value) {
|
|
|
handleUploadRatio(uploadData);
|
|
|
}
|
|
|
dispatch({
|
|
|
type: AddOrEdit_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: AddOrEdit_Types.SET_INITAL_DATA,
|
|
|
payload: {
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, {
|
|
|
is_file: e.target.value
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function onChangehide(e) {
|
|
|
setischecked(e.target.checked);
|
|
|
}
|
|
|
function onChangeAverage(e) {
|
|
|
var value = e.target.value;
|
|
|
if (value) {
|
|
|
handleUploadRatio(uploadData);
|
|
|
}
|
|
|
dispatch({
|
|
|
type: AddOrEdit_Types.SET_INITAL_DATA,
|
|
|
payload: {
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
hack: objectSpread2_default()(objectSpread2_default()({}, data.hack), {}, {
|
|
|
test_set_average: value
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
function onAddTestCase() {
|
|
|
var rs = form.getFieldValue('hack_sets');
|
|
|
var len = rs.length + 1;
|
|
|
var averageMark = Math.floor(100 / len);
|
|
|
var remainder = 100 % 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: AddOrEdit_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 len = hack_sets === null || hack_sets === void 0 ? void 0 : hack_sets.length;
|
|
|
var averageMark = Math.floor(100 / len);
|
|
|
var remainder = 100 % 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: AddOrEdit_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 len = (sets === null || sets === void 0 ? void 0 : sets.length) - 1;
|
|
|
var averageMark = Math.ceil(100 / len);
|
|
|
var remainder = 100 % 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: AddOrEdit_Types.SET_INITAL_DATA,
|
|
|
payload: {
|
|
|
data: objectSpread2_default()(objectSpread2_default()({}, data), {}, {
|
|
|
hack_sets: sets
|
|
|
})
|
|
|
}
|
|
|
});
|
|
|
form.setFieldsValue({
|
|
|
hack_sets: sets
|
|
|
});
|
|
|
}
|
|
|
function onChangeLanguage(language) {
|
|
|
setLanguage(language);
|
|
|
}
|
|
|
var onChangeLanguageValue = function onChangeLanguageValue(e) {
|
|
|
var _saveLanguageItems$cu;
|
|
|
var index = (_saveLanguageItems$cu = saveLanguageItems.current) === null || _saveLanguageItems$cu === void 0 ? void 0 : _saveLanguageItems$cu.findIndex(function (e) {
|
|
|
return e.language === language;
|
|
|
});
|
|
|
saveLanguageItems.current[index].code = e;
|
|
|
setLanguageItems(saveLanguageItems.current);
|
|
|
};
|
|
|
var handleValuesChange = function handleValuesChange(changedValues) {
|
|
|
setFormValue(objectSpread2_default()({}, form.getFieldsValue()));
|
|
|
};
|
|
|
var skip = /*#__PURE__*/function () {
|
|
|
var _ref3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee3(v) {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee3$(_context3) {
|
|
|
while (1) switch (_context3.prev = _context3.next) {
|
|
|
case 0:
|
|
|
_context3.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/practices/".concat(v, "/start"), {
|
|
|
method: 'get'
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context3.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
(0,util/* openNewWindow */.xg)("/problems/".concat(res === null || res === void 0 ? void 0 : res.identifier, "/oj/").concat(v));
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context3.stop();
|
|
|
}
|
|
|
}, _callee3);
|
|
|
}));
|
|
|
return function skip(_x3) {
|
|
|
return _ref3.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var getPassResult = /*#__PURE__*/function () {
|
|
|
var _ref4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee4() {
|
|
|
var response, name, status, review_privilege, review_description, review;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee4$(_context4) {
|
|
|
while (1) switch (_context4.prev = _context4.next) {
|
|
|
case 0:
|
|
|
_context4.next = 2;
|
|
|
return getProgrammingTopic(id);
|
|
|
case 2:
|
|
|
response = _context4.sent;
|
|
|
name = response.name, status = response.status, review_privilege = response.review_privilege, review_description = response.review_description;
|
|
|
review = {
|
|
|
review_privilege: review_privilege,
|
|
|
status: status,
|
|
|
review_description: review_description,
|
|
|
name: name
|
|
|
};
|
|
|
setReviewData(review);
|
|
|
case 6:
|
|
|
case "end":
|
|
|
return _context4.stop();
|
|
|
}
|
|
|
}, _callee4);
|
|
|
}));
|
|
|
return function getPassResult() {
|
|
|
return _ref4.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleNoPass = function handleNoPass() {
|
|
|
var text = '';
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
width: 700,
|
|
|
className: 'custom-modal-divider',
|
|
|
centered: true,
|
|
|
title: '不通过原因',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: "mt20",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor/* default */.Z, {
|
|
|
className: AddOrEditmodules.MdEditor,
|
|
|
defaultValue: text,
|
|
|
onChange: function onChange(e) {
|
|
|
text = e;
|
|
|
}
|
|
|
})
|
|
|
}),
|
|
|
okText: '确认',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee5() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee5$(_context5) {
|
|
|
while (1) switch (_context5.prev = _context5.next) {
|
|
|
case 0:
|
|
|
if (text) {
|
|
|
_context5.next = 3;
|
|
|
break;
|
|
|
}
|
|
|
message/* default */.ZP.warning("\u4E0D\u901A\u8FC7\u539F\u56E0\u4E0D\u80FD\u4E3A\u7A7A");
|
|
|
return _context5.abrupt("return", Promise.reject());
|
|
|
case 3:
|
|
|
_context5.next = 5;
|
|
|
return (0,fetch/* default */.ZP)("/api/practices/".concat(id, "/review.json"), {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
op: 'fail',
|
|
|
description: text
|
|
|
}
|
|
|
});
|
|
|
case 5:
|
|
|
res = _context5.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
message/* default */.ZP.success('提交成功');
|
|
|
getPassResult();
|
|
|
}
|
|
|
case 7:
|
|
|
case "end":
|
|
|
return _context5.stop();
|
|
|
}
|
|
|
}, _callee5);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
};
|
|
|
var handlePass = /*#__PURE__*/function () {
|
|
|
var _ref5 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee7() {
|
|
|
return regeneratorRuntime_default()().wrap(function _callee7$(_context7) {
|
|
|
while (1) switch (_context7.prev = _context7.next) {
|
|
|
case 0:
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
// width: 700,
|
|
|
className: "custom-modal-divider",
|
|
|
centered: true,
|
|
|
title: '提示',
|
|
|
content: "\u786E\u8BA4\u5C06\u9898\u76EE\u300A".concat(reviewData === null || reviewData === void 0 ? void 0 : reviewData.name, "\u300B\u7684\u5BA1\u6838\u901A\u8FC7\u5417\uFF1F"),
|
|
|
okText: '确认',
|
|
|
cancelText: "取消",
|
|
|
onOk: function () {
|
|
|
var _onOk2 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee6() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee6$(_context6) {
|
|
|
while (1) switch (_context6.prev = _context6.next) {
|
|
|
case 0:
|
|
|
_context6.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/practices/".concat(id, "/review.json"), {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
op: 'pass'
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context6.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
message/* default */.ZP.success('提交成功');
|
|
|
getPassResult();
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context6.stop();
|
|
|
}
|
|
|
}, _callee6);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk2.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
case 1:
|
|
|
case "end":
|
|
|
return _context7.stop();
|
|
|
}
|
|
|
}, _callee7);
|
|
|
}));
|
|
|
return function handlePass() {
|
|
|
return _ref5.apply(this, arguments);
|
|
|
};
|
|
|
}();
|
|
|
var handleNoPassReason = function handleNoPassReason() {
|
|
|
var modal = es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
width: 700,
|
|
|
className: "".concat(AddOrEditmodules.cusModal, " custom-modal-divider"),
|
|
|
centered: true,
|
|
|
title: /*#__PURE__*/(0,jsx_runtime.jsxs)(row/* default */.Z, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
flex: "1",
|
|
|
children: "\u4E0D\u901A\u8FC7\u539F\u56E0"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(col/* default */.Z, {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "iconfont icon-guanbi7 font12 current c-grey-c",
|
|
|
onClick: function onClick() {
|
|
|
return modal.destroy();
|
|
|
}
|
|
|
})
|
|
|
})]
|
|
|
}),
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(RenderHtml/* default */.Z, {
|
|
|
className: "mt20",
|
|
|
value: (reviewData === null || reviewData === void 0 ? void 0 : reviewData.review_description) || ''
|
|
|
})
|
|
|
})
|
|
|
});
|
|
|
};
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(spin/* default */.Z, {
|
|
|
spinning: loading,
|
|
|
size: "large",
|
|
|
className: AddOrEditmodules['oj-custom-large-spin'],
|
|
|
children: [!data ? null : /*#__PURE__*/(0,jsx_runtime.jsxs)(_react_17_0_2_react.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("header", {
|
|
|
className: AddOrEditmodules.header,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
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",
|
|
|
width: 30
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: user === null || user === void 0 ? void 0 : user.name
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("h2", {
|
|
|
children: [" ", data === null || data === void 0 || (_data$hack2 = data.hack) === null || _data$hack2 === void 0 ? void 0 : _data$hack2.name, " "]
|
|
|
}), id ? /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
className: AddOrEditmodules.btn_back,
|
|
|
onClick: onBack,
|
|
|
children: [' ', /*#__PURE__*/(0,jsx_runtime.jsx)(PoweroffOutlined/* default */.Z, {}), "\u9000\u51FA"]
|
|
|
}) : null]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)(es_form/* default */.Z, {
|
|
|
form: form,
|
|
|
initialValues: data,
|
|
|
layout: "vertical",
|
|
|
className: AddOrEditmodules['oj-form-container'],
|
|
|
onValuesChange: handleValuesChange,
|
|
|
onFinish: onSubmit,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(SplitContainer/* default */.Z, {
|
|
|
hideResize: true,
|
|
|
className: AddOrEditmodules['oj-problems'],
|
|
|
leftChild: /*#__PURE__*/(0,jsx_runtime.jsx)(LeftPanel, {
|
|
|
formValue: formValue,
|
|
|
onRemoveTestCase: onRemoveTestCase,
|
|
|
onAddTestCase: onAddTestCase,
|
|
|
hack: data.hack,
|
|
|
onChangeScore: onChangeScore,
|
|
|
onChangehide: onChangehide,
|
|
|
onChangeAverage: onChangeAverage,
|
|
|
onChangeFile: onChangeFile,
|
|
|
uploadData: uploadData,
|
|
|
setUploadData: setUploadData,
|
|
|
handleUploadRatio: handleUploadRatio,
|
|
|
ischecked: ischecked,
|
|
|
pointData: pointData,
|
|
|
sourceData: sourceData,
|
|
|
getPointData: getPointData
|
|
|
}),
|
|
|
rightChild: /*#__PURE__*/(0,jsx_runtime.jsx)(CodePanel, {
|
|
|
value: languageItems === null || languageItems === void 0 || (_languageItems$find = languageItems.find(function (e) {
|
|
|
return e.language === language;
|
|
|
})) === null || _languageItems$find === void 0 ? void 0 : _languageItems$find.code,
|
|
|
onChange: onChangeLanguageValue,
|
|
|
onLanguage: onChangeLanguage,
|
|
|
languageItems: languageItems,
|
|
|
language: language
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules['footer'],
|
|
|
children: [!!id && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.result,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: "\u5BA1\u6838\u7ED3\u679C:"
|
|
|
}), reviewData !== null && reviewData !== void 0 && reviewData.review_privilege ? /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
onClick: handlePass,
|
|
|
className: AddOrEditmodules.pass,
|
|
|
children: "\u901A\u8FC7"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
onClick: handleNoPass,
|
|
|
className: AddOrEditmodules.noPass,
|
|
|
children: "\u4E0D\u901A\u8FC7"
|
|
|
})]
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [(reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 0 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.passText,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tongguo"
|
|
|
}), "\u672A\u53D1\u5E03"]
|
|
|
}), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 1 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.passText,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tongguo"
|
|
|
}), "\u5DF2\u516C\u5F00"]
|
|
|
}), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 2 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.passText,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tongguo"
|
|
|
}), "\u672A\u5BA1\u6279"]
|
|
|
}), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 3 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.passText,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tongguo"
|
|
|
}), "\u5BA1\u6838\u4E2D"]
|
|
|
}), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 4 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.passText,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-tongguo"
|
|
|
}), "\u5BA1\u6838\u5B8C\u6210\u5F85\u516C\u5F00"]
|
|
|
}), (reviewData === null || reviewData === void 0 ? void 0 : reviewData.status) === 5 && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.noPassText,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("i", {
|
|
|
className: "iconfont icon-weitongguo1"
|
|
|
}), "\u5BA1\u6838\u4E0D\u901A\u8FC7", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
onClick: handleNoPassReason,
|
|
|
children: "\u67E5\u770B\u539F\u56E0"
|
|
|
})]
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
ghost: true,
|
|
|
onClick: onBack,
|
|
|
children: "\u9000\u51FA\u7F16\u8F91"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
disabled: btnTwoLoading,
|
|
|
loading: btnOneLoading,
|
|
|
type: "primary",
|
|
|
onClick: function onClick() {
|
|
|
btnClickStatus.current = true;
|
|
|
form.submit();
|
|
|
},
|
|
|
children: "\u4FDD\u5B58 "
|
|
|
}), id ? /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
disabled: btnOneLoading,
|
|
|
loading: btnTwoLoading,
|
|
|
style: {
|
|
|
background: '#2FC25B',
|
|
|
border: 0
|
|
|
},
|
|
|
type: "primary",
|
|
|
onClick: function onClick() {
|
|
|
btnClickStatus.current = false;
|
|
|
form.submit();
|
|
|
},
|
|
|
children: "\u7ACB\u5373\u4F53\u9A8C"
|
|
|
}) : /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
disabled: btnOneLoading,
|
|
|
loading: btnTwoLoading,
|
|
|
type: "primary",
|
|
|
onClick: function onClick() {
|
|
|
btnClickStatus.current = false;
|
|
|
form.submit();
|
|
|
},
|
|
|
children: "\u4FDD\u5B58\u5E76\u53D1\u5E03\u5BA1\u6838"
|
|
|
})]
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_modal/* default */.Z, {
|
|
|
centered: true,
|
|
|
destroyOnClose: true,
|
|
|
footer: null,
|
|
|
open: visible,
|
|
|
onCancel: function onCancel() {
|
|
|
return setVisible(false);
|
|
|
},
|
|
|
title: "\u76F8\u4F3C\u6027\u68C0\u6D4B",
|
|
|
width: "600px",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("p", {
|
|
|
className: "font14",
|
|
|
children: "\u7ECF\u7CFB\u7EDF\u68C0\u6D4B\u53D1\u73B0\uFF0C\u672C\u9898\u76EE\u4E0E\u7CFB\u7EDF\u4E2D\u5DF2\u521B\u5EFA\u7684\u9898\u76EE\u9AD8\u5EA6\u96F7\u540C\uFF0C\u8BF7\u8C03\u6574\u9898\u76EE\u540E\u518D\u8FDB\u884C\u4FDD\u5B58"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(table/* default */.Z, {
|
|
|
dataSource: dataSource,
|
|
|
bordered: false,
|
|
|
scroll: dataSource.length > 7 ? {
|
|
|
y: 300
|
|
|
} : {},
|
|
|
columns: [{
|
|
|
title: '相似题题目',
|
|
|
dataIndex: 'name',
|
|
|
ellipsis: true,
|
|
|
render: function render(v, r) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
onClick: function onClick() {
|
|
|
return skip(r === null || r === void 0 ? void 0 : r.identifier);
|
|
|
},
|
|
|
style: {
|
|
|
textDecorationLine: 'underline'
|
|
|
},
|
|
|
className: "current c-light-primary",
|
|
|
children: v
|
|
|
});
|
|
|
}
|
|
|
}, {
|
|
|
title: '创建时间',
|
|
|
dataIndex: 'create_time',
|
|
|
width: 170,
|
|
|
render: function render(v) {
|
|
|
var _moment;
|
|
|
return (_moment = dayjs_min_default()(v)) === null || _moment === void 0 ? void 0 : _moment.format('YYYY-MM-DD HH:mm');
|
|
|
}
|
|
|
}],
|
|
|
pagination: false
|
|
|
})]
|
|
|
})
|
|
|
})]
|
|
|
});
|
|
|
});
|
|
|
function LeftPanel(_ref6) {
|
|
|
var _formValue$hack;
|
|
|
var ischecked = _ref6.ischecked,
|
|
|
formValue = _ref6.formValue,
|
|
|
hack = _ref6.hack,
|
|
|
onChangeAverage = _ref6.onChangeAverage,
|
|
|
onChangeScore = _ref6.onChangeScore,
|
|
|
onChangehide = _ref6.onChangehide,
|
|
|
onChangeFile = _ref6.onChangeFile,
|
|
|
onAddTestCase = _ref6.onAddTestCase,
|
|
|
onRemoveTestCase = _ref6.onRemoveTestCase,
|
|
|
uploadData = _ref6.uploadData,
|
|
|
setUploadData = _ref6.setUploadData,
|
|
|
handleUploadRatio = _ref6.handleUploadRatio,
|
|
|
pointData = _ref6.pointData,
|
|
|
sourceData = _ref6.sourceData,
|
|
|
getPointData = _ref6.getPointData;
|
|
|
var test_set_average = hack.test_set_average,
|
|
|
test_set_score = hack.test_set_score;
|
|
|
var _useState25 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState26 = slicedToArray_default()(_useState25, 2),
|
|
|
showUploadFile = _useState26[0],
|
|
|
setShowUploadFile = _useState26[1];
|
|
|
var _useState27 = (0,_react_17_0_2_react.useState)(false),
|
|
|
_useState28 = slicedToArray_default()(_useState27, 2),
|
|
|
manageVisible = _useState28[0],
|
|
|
setManageVisible = _useState28[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) {
|
|
|
console.log(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) {
|
|
|
var newList = uploadData.concat(files);
|
|
|
if (hack.test_set_average) {
|
|
|
handleUploadRatio(newList);
|
|
|
} else {
|
|
|
setUploadData(newList);
|
|
|
}
|
|
|
};
|
|
|
function onStopPropagation(e) {
|
|
|
e.stopPropagation();
|
|
|
}
|
|
|
function addPoint() {
|
|
|
if ((0,authority/* isSuperAdmins */.Ny)()) {
|
|
|
setManageVisible('practice');
|
|
|
return;
|
|
|
}
|
|
|
var text = '';
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
className: 'custom-modal-divider',
|
|
|
centered: true,
|
|
|
title: '新建知识点',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
placeholder: "\u8BF7\u8F93\u5165\u77E5\u8BC6\u70B9\u540D\u79F0\uFF0C\u4E0D\u8D85\u8FC720\u4E2A\u5B57",
|
|
|
maxLength: 20,
|
|
|
onChange: function onChange(e) {
|
|
|
text = e.target.value;
|
|
|
}
|
|
|
})
|
|
|
}),
|
|
|
okText: '确认',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk3 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee9() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee9$(_context9) {
|
|
|
while (1) switch (_context9.prev = _context9.next) {
|
|
|
case 0:
|
|
|
_context9.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
target: 'practice',
|
|
|
name: text
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context9.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
getPointData();
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context9.stop();
|
|
|
}
|
|
|
}, _callee9);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk3.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
}
|
|
|
function addOrigin() {
|
|
|
if ((0,authority/* isSuperAdmins */.Ny)()) {
|
|
|
setManageVisible('practice_source');
|
|
|
return;
|
|
|
}
|
|
|
var text = '';
|
|
|
es_modal/* default */.Z.confirm({
|
|
|
icon: null,
|
|
|
className: 'custom-modal-divider',
|
|
|
centered: true,
|
|
|
title: '新建来源',
|
|
|
content: /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
placeholder: "\u8BF7\u8F93\u5165\u6765\u6E90\u540D\u79F0\uFF0C\u4E0D\u8D85\u8FC720\u4E2A\u5B57",
|
|
|
maxLength: 20,
|
|
|
onChange: function onChange(e) {
|
|
|
text = e.target.value;
|
|
|
}
|
|
|
})
|
|
|
}),
|
|
|
okText: '确认',
|
|
|
cancelText: '取消',
|
|
|
onOk: function () {
|
|
|
var _onOk4 = asyncToGenerator_default()( /*#__PURE__*/regeneratorRuntime_default()().mark(function _callee10() {
|
|
|
var res;
|
|
|
return regeneratorRuntime_default()().wrap(function _callee10$(_context10) {
|
|
|
while (1) switch (_context10.prev = _context10.next) {
|
|
|
case 0:
|
|
|
_context10.next = 2;
|
|
|
return (0,fetch/* default */.ZP)("/api/tag_disciplines.json", {
|
|
|
method: 'post',
|
|
|
body: {
|
|
|
target: 'practice_source',
|
|
|
name: text
|
|
|
}
|
|
|
});
|
|
|
case 2:
|
|
|
res = _context10.sent;
|
|
|
if ((res === null || res === void 0 ? void 0 : res.status) === 0) {
|
|
|
getPointData();
|
|
|
}
|
|
|
case 4:
|
|
|
case "end":
|
|
|
return _context10.stop();
|
|
|
}
|
|
|
}, _callee10);
|
|
|
}));
|
|
|
function onOk() {
|
|
|
return _onOk4.apply(this, arguments);
|
|
|
}
|
|
|
return onOk;
|
|
|
}()
|
|
|
});
|
|
|
}
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules['oj-left-panel'],
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules['oj-form-info'],
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u9898\u76EE\u540D\u79F0",
|
|
|
name: ['hack', 'name'],
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入题目名称'
|
|
|
}],
|
|
|
className: AddOrEditmodules.inputOne,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input/* default */.Z, {
|
|
|
bordered: false,
|
|
|
maxLength: 60,
|
|
|
placeholder: "\u8BF7\u8F93\u5165\u9898\u76EE\u540D\u79F0",
|
|
|
suffix: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
children: [(formValue === null || formValue === void 0 || (_formValue$hack = formValue.hack) === null || _formValue$hack === void 0 || (_formValue$hack = _formValue$hack.name) === null || _formValue$hack === void 0 ? void 0 : _formValue$hack.length) || 0, "/", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "c-grey-999",
|
|
|
children: "60"
|
|
|
})]
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
name: ['hack', 'description'],
|
|
|
valuePropName: "defaultValue",
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入描述内容'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(markdown_editor/* default */.Z, {
|
|
|
placeholder: "\u8BF7\u8F93\u5165\u9898\u76EE\u63CF\u8FF0\u2026",
|
|
|
miniToolbar: true,
|
|
|
id: "moop_cases_content",
|
|
|
noStorage: true,
|
|
|
height: 200
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.row,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: AddOrEditmodules.a,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u96BE\u6613\u5EA6",
|
|
|
name: ['hack', 'difficulty'],
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请选择难易度'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"], {
|
|
|
children: getSelectOptions(Keys.difficulty)
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.b,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: '题目来源'
|
|
|
// rules={[{ required: true, message: '请选择题目来源' }]}
|
|
|
,
|
|
|
name: ['hack', 'source_discipline_ids'],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"], {
|
|
|
placeholder: "\u9009\u62E9\u9898\u76EE\u6765\u6E90",
|
|
|
showSearch: false,
|
|
|
mode: "multiple",
|
|
|
showArrow: true,
|
|
|
getPopupContainer: function getPopupContainer(trigger) {
|
|
|
return trigger.parentNode;
|
|
|
},
|
|
|
children: sourceData.map(function (e) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"].Option, {
|
|
|
value: e.id,
|
|
|
children: e.name
|
|
|
}, e.id);
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
style: {
|
|
|
padding: '0 18px'
|
|
|
},
|
|
|
type: "primary",
|
|
|
ghost: true,
|
|
|
onClick: function onClick() {
|
|
|
return addOrigin();
|
|
|
},
|
|
|
children: (0,authority/* isSuperAdmins */.Ny)() ? '来源管理' : '新建来源'
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: AddOrEditmodules.row,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.b,
|
|
|
style: {
|
|
|
width: '100%',
|
|
|
marginLeft: 0
|
|
|
},
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: '知识点',
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请选择知识点'
|
|
|
}],
|
|
|
name: ['hack', 'tag_discipline_ids'],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"], {
|
|
|
placeholder: "\u9009\u62E9\u77E5\u8BC6\u70B9",
|
|
|
showSearch: false,
|
|
|
mode: "multiple",
|
|
|
showArrow: true,
|
|
|
getPopupContainer: function getPopupContainer(trigger) {
|
|
|
return trigger.parentNode;
|
|
|
},
|
|
|
children: pointData.map(function (e) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(es_select["default"].Option, {
|
|
|
value: e.id,
|
|
|
children: e.name
|
|
|
}, e.id);
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
type: "primary",
|
|
|
ghost: true,
|
|
|
onClick: function onClick() {
|
|
|
return addPoint();
|
|
|
},
|
|
|
children: (0,authority/* isSuperAdmins */.Ny)() ? '知识点管理' : '新建知识点'
|
|
|
})]
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
className: AddOrEditmodules.field,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: '单个测试集评测时长限制',
|
|
|
name: ['hack', 'time_limit'],
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入单个测试集评测时长限制'
|
|
|
}, {
|
|
|
type: 'number',
|
|
|
min: 3,
|
|
|
message: '最小限制时间是3秒'
|
|
|
}],
|
|
|
className: AddOrEditmodules.inputTwo,
|
|
|
extra: /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
style: {
|
|
|
position: 'absolute',
|
|
|
left: 200,
|
|
|
top: 11,
|
|
|
color: '#333'
|
|
|
},
|
|
|
children: ["\u79D2", /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
className: "ml5 c-grey-999",
|
|
|
children: "(\u4EE3\u7801\u6267\u884C\u6240\u5141\u8BB8\u7684\u6700\u5927\u65F6\u957F)"
|
|
|
})]
|
|
|
}),
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {
|
|
|
style: {
|
|
|
width: 185
|
|
|
},
|
|
|
min: 3
|
|
|
})
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: "tst-case-info",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("h3", {
|
|
|
className: "flex-container",
|
|
|
style: {
|
|
|
justifyContent: 'space-between'
|
|
|
},
|
|
|
children: [' ', "\u6D4B\u8BD5\u7528\u4F8B\u4E0E\u7CFB\u7EDF\u8BC4\u5206\u89C4\u5219", !hack.is_file && /*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
style: {
|
|
|
height: 40
|
|
|
},
|
|
|
type: "primary",
|
|
|
ghost: true,
|
|
|
onClick: onAddTestCase,
|
|
|
children: "\u6DFB\u52A0\u6D4B\u8BD5\u7528\u4F8B"
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
name: ['hack', 'test_set_score'],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default.Group */.ZP.Group, {
|
|
|
onChange: onChangeScore,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)(es_radio/* default */.ZP, {
|
|
|
value: true,
|
|
|
children: ["\u901A\u8FC7\u5168\u90E8\u6D4B\u8BD5\u96C6", /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: "tip",
|
|
|
children: [' ', "\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__*/(0,jsx_runtime.jsxs)(es_radio/* default */.ZP, {
|
|
|
value: false,
|
|
|
children: ["\u901A\u8FC7\u90E8\u5206\u6D4B\u8BD5\u96C6", /*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
className: "tip",
|
|
|
children: [' ', "\uFF08\u5B66\u5458\u8BC4\u6D4B\uFF0C\u901A\u8FC7\u6D4B\u8BD5\u96C6\u5373\u53EF\u83B7\u5F97\u5BF9\u5E94\u5956\u52B1\uFF09"]
|
|
|
})]
|
|
|
})]
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_checkbox/* default */.Z, {
|
|
|
style: {
|
|
|
marginBottom: '5px'
|
|
|
},
|
|
|
checked: ischecked,
|
|
|
onChange: onChangehide,
|
|
|
children: "\u9690\u85CF\u5B9E\u9645\u8F93\u51FA \uFF08\u9009\u4E2D\uFF0C\u5219\u5728\u5B66\u751F\u505A\u9898\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__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
className: AddOrEditmodules.testJi,
|
|
|
name: ['hack', 'is_file'],
|
|
|
label: "\u7528\u4F8B\u7C7B\u578B:",
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default.Group */.ZP.Group, {
|
|
|
onChange: onChangeFile,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsxs)(space/* default */.Z, {
|
|
|
direction: "horizontal",
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
|
|
|
value: false,
|
|
|
children: "\u6587\u672C"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_radio/* default */.ZP, {
|
|
|
value: true,
|
|
|
children: "\u6587\u4EF6"
|
|
|
})]
|
|
|
})
|
|
|
})
|
|
|
}), !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",
|
|
|
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.is_file && /*#__PURE__*/(0,jsx_runtime.jsxs)("div", {
|
|
|
className: AddOrEditmodules.upBtn,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_button/* default */.ZP, {
|
|
|
ghost: true,
|
|
|
type: "primary",
|
|
|
className: "mb20",
|
|
|
onClick: function onClick() {
|
|
|
return setShowUploadFile(true);
|
|
|
},
|
|
|
children: "\u6279\u91CF\u4E0A\u4F20\u6D4B\u8BD5\u7528\u4F8B"
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(UploadFile/* UploadTable */.Y2, {
|
|
|
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, _ref7) {
|
|
|
objectDestructuringEmpty_default()(_ref7);
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsx)(collapse/* default */.Z, {
|
|
|
accordion: true,
|
|
|
children: fields.map(function (field, index) {
|
|
|
return /*#__PURE__*/(0,jsx_runtime.jsxs)(Panel, {
|
|
|
header: /*#__PURE__*/(0,jsx_runtime.jsxs)("a", {
|
|
|
className: AddOrEditmodules['test-case-name'],
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsxs)("span", {
|
|
|
children: ["\u6D4B\u8BD5\u7528\u4F8B", index + 1]
|
|
|
}), !test_set_score ? /*#__PURE__*/(0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
name: [field.name, 'score'],
|
|
|
fieldKey: [field.fieldKey, 'score'],
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: "\u8BF7\u8F93\u5165\u6D4B\u8BD5\u96C6".concat(index + 1, "\u8BC4\u5206")
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(input_number/* default */.Z, {
|
|
|
onClick: onStopPropagation,
|
|
|
min: 0,
|
|
|
max: 100,
|
|
|
disabled: test_set_average
|
|
|
})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)("span", {
|
|
|
children: "%"
|
|
|
})]
|
|
|
}) : null]
|
|
|
}),
|
|
|
extra: index > 0 ? /*#__PURE__*/(0,jsx_runtime.jsx)("div", {
|
|
|
onClick: onStopPropagation,
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(popconfirm/* default */.Z, {
|
|
|
okText: "\u786E\u5B9A",
|
|
|
cancelText: "\u53D6\u6D88",
|
|
|
title: '确定删除测试集' + (index + 1),
|
|
|
onConfirm: function onConfirm() {
|
|
|
onRemoveTestCase(index);
|
|
|
},
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(CloseCircleOutlined/* default */.Z, {
|
|
|
className: AddOrEditmodules['btn-remove-case']
|
|
|
})
|
|
|
})
|
|
|
}) : null,
|
|
|
children: [/*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u8F93\u5165",
|
|
|
name: [field.name, 'input'],
|
|
|
fieldKey: [field.fieldKey, 'input'],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {})
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(es_form/* default */.Z.Item, {
|
|
|
label: "\u8F93\u51FA",
|
|
|
name: [field.name, 'output'],
|
|
|
fieldKey: [field.fieldKey, 'output'],
|
|
|
rules: [{
|
|
|
required: true,
|
|
|
message: '请输入输出内容'
|
|
|
}],
|
|
|
children: /*#__PURE__*/(0,jsx_runtime.jsx)(TextArea, {})
|
|
|
})]
|
|
|
}, "".concat(field.key, "--").concat(index));
|
|
|
})
|
|
|
});
|
|
|
}
|
|
|
})]
|
|
|
})]
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(UploadFile/* default */.ZP, {
|
|
|
rootIdentifier: null,
|
|
|
visible: showUploadFile,
|
|
|
onClose: function onClose() {
|
|
|
return setShowUploadFile(false);
|
|
|
},
|
|
|
onOK: addUploadData
|
|
|
}), /*#__PURE__*/(0,jsx_runtime.jsx)(AddOrEdit_ManageModal, {
|
|
|
visible: manageVisible,
|
|
|
onCancel: function onCancel() {
|
|
|
setManageVisible(false);
|
|
|
getPointData();
|
|
|
},
|
|
|
onOK: function onOK() {
|
|
|
setManageVisible(false);
|
|
|
getPointData();
|
|
|
}
|
|
|
})]
|
|
|
});
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 51747:
|
|
|
/*!******************************!*\
|
|
|
!*** ./src/utils/urlTool.ts ***!
|
|
|
\******************************/
|
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
|
/* harmony export */ G: function() { return /* binding */ fromStore; },
|
|
|
/* harmony export */ t: function() { return /* binding */ toStore; }
|
|
|
/* harmony export */ });
|
|
|
/* harmony import */ var store__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! store */ 7062);
|
|
|
/* harmony import */ var store__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(store__WEBPACK_IMPORTED_MODULE_0__);
|
|
|
var isDev = (/* unused pure expression or super */ null && ("production" === 'development'));
|
|
|
|
|
|
function toStore(key, val) {
|
|
|
var _config = store__WEBPACK_IMPORTED_MODULE_0___default().get('__ec');
|
|
|
if (!_config) _config = {};
|
|
|
_config[key] = val;
|
|
|
store__WEBPACK_IMPORTED_MODULE_0___default().set('__ec', _config);
|
|
|
}
|
|
|
function fromStore(key, defaultVal) {
|
|
|
var _config = store__WEBPACK_IMPORTED_MODULE_0___default().get('__ec');
|
|
|
if (!_config) return defaultVal;
|
|
|
return _config[key] === undefined ? defaultVal : _config[key];
|
|
|
}
|
|
|
|
|
|
/***/ }),
|
|
|
|
|
|
/***/ 55235:
|
|
|
/*!****************************************************!*\
|
|
|
!*** ./src/components/tpi-code-setting/index.less ***!
|
|
|
\****************************************************/
|
|
|
/***/ (function() {
|
|
|
|
|
|
// extracted by mini-css-extract-plugin
|
|
|
|
|
|
|
|
|
/***/ })
|
|
|
|
|
|
}]); |