You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
608 lines
33 KiB
608 lines
33 KiB
"use strict";
|
|
(self["webpackChunk"] = self["webpackChunk"] || []).push([[6595],{
|
|
|
|
/***/ 80488:
|
|
/*!**********************************************************!*\
|
|
!*** ./src/components/FixedButton/index.tsx + 1 modules ***!
|
|
\**********************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
t: function() { return /* binding */ FixedButton; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/button/index.js
|
|
var es_button = __webpack_require__(3113);
|
|
;// CONCATENATED MODULE: ./src/components/FixedButton/index.less?modules
|
|
// extracted by mini-css-extract-plugin
|
|
/* harmony default export */ var FixedButtonmodules = ({"buttonFixed":"buttonFixed___vyq30","button":"button___hxmYv","buttonWrap":"buttonWrap___uK8dl"});
|
|
// EXTERNAL MODULE: ./node_modules/_classnames@2.5.1@classnames/index.js
|
|
var _classnames_2_5_1_classnames = __webpack_require__(92310);
|
|
var _classnames_2_5_1_classnames_default = /*#__PURE__*/__webpack_require__.n(_classnames_2_5_1_classnames);
|
|
;// CONCATENATED MODULE: ./src/components/FixedButton/index.tsx
|
|
var __defProp = Object.defineProperty;
|
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
var __spreadValues = (a, b) => {
|
|
for (var prop in b || (b = {}))
|
|
if (__hasOwnProp.call(b, prop))
|
|
__defNormalProp(a, prop, b[prop]);
|
|
if (__getOwnPropSymbols)
|
|
for (var prop of __getOwnPropSymbols(b)) {
|
|
if (__propIsEnum.call(b, prop))
|
|
__defNormalProp(a, prop, b[prop]);
|
|
}
|
|
return a;
|
|
};
|
|
|
|
|
|
|
|
|
|
const FixedButton = ({
|
|
cancelText = "\u53D6\u6D88",
|
|
okText = "\u786E\u5B9A",
|
|
loading = false,
|
|
hasOkBtn = true,
|
|
hasCancelBtn = true,
|
|
okButtonProps = {},
|
|
onCancel = () => {
|
|
},
|
|
onOk = () => {
|
|
},
|
|
className = ""
|
|
}) => {
|
|
return /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: _classnames_2_5_1_classnames_default()(FixedButtonmodules.buttonFixed, className) }, /* @__PURE__ */ _react_17_0_2_react.createElement("div", { className: FixedButtonmodules.buttonWrap }, hasCancelBtn && /* @__PURE__ */ _react_17_0_2_react.createElement(
|
|
es_button/* default */.ZP,
|
|
{
|
|
size: "middle",
|
|
className: `${FixedButtonmodules.button} mr20`,
|
|
onClick: onCancel
|
|
},
|
|
cancelText
|
|
), hasOkBtn && /* @__PURE__ */ _react_17_0_2_react.createElement(
|
|
es_button/* default */.ZP,
|
|
__spreadValues({
|
|
size: "middle",
|
|
type: "primary",
|
|
className: `${FixedButtonmodules.button} mr20`,
|
|
loading,
|
|
onClick: onOk
|
|
}, okButtonProps),
|
|
okText
|
|
)));
|
|
};
|
|
|
|
|
|
/***/ }),
|
|
|
|
/***/ 6595:
|
|
/*!*************************************************************************************!*\
|
|
!*** ./src/pages/Shixuns/Detail/Settings/components/TestCase/index.tsx + 1 modules ***!
|
|
\*************************************************************************************/
|
|
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
|
|
|
|
// EXPORTS
|
|
__webpack_require__.d(__webpack_exports__, {
|
|
Z: function() { return /* binding */ components_TestCase; }
|
|
});
|
|
|
|
// EXTERNAL MODULE: ./node_modules/_react@17.0.2@react/index.js
|
|
var _react_17_0_2_react = __webpack_require__(59301);
|
|
// EXTERNAL MODULE: ./src/.umi-production/exports.ts + 15 modules
|
|
var _umi_production_exports = __webpack_require__(23852);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/collapse/index.js + 8 modules
|
|
var collapse = __webpack_require__(74997);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input/index.js + 5 modules
|
|
var input = __webpack_require__(20008);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/form/index.js + 19 modules
|
|
var es_form = __webpack_require__(78241);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/message/index.js + 4 modules
|
|
var message = __webpack_require__(8591);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/modal/index.js + 16 modules
|
|
var modal = __webpack_require__(43418);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/checkbox/index.js + 3 modules
|
|
var es_checkbox = __webpack_require__(24905);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/tooltip/index.js + 3 modules
|
|
var tooltip = __webpack_require__(6848);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/input-number/index.js + 14 modules
|
|
var input_number = __webpack_require__(97913);
|
|
// 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/space/index.js + 3 modules
|
|
var space = __webpack_require__(81327);
|
|
// 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/select/index.js
|
|
var es_select = __webpack_require__(57809);
|
|
// EXTERNAL MODULE: ./node_modules/_antd@5.9.0@antd/es/switch/index.js + 2 modules
|
|
var es_switch = __webpack_require__(78673);
|
|
// EXTERNAL MODULE: ./src/components/FixedButton/index.tsx + 1 modules
|
|
var FixedButton = __webpack_require__(80488);
|
|
// EXTERNAL MODULE: ./src/components/ui-customization/index.tsx + 34 modules
|
|
var ui_customization = __webpack_require__(20473);
|
|
;// CONCATENATED MODULE: ./src/pages/Shixuns/Detail/Settings/components/TestCase/index.less?modules
|
|
// extracted by mini-css-extract-plugin
|
|
/* harmony default export */ var TestCasemodules = ({"wrap":"wrap___BgpUe","row":"row___UWxAG","textarea":"textarea___gaLin","btn":"btn___ZpuhS","sub":"sub___Jd_ZS"});
|
|
// EXTERNAL MODULE: ./src/components/monaco-editor/index.jsx + 4 modules
|
|
var monaco_editor = __webpack_require__(16162);
|
|
// EXTERNAL MODULE: ./src/utils/fetch.ts
|
|
var fetch = __webpack_require__(64841);
|
|
// EXTERNAL MODULE: ./src/utils/authority.ts
|
|
var authority = __webpack_require__(77883);
|
|
;// CONCATENATED MODULE: ./src/pages/Shixuns/Detail/Settings/components/TestCase/index.tsx
|
|
/* provided dependency */ var React = __webpack_require__(/*! react */ 59301);
|
|
var __defProp = Object.defineProperty;
|
|
var __defProps = Object.defineProperties;
|
|
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
var __spreadValues = (a, b) => {
|
|
for (var prop in b || (b = {}))
|
|
if (__hasOwnProp.call(b, prop))
|
|
__defNormalProp(a, prop, b[prop]);
|
|
if (__getOwnPropSymbols)
|
|
for (var prop of __getOwnPropSymbols(b)) {
|
|
if (__propIsEnum.call(b, prop))
|
|
__defNormalProp(a, prop, b[prop]);
|
|
}
|
|
return a;
|
|
};
|
|
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
var __async = (__this, __arguments, generator) => {
|
|
return new Promise((resolve, reject) => {
|
|
var fulfilled = (value) => {
|
|
try {
|
|
step(generator.next(value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
};
|
|
var rejected = (value) => {
|
|
try {
|
|
step(generator.throw(value));
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
};
|
|
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
step((generator = generator.apply(__this, __arguments)).next());
|
|
});
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const { Panel } = collapse["default"];
|
|
const { TextArea } = input["default"];
|
|
const TestCase = ({
|
|
active,
|
|
type = "jupyter"
|
|
}) => {
|
|
var _a, _b;
|
|
const params = (0,_umi_production_exports.useParams)();
|
|
const [form] = es_form["default"].useForm();
|
|
const [formValue, setFormValue] = (0,_react_17_0_2_react.useState)({});
|
|
const [btnLoading, setBtnLoading] = (0,_react_17_0_2_react.useState)(false);
|
|
const [activeKey, setActiveKey] = (0,_react_17_0_2_react.useState)(0);
|
|
const [testSetList, setTestSetList] = (0,_react_17_0_2_react.useState)([]);
|
|
const [tagsList, setTagsList] = (0,_react_17_0_2_react.useState)([]);
|
|
const [list, setList] = (0,_react_17_0_2_react.useState)([]);
|
|
const editable = (_b = (_a = (0,authority/* userInfo */.eY)()) == null ? void 0 : _a.shixun) == null ? void 0 : _b.editable;
|
|
(0,_react_17_0_2_react.useEffect)(() => {
|
|
if (active === "testCase") {
|
|
getData();
|
|
}
|
|
}, [active]);
|
|
(0,_react_17_0_2_react.useEffect)(() => {
|
|
getTags();
|
|
}, []);
|
|
const getData = () => __async(void 0, null, function* () {
|
|
var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;
|
|
const testSetData = [{ hidden: 0, input: "", output: "", score: 100 }];
|
|
const res = yield (0,fetch/* default */.ZP)(`/api/shixuns/${params == null ? void 0 : params.id}/jupyter_evalute_setting.json`, { method: "get" });
|
|
if ((res == null ? void 0 : res.status) === 0) {
|
|
setList((_a2 = res == null ? void 0 : res.data) == null ? void 0 : _a2.standard_scripts);
|
|
const initData = {
|
|
open_evaluate: (_b2 = res == null ? void 0 : res.data) == null ? void 0 : _b2.open_evaluate,
|
|
exec_time: ((_c = res == null ? void 0 : res.data) == null ? void 0 : _c.exec_time) || 3,
|
|
test_set_score: ((_d = res == null ? void 0 : res.data) == null ? void 0 : _d.test_set_score) === null ? false : (_e = res == null ? void 0 : res.data) == null ? void 0 : _e.test_set_score,
|
|
test_set_average: ((_f = res == null ? void 0 : res.data) == null ? void 0 : _f.test_set_average) === null ? true : (_g = res == null ? void 0 : res.data) == null ? void 0 : _g.test_set_average,
|
|
choice_standard_scripts: ((_h = res == null ? void 0 : res.data) == null ? void 0 : _h.choice_standard_scripts) || null,
|
|
evaluate_script: ((_i = res == null ? void 0 : res.data) == null ? void 0 : _i.evaluate_script) || "",
|
|
evaluate_method: (_j = res == null ? void 0 : res.data) == null ? void 0 : _j.evaluate_method,
|
|
use_jupyter_result: (_k = res == null ? void 0 : res.data) == null ? void 0 : _k.use_jupyter_result
|
|
};
|
|
form.setFieldsValue(initData);
|
|
setFormValue(initData);
|
|
setTestSetList(((_m = (_l = res == null ? void 0 : res.data) == null ? void 0 : _l.test_sets) == null ? void 0 : _m.length) ? (_n = res == null ? void 0 : res.data) == null ? void 0 : _n.test_sets : testSetData);
|
|
}
|
|
});
|
|
const getTags = () => __async(void 0, null, function* () {
|
|
var _a2;
|
|
const res = yield (0,fetch/* default */.ZP)(`/api/shixuns/${params == null ? void 0 : params.id}/get_jupyter_tags.json`, { method: "get" });
|
|
if ((res == null ? void 0 : res.status) === 0) {
|
|
setTagsList(((_a2 = res == null ? void 0 : res.data) == null ? void 0 : _a2.list) || []);
|
|
}
|
|
});
|
|
const handleOk = (values) => __async(void 0, null, function* () {
|
|
const scoreList = testSetList.map((item) => item.score);
|
|
const sumScore = scoreList.reduce((current, next) => current + next, 0);
|
|
if (values.test_set_score && sumScore !== 100) {
|
|
message/* default */.ZP.warning("\u6D4B\u8BD5\u7528\u4F8B\u7684\u8BC4\u5206\u5360\u6BD4\u4E4B\u548C\u5FC5\u987B\u7B49\u4E8E100");
|
|
return;
|
|
}
|
|
if (values.evaluate_method === 3 && (testSetList == null ? void 0 : testSetList.some((e) => !e.tags))) {
|
|
message/* default */.ZP.warning("\u8BF7\u9009\u62E9\u6307\u5B9A\u4EE3\u7801\u5757");
|
|
return;
|
|
}
|
|
setBtnLoading(true);
|
|
const res = yield (0,fetch/* default */.ZP)(`/api/shixuns/${params == null ? void 0 : params.id}/update_jupyter_evaluate_setting.json`, {
|
|
method: "post",
|
|
body: __spreadProps(__spreadValues({}, values), {
|
|
mirror_script_id: values == null ? void 0 : values.choice_standard_scripts,
|
|
open_evaluate: (values == null ? void 0 : values.open_evaluate) ? 1 : 0,
|
|
test_set: testSetList.map((e) => __spreadProps(__spreadValues({}, e), { is_file: false }))
|
|
})
|
|
});
|
|
if (res.status === 0) {
|
|
message/* default */.ZP.success("\u4FDD\u5B58\u6210\u529F");
|
|
}
|
|
setBtnLoading(false);
|
|
});
|
|
const handleValuesChange = (changedValues) => {
|
|
setFormValue(__spreadValues({}, form.getFieldsValue()));
|
|
if ("test_set_average" in changedValues && (changedValues == null ? void 0 : changedValues.test_set_average)) {
|
|
handleShareRatio(testSetList);
|
|
}
|
|
if ("test_set_score" in changedValues && (changedValues == null ? void 0 : changedValues.test_set_score)) {
|
|
form.setFieldsValue({ test_set_average: true });
|
|
setFormValue(__spreadProps(__spreadValues({}, form.getFieldsValue()), { test_set_average: true }));
|
|
handleShareRatio(testSetList);
|
|
}
|
|
if ("choice_standard_scripts" in changedValues) {
|
|
modal["default"].confirm({
|
|
centered: true,
|
|
title: "\u63D0\u793A",
|
|
okText: "\u786E\u5B9A",
|
|
cancelText: "\u53D6\u6D88",
|
|
content: /* @__PURE__ */ React.createElement("div", { className: "tc font16" }, "\u539F\u6709\u811A\u672C\u5C06\u88AB\u65B0\u7684\u811A\u672C\u8986\u76D6\uFF0C\u65E0\u6CD5\u64A4\u9500", /* @__PURE__ */ React.createElement("br", null), "\u662F\u5426\u786E\u8BA4\u6267\u884C\u8986\u76D6\u64CD\u4F5C"),
|
|
onOk: () => __async(void 0, null, function* () {
|
|
const res = yield (0,fetch/* default */.ZP)(`/api/shixuns/${params == null ? void 0 : params.id}/get_script_contents.json`, {
|
|
method: "get",
|
|
params: {
|
|
id: params == null ? void 0 : params.id,
|
|
script_id: changedValues == null ? void 0 : changedValues.choice_standard_scripts
|
|
}
|
|
});
|
|
if (res == null ? void 0 : res.content) {
|
|
modal["default"].info({
|
|
centered: true,
|
|
title: "\u63D0\u793A",
|
|
okText: "\u77E5\u9053\u5566",
|
|
content: /* @__PURE__ */ React.createElement("div", { className: "tc font16" }, "\u8BC4\u6D4B\u811A\u672C\u751F\u6210\u6210\u529F\uFF01")
|
|
});
|
|
form.setFieldsValue({ evaluate_script: res == null ? void 0 : res.content });
|
|
setFormValue(__spreadProps(__spreadValues({}, form.getFieldsValue()), { evaluate_script: res == null ? void 0 : res.content }));
|
|
}
|
|
})
|
|
});
|
|
}
|
|
};
|
|
const handleShareRatio = (testSetData) => {
|
|
let code_compile_score = 0;
|
|
const score = Math.floor((100 - code_compile_score) / testSetData.length);
|
|
const lastScore = score + (100 - code_compile_score) % testSetData.length;
|
|
testSetData = testSetData.map((item, index) => {
|
|
if (index === testSetData.length - 1) {
|
|
return __spreadProps(__spreadValues({}, item), { score: lastScore });
|
|
}
|
|
return __spreadProps(__spreadValues({}, item), { score });
|
|
});
|
|
setTestSetList(testSetData);
|
|
};
|
|
const handleAddTestSet = () => {
|
|
const testSetData = [...testSetList, { hidden: 0, input: "", output: "", score: 0 }];
|
|
if (form.getFieldValue("test_set_average")) {
|
|
handleShareRatio(testSetData);
|
|
} else {
|
|
setTestSetList(testSetData);
|
|
}
|
|
};
|
|
const { test_set_score, test_set_average, choice_standard_scripts, open_evaluate } = formValue;
|
|
return /* @__PURE__ */ React.createElement("section", { className: TestCasemodules.wrap }, /* @__PURE__ */ React.createElement(
|
|
es_form["default"],
|
|
{
|
|
form,
|
|
disabled: !open_evaluate,
|
|
layout: "vertical",
|
|
onValuesChange: handleValuesChange,
|
|
onFinish: handleOk
|
|
},
|
|
/* @__PURE__ */ React.createElement(
|
|
es_form["default"].Item,
|
|
{
|
|
name: "open_evaluate",
|
|
style: { marginTop: 10 },
|
|
valuePropName: "checked"
|
|
},
|
|
/* @__PURE__ */ React.createElement(es_checkbox["default"], { disabled: false }, "\u542F\u7528Jupyter\u8BC4\u6D4B\u529F\u80FD")
|
|
),
|
|
/* @__PURE__ */ React.createElement("h4", { className: "font14" }, "\u8BC4\u6D4B\u65F6\u957F\u9650\u5236"),
|
|
/* @__PURE__ */ React.createElement(tooltip/* default */.Z, { title: !open_evaluate && "\u8BF7\u542F\u7528Jupyter\u8BC4\u6D4B\u529F\u80FD\u540E\uFF0C\u8FDB\u884C\u7F16\u8F91", placement: "topLeft" }, /* @__PURE__ */ React.createElement(
|
|
es_form["default"].Item,
|
|
{
|
|
label: "\u8BC4\u6D4B\u65F6\u957F\uFF08\u79D2\uFF09\uFF1A",
|
|
name: "exec_time",
|
|
className: TestCasemodules.row,
|
|
rules: [{ required: true, message: "\u8BF7\u8F93\u5165\u8BC4\u6D4B\u65F6\u957F\u9650\u5236" }, {
|
|
type: "number",
|
|
min: 3,
|
|
message: "\u6700\u5C0F\u9650\u5236\u65F6\u95F4\u662F3\u79D2"
|
|
}]
|
|
},
|
|
/* @__PURE__ */ React.createElement(input_number/* default */.Z, { size: "large", style: { width: 400 }, min: 3 })
|
|
)),
|
|
/* @__PURE__ */ React.createElement("h4", { className: "font14 mb10" }, "\u7CFB\u7EDF\u8BC4\u5206\u89C4\u5219"),
|
|
/* @__PURE__ */ React.createElement(tooltip/* default */.Z, { title: !open_evaluate && "\u8BF7\u542F\u7528Jupyter\u8BC4\u6D4B\u529F\u80FD\u540E\uFF0C\u8FDB\u884C\u7F16\u8F91", placement: "topLeft" }, /* @__PURE__ */ React.createElement(es_form["default"].Item, { name: "test_set_score" }, /* @__PURE__ */ React.createElement(es_radio/* default.Group */.ZP.Group, null, /* @__PURE__ */ React.createElement(space/* default */.Z, { direction: "vertical" }, /* @__PURE__ */ React.createElement(es_radio/* default */.ZP, { value: false }, "\u901A\u8FC7\u5168\u90E8\u6D4B\u8BD5\u96C6", /* @__PURE__ */ React.createElement("span", { className: "c-grey-999" }, " \uFF08\u5B66\u5458\u8BC4\u6D4B\uFF0C\u4EC5\u5F53\u6240\u6709\u6D4B\u8BD5\u96C6\u90FD\u6B63\u786E\u65F6\uFF0C\u624D\u83B7\u5F97\u4E00\u6B21\u6027\u5956\u52B1\uFF09")), /* @__PURE__ */ React.createElement(es_radio/* default */.ZP, { value: true }, "\u901A\u8FC7\u90E8\u5206\u6D4B\u8BD5\u96C6", /* @__PURE__ */ React.createElement("span", { className: "c-grey-999" }, " \uFF08\u5B66\u5458\u8BC4\u6D4B\uFF0C\u901A\u8FC7\u6D4B\u8BD5\u96C6\u5373\u53EF\u83B7\u5F97\u5BF9\u5E94\u5956\u52B1\uFF09")))))),
|
|
/* @__PURE__ */ React.createElement(
|
|
es_form["default"].Item,
|
|
{
|
|
label: /* @__PURE__ */ React.createElement("span", { style: { fontWeight: 500 }, className: "c-black" }, "\u8BC4\u6D4B\u8BBE\u7F6E"),
|
|
name: "evaluate_method",
|
|
style: { flexDirection: "row", marginTop: 15 },
|
|
rules: [{ required: true, message: "\u8BF7\u9009\u62E9\u8BC4\u6D4B\u8BBE\u7F6E" }]
|
|
},
|
|
/* @__PURE__ */ React.createElement(es_radio/* default.Group */.ZP.Group, null, /* @__PURE__ */ React.createElement(space/* default */.Z, { direction: "vertical" }, /* @__PURE__ */ React.createElement(es_radio/* default */.ZP, { value: 1 }, "\u901A\u8FC7\u6240\u6709\u4EE3\u7801\u5757\u8BC4\u6D4B", /* @__PURE__ */ React.createElement("span", { className: "c-grey-999" }, " \uFF08\u5BF9\u5B66\u5458\u4EFB\u52A1\u6587\u4EF6\u7684\u6240\u6709\u975E\u7A7A\u4EE3\u7801\u5757\u8FDB\u884C\u8BC4\u6D4B\uFF09")), /* @__PURE__ */ React.createElement(es_radio/* default */.ZP, { value: 3 }, "\u901A\u8FC7\u6307\u5B9A\u4EE3\u7801\u5757\u8BC4\u6D4B", /* @__PURE__ */ React.createElement("span", { className: "c-grey-999" }, " \uFF08\u5BF9\u5B66\u5458\u4EFB\u52A1\u6587\u4EF6\u7684\u6307\u5B9A\u975E\u7A7A\u4EE3\u7801\u5757\u8FDB\u884C\u8BC4\u6D4B\uFF09"))))
|
|
),
|
|
/* @__PURE__ */ React.createElement(row/* default */.Z, { align: "middle", justify: "space-between", className: "font14" }, /* @__PURE__ */ React.createElement("div", { style: { fontWeight: 500 } }, /* @__PURE__ */ React.createElement("span", { className: TestCasemodules.sub }, "*"), "\u6D4B\u8BD5\u7528\u4F8B"), /* @__PURE__ */ React.createElement(tooltip/* default */.Z, { title: !open_evaluate && "\u8BF7\u542F\u7528Jupyter\u8BC4\u6D4B\u529F\u80FD\u540E\uFF0C\u8FDB\u884C\u7F16\u8F91", placement: "topLeft" }, /* @__PURE__ */ React.createElement(ui_customization/* CustomButton */.op, { style: { borderRadius: 2 }, onClick: handleAddTestSet }, "\u6DFB\u52A0\u6D4B\u8BD5\u7528\u4F8B"))),
|
|
test_set_score && /* @__PURE__ */ React.createElement(es_form["default"].Item, { name: "test_set_average" }, /* @__PURE__ */ React.createElement(es_radio/* default.Group */.ZP.Group, null, /* @__PURE__ */ React.createElement(es_radio/* default */.ZP, { value: true }, "\u5747\u5206\u6BD4\u4F8B"), /* @__PURE__ */ React.createElement(es_radio/* default */.ZP, { value: false, style: { marginLeft: 50 } }, "\u81EA\u5B9A\u4E49\u6BD4\u4F8B"))),
|
|
/* @__PURE__ */ React.createElement(tooltip/* default */.Z, { title: !open_evaluate && "\u8BF7\u542F\u7528Jupyter\u8BC4\u6D4B\u529F\u80FD\u540E\uFF0C\u8FDB\u884C\u7F16\u8F91", placement: "topLeft" }, /* @__PURE__ */ React.createElement("div", null, testSetList.map((item, key) => {
|
|
return /* @__PURE__ */ React.createElement(
|
|
collapse["default"],
|
|
{
|
|
activeKey,
|
|
key,
|
|
onChange: () => {
|
|
setActiveKey((p) => p === key ? null : key);
|
|
}
|
|
},
|
|
/* @__PURE__ */ React.createElement(
|
|
Panel,
|
|
{
|
|
header: /* @__PURE__ */ React.createElement("div", { className: "font16" }, /* @__PURE__ */ React.createElement("span", { className: "mr10" }, "\u6D4B\u8BD5\u7528\u4F8B", key + 1), formValue.test_set_score && /* @__PURE__ */ React.createElement("span", { style: { marginLeft: 40 } }, /* @__PURE__ */ React.createElement(
|
|
input["default"],
|
|
{
|
|
style: { width: 120 },
|
|
value: item.score,
|
|
onClick: (e) => e.stopPropagation(),
|
|
type: "number",
|
|
disabled: test_set_average,
|
|
onChange: (e) => {
|
|
const testData = testSetList.map((test, testIndex) => {
|
|
if (testIndex === key) {
|
|
return __spreadProps(__spreadValues({}, test), { score: e.target.value ? Number(e.target.value) : 0 });
|
|
}
|
|
return test;
|
|
});
|
|
const data = { test_set_average: false };
|
|
setFormValue(__spreadValues(__spreadValues({}, formValue), data));
|
|
form.setFieldsValue(data);
|
|
setTestSetList(testData);
|
|
}
|
|
}
|
|
), /* @__PURE__ */ React.createElement("span", { className: "ml10 mr10" }, "%")), /* @__PURE__ */ React.createElement("span", { className: "tr flex1", style: { float: "right" } }, key !== 0 && /* @__PURE__ */ React.createElement(tooltip/* default */.Z, { placement: "bottom", title: "\u5220\u9664" }, /* @__PURE__ */ React.createElement("span", { style: { color: "#c5c5c5" }, className: "current iconfont icon-shanchu4", onClick: (e) => {
|
|
e.stopPropagation();
|
|
modal["default"].confirm({
|
|
centered: true,
|
|
icon: null,
|
|
okText: "\u786E\u5B9A",
|
|
cancelText: "\u53D6\u6D88",
|
|
title: "\u63D0\u793A",
|
|
content: "\u786E\u8BA4\u8981\u5220\u9664\u8FD9\u4E2A\u6D4B\u8BD5\u7528\u4F8B\u5417\uFF1F",
|
|
onOk: () => {
|
|
const testData = testSetList.filter((_, testIndex) => testIndex !== key);
|
|
handleShareRatio(testData);
|
|
}
|
|
});
|
|
} })))),
|
|
key
|
|
},
|
|
/* @__PURE__ */ React.createElement("div", null, formValue.evaluate_method === 3 && /* @__PURE__ */ React.createElement(row/* default */.Z, { align: "middle", className: "mb20" }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("span", { className: TestCasemodules.sub }, "*"), /* @__PURE__ */ React.createElement("span", null, "\u6307\u5B9A\u4EE3\u7801\u5757"), /* @__PURE__ */ React.createElement(tooltip/* default */.Z, { title: "\u8BF7\u5148\u5728Jupyter\u4E2D\u5BF9\u60A8\u9700\u8981\u8BC4\u6D4B\u7684\u6307\u5B9A\u4EE3\u7801\u5757\u5B8C\u6210\u6807\u7B7E\u8BBE\u7F6E\u3002" }, /* @__PURE__ */ React.createElement("i", { style: { marginLeft: 6, marginRight: 20, color: "#145DFF" }, className: "iconfont icon-xiaowenhao2 font14" }))), /* @__PURE__ */ React.createElement(
|
|
es_select["default"],
|
|
{
|
|
value: item.tags,
|
|
size: "large",
|
|
style: { width: 450 },
|
|
onChange: (e) => {
|
|
const testData = testSetList.map((test, testIndex) => {
|
|
if (testIndex === key) {
|
|
return __spreadProps(__spreadValues({}, test), { tags: e });
|
|
}
|
|
return test;
|
|
});
|
|
setTestSetList(testData);
|
|
}
|
|
},
|
|
tagsList == null ? void 0 : tagsList.map((e) => /* @__PURE__ */ React.createElement(es_select["default"].Option, { value: e == null ? void 0 : e.tags, key: e == null ? void 0 : e.tags }, e == null ? void 0 : e.tags))
|
|
)), /* @__PURE__ */ React.createElement(row/* default */.Z, { align: "middle" }, /* @__PURE__ */ React.createElement("div", null, " ", /* @__PURE__ */ React.createElement("span", null, "\u9884\u671F\u8F93\u51FA")), /* @__PURE__ */ React.createElement(
|
|
TextArea,
|
|
{
|
|
bordered: false,
|
|
className: TestCasemodules.textarea,
|
|
rows: 5,
|
|
placeholder: "\u9884\u671F\u8F93\u51FA",
|
|
value: item.output,
|
|
onChange: (e) => {
|
|
const testData = testSetList.map((test, testIndex) => {
|
|
if (testIndex === key) {
|
|
return __spreadProps(__spreadValues({}, test), { output: e.target.value });
|
|
}
|
|
return test;
|
|
});
|
|
setTestSetList(testData);
|
|
}
|
|
}
|
|
)), /* @__PURE__ */ React.createElement(row/* default */.Z, { className: "mt20", align: "middle" }, /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("span", null, "\u53EF\u89C1\u6027"), /* @__PURE__ */ React.createElement(tooltip/* default */.Z, { title: /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement("div", null, '\u5168\u90E8\u9690\u85CF\uFF1A\u9690\u85CF\u6D4B\u8BD5\u96C6\u53EF\u4EE5\u9632\u6B62\u5B66\u751F\u901A\u8FC7"print"\u7B49\u624B\u6BB5\u76F4\u63A5\u901A\u5173'), /* @__PURE__ */ React.createElement("div", null, "\u9690\u85CF\u9884\u671F\u8F93\u51FA\uFF1A\u52FE\u9009\u540E\u9884\u671F\u8F93\u51FA\u5BF9\u5B66\u5458\u59CB\u7EC8\u4E0D\u53EF\u89C1"), /* @__PURE__ */ React.createElement("div", null, "\u9690\u85CF\u5B9E\u9645\u8F93\u51FA\uFF1A\u52FE\u9009\u540E\u5B9E\u9645\u8F93\u51FA\u5BF9\u5B66\u5458\u59CB\u7EC8\u4E0D\u53EF\u89C1")) }, /* @__PURE__ */ React.createElement("i", { style: { marginLeft: 6, marginRight: 13, color: "#145DFF" }, className: "iconfont icon-xiaowenhao2 font14" }))), /* @__PURE__ */ React.createElement("div", null, /* @__PURE__ */ React.createElement(
|
|
es_checkbox["default"],
|
|
{
|
|
className: "font14 ml5",
|
|
checked: item.hidden === 1,
|
|
onChange: (e) => {
|
|
const testData = testSetList.map((test, testIndex) => {
|
|
if (testIndex === key) {
|
|
let param = {
|
|
is_invisible: false,
|
|
actual_output_visible: false
|
|
};
|
|
if (e.target.checked) {
|
|
param = {
|
|
is_invisible: true,
|
|
actual_output_visible: true
|
|
};
|
|
}
|
|
return __spreadProps(__spreadValues(__spreadValues({}, test), param), { hidden: e.target.checked ? 1 : 0 });
|
|
}
|
|
return test;
|
|
});
|
|
setTestSetList(testData);
|
|
}
|
|
},
|
|
"\u5168\u90E8\u9690\u85CF"
|
|
)), /* @__PURE__ */ React.createElement(
|
|
es_checkbox["default"],
|
|
{
|
|
checked: item.is_invisible,
|
|
style: { margin: "0 60px" },
|
|
onChange: (e) => {
|
|
const testData = testSetList.map((test, testIndex) => {
|
|
if (testIndex === key) {
|
|
let hidden = 0;
|
|
if (e.target.checked && test.actual_output_visible) {
|
|
hidden = 1;
|
|
}
|
|
return __spreadProps(__spreadValues({}, test), { hidden, is_invisible: e.target.checked });
|
|
}
|
|
return test;
|
|
});
|
|
setTestSetList(testData);
|
|
}
|
|
},
|
|
"\u9690\u85CF\u9884\u671F\u8F93\u51FA"
|
|
), /* @__PURE__ */ React.createElement(
|
|
es_checkbox["default"],
|
|
{
|
|
checked: item.actual_output_visible,
|
|
onChange: (e) => {
|
|
const testData = testSetList.map((test, testIndex) => {
|
|
if (testIndex === key) {
|
|
let hidden = 0;
|
|
if (e.target.checked && test.is_invisible) {
|
|
hidden = 1;
|
|
}
|
|
return __spreadProps(__spreadValues({}, test), { hidden, actual_output_visible: e.target.checked });
|
|
}
|
|
return test;
|
|
});
|
|
setTestSetList(testData);
|
|
}
|
|
},
|
|
"\u9690\u85CF\u5B9E\u9645\u8F93\u51FA"
|
|
)), /* @__PURE__ */ React.createElement("div", { className: "mt20" }, /* @__PURE__ */ React.createElement("span", { className: "font14 mr20" }, "\u7279\u6B8A\u5224\u5B9A:"), /* @__PURE__ */ React.createElement(
|
|
es_checkbox["default"],
|
|
{
|
|
checked: item.last_match_rule,
|
|
onChange: (e) => {
|
|
const testData = testSetList.map((test, testIndex) => {
|
|
if (testIndex === key) {
|
|
return __spreadProps(__spreadValues({}, test), { last_match_rule: e.target.checked });
|
|
}
|
|
return test;
|
|
});
|
|
setTestSetList(testData);
|
|
}
|
|
},
|
|
/* @__PURE__ */ React.createElement("span", { className: "font14" }, "\u672B\u5C3E\u5339\u914D", /* @__PURE__ */ React.createElement("span", { className: "font12 c-light-black" }, "\uFF08\u5B9E\u9645\u8F93\u51FA\u4E0E\u9884\u671F\u8F93\u51FA\u6700\u540E\u4E00\u884C\u76F8\u540C\u5373\u53EF\u901A\u5173\uFF09"))
|
|
)))
|
|
)
|
|
);
|
|
}))),
|
|
/* @__PURE__ */ React.createElement("h4", { className: "font14 mt20 mb10" }, /* @__PURE__ */ React.createElement("span", { className: TestCasemodules.sub }, "*"), "\u8BC4\u6D4B\u811A\u672C"),
|
|
/* @__PURE__ */ React.createElement(tooltip/* default */.Z, { title: !open_evaluate && "\u8BF7\u542F\u7528Jupyter\u8BC4\u6D4B\u529F\u80FD\u540E\uFF0C\u8FDB\u884C\u7F16\u8F91", placement: "topLeft" }, /* @__PURE__ */ React.createElement(
|
|
es_form["default"].Item,
|
|
{
|
|
name: "choice_standard_scripts",
|
|
rules: [{ required: true, message: "\u8BF7\u9009\u62E9\u8BC4\u6D4B\u811A\u672C" }]
|
|
},
|
|
/* @__PURE__ */ React.createElement(
|
|
es_select["default"],
|
|
{
|
|
getPopupContainer: (trigger) => trigger.parentNode,
|
|
size: "large",
|
|
style: { width: 400 },
|
|
placeholder: "\u8BF7\u9009\u62E9\u8BC4\u6D4B\u811A\u672C"
|
|
},
|
|
list.map((item, index) => {
|
|
return /* @__PURE__ */ React.createElement(es_select["default"].Option, { value: item.id, key: index }, item.scptname);
|
|
})
|
|
)
|
|
)),
|
|
/* @__PURE__ */ React.createElement(tooltip/* default */.Z, { title: !open_evaluate && "\u8BF7\u542F\u7528Jupyter\u8BC4\u6D4B\u529F\u80FD\u540E\uFF0C\u8FDB\u884C\u7F16\u8F91", placement: "topLeft" }, /* @__PURE__ */ React.createElement(
|
|
es_form["default"].Item,
|
|
{
|
|
name: "evaluate_script"
|
|
},
|
|
/* @__PURE__ */ React.createElement(
|
|
monaco_editor/* default */.ZP,
|
|
{
|
|
height: 450,
|
|
style: { border: "1px solid #ccc" },
|
|
language: "shell",
|
|
theme: "vs-light",
|
|
options: {
|
|
readOnly: !open_evaluate
|
|
}
|
|
}
|
|
)
|
|
)),
|
|
(0,authority/* isSuperAdmins */.Ny)() && /* @__PURE__ */ React.createElement(row/* default */.Z, { className: "mb20", align: "middle" }, /* @__PURE__ */ React.createElement(
|
|
es_form["default"].Item,
|
|
{
|
|
name: "use_jupyter_result",
|
|
className: "mt10",
|
|
valuePropName: "checked",
|
|
noStyle: true
|
|
},
|
|
/* @__PURE__ */ React.createElement(es_switch/* default */.Z, null)
|
|
), /* @__PURE__ */ React.createElement("div", { className: "ml10" }, "\u662F\u5426\u6CBF\u7528Jupyter\u8FD0\u884C\u7ED3\u679C"))
|
|
), /* @__PURE__ */ React.createElement(
|
|
FixedButton/* FixedButton */.t,
|
|
{
|
|
okText: "\u4FDD\u5B58",
|
|
hasOkBtn: editable,
|
|
loading: btnLoading,
|
|
onCancel: () => _umi_production_exports.history.push(`/shixuns/${params == null ? void 0 : params.id}/challenges`),
|
|
onOk: () => form.submit(),
|
|
className: type === "jupyterLab" ? TestCasemodules.btn : ""
|
|
}
|
|
));
|
|
};
|
|
/* harmony default export */ var components_TestCase = (TestCase);
|
|
|
|
|
|
/***/ })
|
|
|
|
}]); |