"use strict"; (self["webpackChunk"] = self["webpackChunk"] || []).push([[316],{ /***/ 70992: /*!**********************************************************!*\ !*** ./src/components/QuestionEditor/index.less?modules ***! \**********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__) { // extracted by mini-css-extract-plugin /* harmony default export */ __webpack_exports__.Z = ({"wrap":"wrap___ilWvf","deleteIcon":"deleteIcon___JBDG8","keywordTag":"keywordTag___iieCb","questionTitleEditorWrap":"questionTitleEditorWrap___MHB5s","choiceWrap":"choiceWrap___QFkTc","choiceIndex":"choiceIndex___Mr2YO","judgementIndex":"judgementIndex___fUVWK","setAnswerBtn":"setAnswerBtn___Whox5","activeAnswer":"activeAnswer___fGU6Y","activeJudgementAnswer":"activeJudgementAnswer___wJv8P","actionWrapper":"actionWrapper___ERQ7k","addIcon":"addIcon___L9TE0","inputBorder":"inputBorder___Q5tRE","placeholder":"placeholder___p9sFY","blankWrapper":"blankWrapper___nC45e","blankInput":"blankInput___pEHsx","blankInputNumberWrapper":"blankInputNumberWrapper___uEHb0","addBtn":"addBtn___WR5ZI","blankIndex":"blankIndex___x9Pny","baseInputWrapper":"baseInputWrapper___eVsG7","collapseWrapper":"collapseWrapper___ZTysU","panelHeader":"panelHeader___QSN9g","open":"open___B6FU9","close":"close___QX19r","hide":"hide___mn25n"}); /***/ }), /***/ 86898: /*!**********************************************************!*\ !*** ./src/components/QuestionEditor/BProgramEditor.tsx ***! \**********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ t: function() { return /* binding */ BProgramEditor; } /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd */ 1056); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd */ 78673); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd */ 78241); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd */ 95237); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd */ 43604); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd */ 85731); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! antd */ 57809); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd */ 5112); /* harmony import */ var _MdEditorInForm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MdEditorInForm */ 11424); /* harmony import */ var umi__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! umi */ 23175); /* harmony import */ var _index_less_modules__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./index.less?modules */ 70992); /* harmony import */ var _Buttonloading__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Buttonloading */ 19547); var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __objRest = (source, exclude) => { var target = {}; for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop]; if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) { if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop]; } return target; }; const { TextArea } = antd__WEBPACK_IMPORTED_MODULE_5__["default"]; const 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" } ]; const ReversedSwitch = ({ value, onChange }) => { return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { checked: value, onChange: (checked) => { onChange(checked); } } ); }; const NULL_CH = "@\u2581@"; const NULL_CH1 = "@\u2581\u2581@"; const BProgramEditor = ({ questionTitlePlaceholder, form, scoreByBlank = false, hackidentifier, answerKey }) => { const [editAnalysis, setEditAnalysis] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); const [isloading, setloading] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); const param = (0,umi__WEBPACK_IMPORTED_MODULE_2__.useParams)(); const isEdit = param.type === "edit"; const getChCountBeforeCursor = (cm, cursor) => { const currentLine = cursor.line; let placeholderCountBefore = 0; for (let _line = 0; _line < currentLine; _line++) { placeholderCountBefore += cm.getLine(_line).split(NULL_CH).length - 1; } for (let _line = 0; _line < currentLine; _line++) { placeholderCountBefore += cm.getLine(_line).split(NULL_CH1).length - 1; } const currentLineStringBeforeCursor = cm.getLine(currentLine).substring(0, cursor.ch); placeholderCountBefore += currentLineStringBeforeCursor.split(NULL_CH).length - 1; placeholderCountBefore += currentLineStringBeforeCursor.split(NULL_CH1).length - 1; return placeholderCountBefore; }; const onCMBeforeChange = (cm, change, addBlank2, removeBlank2) => { const rangeText = cm.getRange(change.from, change.to); let newBlankNum = 0; change.text.forEach((item) => { newBlankNum += item.split(NULL_CH).length - 1; }); change.text.forEach((item) => { newBlankNum += item.split(NULL_CH1).length - 1; }); if (change.origin === "setValue") { return; } if (rangeText && (rangeText.indexOf(NULL_CH) !== -1 || rangeText.indexOf(NULL_CH1) !== -1)) { const placeholderCountInRange = rangeText.split(NULL_CH).length - 1 + rangeText.split(NULL_CH1).length - 1; const placeholderCountBefore = getChCountBeforeCursor( cm, change.from ); console.log( `\u5220\u9664${placeholderCountInRange}\u4E2A\uFF0C \u524D\u9762\u6709${placeholderCountBefore}\u4E2A\uFF0C\u65B0\u589E${newBlankNum}\u4E2A` ); if (placeholderCountInRange > 1) { const indexArray = Array.from({ length: placeholderCountInRange }, (item, index) => placeholderCountBefore + index); removeBlank2(indexArray); } else { removeBlank2(placeholderCountBefore); } } else if (newBlankNum > 0) { const placeholderCountBefore = getChCountBeforeCursor( cm, change.from ); console.log( `\u65B0\u589E${newBlankNum}\u4E2A\uFF0C\u4E4B\u524D\u6709${placeholderCountBefore}\u4E2A` ); addBlank2(newBlankNum, placeholderCountBefore); } }; const rewritePosition = () => { const preAnswerData = form.getFieldValue(answerKey); form.setFieldsValue({ [answerKey]: preAnswerData == null ? void 0 : preAnswerData.map((item, index) => __spreadProps(__spreadValues({}, item), { position: index + 1 })) }); }; const addFnRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(); const addBlank = (addNum, insertIndex) => { for (let i = 0; i < addNum; i++) { addFnRef.current({ position: null, answer_text: "" }, insertIndex + i); } rewritePosition(); }; const removeFnRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(); const removeBlank = (deleteIndex) => { removeFnRef.current(deleteIndex); rewritePosition(); }; const standardAnswersValue = antd__WEBPACK_IMPORTED_MODULE_7__["default"].useWatch(answerKey, form); return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z.wrap }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, { label: "\u8BD5\u9898\u63CF\u8FF0", name: ["hack", "description"], style: { display: "table" }, className: "w100", labelCol: { span: 24 }, rules: [{ required: true }] }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( _MdEditorInForm__WEBPACK_IMPORTED_MODULE_1__/* .MdEditorInForm */ .h, { scrollId: "name", watch: true, height: 140 } )), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z.questionTitleEditorWrap }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, { label: "\u7A0B\u5E8F\u4EE3\u7801", name: ["hack_codes", "code"], labelCol: { span: 24 }, rules: [{ required: true }] }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( _MdEditorInForm__WEBPACK_IMPORTED_MODULE_1__/* .MdEditorInForm */ .h, { scrollId: "name", watch: true, height: 400, showNullProgramButton: true, onChange: (a, b) => { const preAnswerData = form.getFieldValue(answerKey); console.log("--preAnswerData", preAnswerData, b); form.setFieldsValue({ [answerKey]: preAnswerData == null ? void 0 : preAnswerData.map((item, index) => { var _a; return __spreadProps(__spreadValues({}, item), { position: index + 1, multi_line: (_a = b == null ? void 0 : b[index]) == null ? void 0 : _a.multiLine }); }) }); }, placeholder: questionTitlePlaceholder, onCMBeforeChange: (cm, change) => { onCMBeforeChange(cm, change, addBlank, removeBlank); } } ))), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_7__["default"].List, { name: answerKey, rules: [{ validator(rule, values) { if ((values == null ? void 0 : values.length) === 0) { return Promise.reject(new Error("\u7B54\u6848\u4E0D\u80FD\u4E3A\u7A7A")); } for (const item of values) { const { answer_text } = item || {}; if ((answer_text == null ? void 0 : answer_text.length) === 0) { return Promise.reject(new Error("\u586B\u7A7A\u9879\u7B54\u6848\u4E0D\u80FD\u4E3A\u7A7A")); } } return Promise.resolve(); } }] }, (fields, { add, remove }, { errors }) => { addFnRef.current = add; removeFnRef.current = remove; return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, { label: "\u586B\u7A7A\u9879\u7B54\u6848", required: true, labelCol: { span: 24 } }), fields.map((_a, index) => { var _b = _a, { key, name } = _b, restField = __objRest(_b, ["key", "name"]); var _a2, _b2; return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { className: `mb20`, key, align: "middle", wrap: false }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { flex: "0 0 auto", className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z.blankIndex}` }, "\u586B\u7A7A\u9879", index + 1), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { flex: 1 }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { align: "top", justify: "space-between", wrap: false }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, __spreadProps(__spreadValues({}, restField), { name: [name, "answer_text"], noStyle: true }), ((_a2 = standardAnswersValue == null ? void 0 : standardAnswersValue[name]) == null ? void 0 : _a2.multi_line) || ((_b2 = standardAnswersValue == null ? void 0 : standardAnswersValue[name]) == null ? void 0 : _b2.multiLine) ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(TextArea, { spellCheck: false, style: { marginLeft: 10, width: 550 } }) : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_5__["default"], { style: { marginLeft: 10, width: 550 }, className: _index_less_modules__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z.blankInput, size: "large", maxLength: 1e3, onBlur: (e) => { } } ))), scoreByBlank && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { flex: "224px" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, __spreadProps(__spreadValues({}, restField), { name: [name, "score"], label: "\u5206\u503C", rules: [{ required: true }] }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, { size: "large", className: _index_less_modules__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z.blankInput, min: 0.1, max: 100, precision: 1, style: { width: "100%" }, placeholder: "\u6309\u7A7A\u7ED9\u5206\u8BF7\u8F93\u5165\u5206\u503C" })))))); })); } ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { onClick: () => setEditAnalysis(true) }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, { name: ["hack", "analysis"], label: "\u9898\u76EE\u89E3\u6790", labelCol: { span: 24 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_MdEditorInForm__WEBPACK_IMPORTED_MODULE_1__/* .RegularInput */ .x, { placeholder: "\u8BF7\u7F16\u8F91\u9898\u76EE\u89E3\u6790\uFF08\u975E\u5FC5\u586B\uFF09", isEdit: editAnalysis }))), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, { label: "\u7F16\u7A0B\u8BED\u8A00", style: { marginTop: 30 }, name: ["hack_codes", "language"], labelCol: { span: 24 }, rules: [{ required: true, message: "\u8BF7\u9009\u62E9\u7F16\u7A0B\u8BED\u8A00" }] }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_11__["default"], { size: "large" }, language.map((item) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_11__["default"].Option, { key: item.title, value: item.key }, " ", item.title)) ) ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, { label: "\u6700\u5927\u8BC4\u6D4B\u65F6\u957F\uFF08\u79D2\uFF09", style: { marginTop: 30 }, labelCol: { span: 24 }, required: true }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, { name: ["hack", "time_limit"], rules: [{ required: true, message: "\u8BF7\u8F93\u5165\u5355\u4E2A\u6D4B\u8BD5\u96C6\u8BC4\u6D4B\u65F6\u957F\u9650\u5236" }, { type: "number", min: 3, message: "\u6700\u5C0F\u9650\u5236\u65F6\u95F4\u662F3\u79D2" }], noStyle: true }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, { precision: 0, max: 10, min: 3, size: "large", style: { width: "97%" } }) ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { className: "ml10 font14" }, "\u79D2") ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, { label: "\u586B\u7A7A\u9879\u7B54\u6848\u7684\u7A7A\u683C\u5904\u7406\u65B9\u5F0F", style: { marginTop: 30 }, name: ["hack", "submit_rule"], labelCol: { span: 24 }, rules: [{ required: true, message: "\u8BF7\u9009\u62E9\u7F16\u7A0B\u8BED\u8A00" }] }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_12__/* ["default"].Group */ .ZP.Group, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .ZP, { value: 0 }, "\u4E0D\u5FFD\u7565\u7A7A\u683C"), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .ZP, { value: 1 }, "\u5FFD\u7565\u9996\u5C3E\u7A7A\u683C"), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .ZP, { value: 2 }, "\u5FFD\u7565\u6240\u6709\u7A7A\u683C")) ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { align: "middle", style: { marginTop: 30 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, { name: ["hack", "allow_student_debug"] }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ReversedSwitch, null)), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { className: "ml10" }, "\u5141\u8BB8\u5B66\u751F\u7B54\u9898\u65F6\u8FDB\u884C\u4EE3\u7801\u8C03\u8BD5")), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, { label: "\u6D4B\u8BD5\u7528\u4F8B", required: true } ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { style: { background: "#F6F7F9", padding: 15 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, { label: "\u8F93\u5165", labelCol: { span: 24 }, name: ["hack_sets", "input"] }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( TextArea, { rows: 4 } ) ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_7__["default"].Item, { label: "\u8F93\u51FA", labelCol: { span: 24 }, name: ["hack_sets", "output"], rules: [{ required: true, message: "\u8BF7\u8F93\u5165\u8F93\u51FA\u5185\u5BB9" }] }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( TextArea, { rows: 4 } ) )), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_Buttonloading__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { answerKey, hackidentifier, ButtonText: "\u81EA\u6D4B\u8FD0\u884C", ButtonProps: { ghost: true, icon: /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("i", { className: "iconfont icon-ceshi" }), style: { background: "rgba(55,173,131,0.05)", borderRadius: 19, border: "1px solid #37AD83", width: 116, height: 38, display: "inline-flex", fontSize: 14, alignItems: "center", justifyContent: "center", marginTop: 20, cursor: "pointer", color: "#37AD83" } }, form })); }; /***/ }), /***/ 53499: /*!****************************************************************!*\ !*** ./src/components/QuestionEditor/ChoiceQuestionEditor.tsx ***! \****************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ u: function() { return /* binding */ ChoiceQuestionEditor; } /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd */ 95237); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd */ 43604); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd */ 6848); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd */ 78241); /* harmony import */ var _index_less_modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.less?modules */ 70992); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @ant-design/icons */ 71029); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @ant-design/icons */ 87306); /* harmony import */ var _MdEditorInForm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MdEditorInForm */ 11424); var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __objRest = (source, exclude) => { var target = {}; for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop]; if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) { if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop]; } return target; }; const tagList = [ "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" ]; const ChoiceQuestionItem = ({ value, onChange, choiceTextKey, answerKey, index, isEdit, setInputActive, form, choiceOptionsPath, allowChangeMode, showAddIcon, addItem, deleteItem }) => { const isActiveAnswer = (value == null ? void 0 : value[answerKey]) === 1; const setAllOptionsToFalse = () => { const options = form.getFieldValue(choiceOptionsPath); form.setFieldValue(choiceOptionsPath, options.map((item) => __spreadProps(__spreadValues({}, item), { [answerKey]: 0 }))); }; const setActiveAnswer = () => { if (isActiveAnswer) { onChange(__spreadProps(__spreadValues({}, value), { [answerKey]: 0 })); } else { if (!allowChangeMode) { setAllOptionsToFalse(); } onChange(__spreadProps(__spreadValues({}, value), { [answerKey]: 1 })); } }; return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.choiceWrap, align: "middle", wrap: false }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { onClick: setActiveAnswer, className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.choiceIndex} ${isActiveAnswer ? _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.activeAnswer : ""}` }, tagList[index]), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { flex: 1, className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.editorWrap} ml15`, onClick: setInputActive }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_MdEditorInForm__WEBPACK_IMPORTED_MODULE_2__/* .RegularInput */ .x, { height: 155, placeholder: "\u8BF7\u60A8\u8F93\u5165\u9009\u9879", isEdit, value: value == null ? void 0 : value[choiceTextKey], onChange: (v) => { onChange(__spreadProps(__spreadValues({}, value), { [choiceTextKey]: v })); } })), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { flex: "0 0 auto", className: "ml15" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( "div", { onClick: setActiveAnswer, className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.setAnswerBtn} ${isActiveAnswer ? _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.activeAnswer : ""}` }, isActiveAnswer ? "\u6B63\u786E\u7B54\u6848" : "\u8BBE\u4E3A\u7B54\u6848" ) ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.actionWrapper }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { title: "\u65B0\u589E\u53C2\u8003\u7B54\u6848" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( _ant_design_icons__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.addIcon, onClick: addItem, style: { visibility: showAddIcon ? "visible" : "hidden" } } )), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { title: "\u5220\u9664" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( _ant_design_icons__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.deleteIcon, onClick: deleteItem, style: { visibility: index > 1 ? "visible" : "hidden" } } )))); }; const ChoiceQuestionEditor = ({ questionTitlePlaceholder, titleKey, choiceKey, analysisKey, choiceTextKey, answerKey, choiceOptionsPath, allowChangeMode = true, form, showAnalysis = true }) => { const [activeEditor, setActiveEditor] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(); const [editAnalysis, setEditAnalysis] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.wrap }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.questionTitleEditorWrap }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__["default"].Item, { label: "\u9898\u5E72", name: titleKey, labelCol: { span: 24 }, rules: [{ required: true }] }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( _MdEditorInForm__WEBPACK_IMPORTED_MODULE_2__/* .MdEditorInForm */ .h, { scrollId: Array.isArray(titleKey) ? titleKey.join("_") : `${titleKey}`, watch: true, height: 140, placeholder: questionTitlePlaceholder } ))), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__["default"].Item, { label: "\u7B54\u6848\u9009\u9879", required: true, labelCol: { span: 24 } }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_8__["default"].List, { name: choiceKey, rules: [{ validator(rule, values) { const hasAnswer = values.some((option) => option[answerKey] === 1); const emptyAnswerIndex = values.findIndex((option) => { var _a; return ((_a = option[choiceTextKey]) == null ? void 0 : _a.length) <= 0; }); if (emptyAnswerIndex !== -1) { return Promise.reject(new Error(`\u8BF7\u5148\u8F93\u5165${tagList[emptyAnswerIndex]}\u9009\u9879\u7684\u5185\u5BB9`)); } if (!hasAnswer) { return Promise.reject(new Error("\u8BF7\u8BBE\u7F6E\u6B63\u786E\u7B54\u6848")); } return Promise.resolve(); } }] }, (fields, { add, remove }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { id: Array.isArray(choiceOptionsPath) ? choiceOptionsPath.join("_") : `${choiceOptionsPath}` }, fields.map((_a, index) => { var _b = _a, { key, name } = _b, restField = __objRest(_b, ["key", "name"]); const isEdit = activeEditor === key; const setInputActive = () => { setActiveEditor(key); }; const showAddIcon = index < 7 && index === fields.length - 1; const addItem = () => add({ [choiceTextKey]: "", [answerKey]: 0 }); const deleteItem = () => remove(name); return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__["default"].Item, __spreadProps(__spreadValues({}, restField), { key, name, noStyle: true }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( ChoiceQuestionItem, { choiceTextKey, answerKey, index, isEdit, setInputActive, form, choiceOptionsPath, allowChangeMode, showAddIcon, addItem, deleteItem } )); }), fields.length < 8 && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.addBtn} mb30`, onClick: () => add({ [choiceTextKey]: "", [answerKey]: 0 }) }, "\u6DFB\u52A0\u9009\u9879")) ), showAnalysis && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { onClick: () => setEditAnalysis(true) }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__["default"].Item, { name: analysisKey, label: "\u9898\u76EE\u89E3\u6790", labelCol: { span: 24 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_MdEditorInForm__WEBPACK_IMPORTED_MODULE_2__/* .RegularInput */ .x, { placeholder: "\u8BF7\u7F16\u8F91\u9898\u76EE\u89E3\u6790\uFF08\u975E\u5FC5\u586B\uFF09", isEdit: editAnalysis })))); }; /***/ }), /***/ 21152: /*!********************************************************************!*\ !*** ./src/components/QuestionEditor/CompletionQuestionEditor.tsx ***! \********************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ u: function() { return /* binding */ CompletionQuestionEditor; } /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd */ 43418); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd */ 95237); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd */ 43604); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd */ 1056); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd */ 6848); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd */ 78673); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd */ 78241); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! antd */ 85731); /* harmony import */ var _MdEditorInForm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./MdEditorInForm */ 11424); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @ant-design/icons */ 87306); /* harmony import */ var _index_less_modules__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./index.less?modules */ 70992); var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __objRest = (source, exclude) => { var target = {}; for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop]; if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) { if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop]; } return target; }; const BlankEditor = ({ value, onChange }) => { const handleDelete = (index) => { antd__WEBPACK_IMPORTED_MODULE_3__["default"].confirm({ centered: true, okText: "\u786E\u5B9A", cancelText: "\u53D6\u6D88", title: "\u63D0\u793A", content: "\u786E\u8BA4\u8981\u5220\u9664\u8FD9\u4E2A\u53C2\u8003\u7B54\u6848\u5417\uFF1F", className: _index_less_modules__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z.modal, onOk: () => { const valueCopy = [...value]; valueCopy.splice(index, 1); onChange(valueCopy); } }); }; const handleAdd = () => { const valueCopy = [...value]; valueCopy.push(""); onChange(valueCopy); }; return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { align: "middle", className: "ml20", gutter: [40, 20] }, value == null ? void 0 : value.map((v, index) => { return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { key: `${v}_${index}`, className: _index_less_modules__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z.blankWrapper }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_6__["default"], { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z.blankInput, defaultValue: v, maxLength: 1e3, onBlur: (e) => { const valueCopy = [...value]; const inputTrimValue = e.target.value.trim(); valueCopy[index] = inputTrimValue; onChange(valueCopy); } } ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { title: "\u5220\u9664" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( _ant_design_icons__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z.deleteIcon, style: { marginLeft: 15, visibility: index > 0 ? "visible" : "hidden" }, onClick: () => handleDelete(index) } ))); }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z.addBtn}`, onClick: () => { handleAdd(); } }, "\u65B0\u589E\u7B54\u6848"))); }; const ReversedSwitch = ({ value = true, onChange }) => { return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { checked: !value, onChange: (checked) => { onChange(!checked); } } ); }; const NULL_CH = "\u2581"; const CompletionQuestionEditor = ({ questionTitlePlaceholder, form, scoreByBlank = false, answerKey }) => { const [editAnalysis, setEditAnalysis] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); const getChCountBeforeCursor = (cm, cursor) => { const currentLine = cursor.line; let placeholderCountBefore = 0; for (let _line = 0; _line < currentLine; _line++) { placeholderCountBefore += cm.getLine(_line).split(NULL_CH).length - 1; } const currentLineStringBeforeCursor = cm.getLine(currentLine).substring(0, cursor.ch); placeholderCountBefore += currentLineStringBeforeCursor.split(NULL_CH).length - 1; return placeholderCountBefore; }; const onCMBeforeChange = (cm, change, addBlank2, removeBlank2) => { const rangeText = cm.getRange(change.from, change.to); let newBlankNum = 0; change.text.forEach((item) => { newBlankNum += item.split(NULL_CH).length - 1; }); if (change.origin === "setValue") { return; } if (rangeText && rangeText.indexOf(NULL_CH) !== -1) { const placeholderCountInRange = rangeText.split(NULL_CH).length - 1; const placeholderCountBefore = getChCountBeforeCursor( cm, change.from ); console.log( `\u5220\u9664${placeholderCountInRange}\u4E2A\uFF0C \u524D\u9762\u6709${placeholderCountBefore}\u4E2A\uFF0C\u65B0\u589E${newBlankNum}\u4E2A` ); if (placeholderCountInRange > 1) { const indexArray = Array.from({ length: placeholderCountInRange }, (item, index) => placeholderCountBefore + index); removeBlank2(indexArray); } else { removeBlank2(placeholderCountBefore); } } else if (newBlankNum > 0) { const placeholderCountBefore = getChCountBeforeCursor( cm, change.from ); console.log( `\u65B0\u589E${newBlankNum}\u4E2A\uFF0C\u4E4B\u524D\u6709${placeholderCountBefore}\u4E2A` ); addBlank2(newBlankNum, placeholderCountBefore); } }; const rewritePosition = () => { const preAnswerData = form.getFieldValue(answerKey); form.setFieldsValue({ [answerKey]: preAnswerData.map((item, index) => __spreadProps(__spreadValues({}, item), { position: index + 1 })) }); }; const addFnRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(); const addBlank = (addNum, insertIndex) => { for (let i = 0; i < addNum; i++) { addFnRef.current({ position: null, answer_text: [""] }, insertIndex + i); } rewritePosition(); }; const removeFnRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(); const removeBlank = (deleteIndex) => { removeFnRef.current(deleteIndex); rewritePosition(); }; const standardAnswersValue = antd__WEBPACK_IMPORTED_MODULE_10__["default"].useWatch(answerKey, form); return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z.wrap }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z.questionTitleEditorWrap }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_10__["default"].Item, { label: "\u9898\u5E72", name: "name", labelCol: { span: 24 }, rules: [{ required: true }] }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( _MdEditorInForm__WEBPACK_IMPORTED_MODULE_1__/* .MdEditorInForm */ .h, { scrollId: "name", watch: true, height: 140, placeholder: questionTitlePlaceholder, showNullButton: true, onCMBeforeChange: (cm, change) => { onCMBeforeChange(cm, change, addBlank, removeBlank); } } ))), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_10__["default"].List, { name: answerKey, rules: [{ validator(rule, values) { if ((values == null ? void 0 : values.length) === 0) { return Promise.reject(new Error("\u7B54\u6848\u4E0D\u80FD\u4E3A\u7A7A")); } for (const item of values) { const { answer_text } = item || {}; if (answer_text == null ? void 0 : answer_text.some((text) => (text == null ? void 0 : text.length) === 0)) { return Promise.reject(new Error("\u586B\u7A7A\u9879\u7B54\u6848\u4E0D\u80FD\u4E3A\u7A7A")); } } return Promise.resolve(); } }] }, (fields, { add, remove }, { errors }) => { addFnRef.current = add; removeFnRef.current = remove; return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_10__["default"].Item, { label: "\u7B54\u6848\u9009\u9879", required: true, labelCol: { span: 24 } }), fields.map((_a, index) => { var _b = _a, { key, name } = _b, restField = __objRest(_b, ["key", "name"]); return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { className: `mb20`, key, align: "middle", wrap: false }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { flex: "0 0 auto", className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z.blankIndex}` }, "\u586B\u7A7A\u9879", index + 1), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { flex: 1 }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { align: "top", justify: "space-between", wrap: false }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_10__["default"].Item, __spreadProps(__spreadValues({}, restField), { name: [name, "answer_text"], noStyle: true }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(BlankEditor, null))), scoreByBlank && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { flex: "224px" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_10__["default"].Item, __spreadProps(__spreadValues({}, restField), { name: [name, "score"], label: "\u5206\u503C", rules: [{ required: true }], className: _index_less_modules__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z.blankInputNumberWrapper }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z.blankInput, min: 0.1, max: 100, precision: 1, style: { width: "100%" }, placeholder: "\u6309\u7A7A\u7ED9\u5206\u8BF7\u8F93\u5165\u5206\u503C" })))), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_10__["default"].Item, __spreadProps(__spreadValues({}, restField), { name: [name, "position"], noStyle: true }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_6__["default"], { type: "hidden" })))); })); } ), (standardAnswersValue == null ? void 0 : standardAnswersValue.length) > 1 && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { align: "middle", className: (standardAnswersValue == null ? void 0 : standardAnswersValue.length) > 1 ? "mb30" : `${_index_less_modules__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z.hide}` }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_10__["default"].Item, { name: "is_ordered" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(ReversedSwitch, null)), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { className: "ml10" }, "\u5141\u8BB8\u5B66\u751F\u6BCF\u4E2A\u586B\u7A7A\u7684\u7B54\u6848\u4E0E\u6807\u51C6\u7B54\u6848\u7684\u987A\u5E8F\u4E0D\u4E00\u81F4") ), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { onClick: () => setEditAnalysis(true) }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_10__["default"].Item, { name: "analysis", label: "\u9898\u76EE\u89E3\u6790", labelCol: { span: 24 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_MdEditorInForm__WEBPACK_IMPORTED_MODULE_1__/* .RegularInput */ .x, { placeholder: "\u8BF7\u7F16\u8F91\u9898\u76EE\u89E3\u6790\uFF08\u975E\u5FC5\u586B\uFF09", isEdit: editAnalysis })))); }; /***/ }), /***/ 29542: /*!******************************************************************!*\ !*** ./src/components/QuestionEditor/JudgmentQuestionEditor.tsx ***! \******************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ Z: function() { return /* binding */ JudgmentQuestionEditor; } /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! antd */ 95237); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd */ 43604); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd */ 78241); /* harmony import */ var _index_less_modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.less?modules */ 70992); /* harmony import */ var _MdEditorInForm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MdEditorInForm */ 11424); var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __objRest = (source, exclude) => { var target = {}; for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop]; if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) { if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop]; } return target; }; const tagMap = { ["\u6B63\u786E"]: "T", ["\u9519\u8BEF"]: "F" }; const JudgmentQuestionItem = ({ value, onChange, form }) => { const isActiveAnswer = (value == null ? void 0 : value.is_answer) === 1; const judgementText = value == null ? void 0 : value.choice_text; const setActiveAnswer = () => { const formListValue = form.getFieldsValue().choices.map((choice) => ({ choice_text: choice.choice_text, is_answer: 0 })); form.setFieldsValue({ choices: formListValue }); onChange(__spreadProps(__spreadValues({}, value), { is_answer: 1 })); }; return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.choiceWrap, align: "middle", wrap: false }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { onClick: setActiveAnswer, className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.choiceIndex} ${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.judgementIndex} ${isActiveAnswer ? _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.activeAnswer : ""}` }, tagMap[judgementText]), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { flex: 1, className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.editorWrap} ml15` }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.inputBorder} ${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.placeholder} ${isActiveAnswer ? _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.activeJudgementAnswer : ""}` }, judgementText)), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { flex: "0 0 auto", className: "ml15" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( "div", { onClick: setActiveAnswer, className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.setAnswerBtn} ${isActiveAnswer ? _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.activeAnswer : ""}` }, isActiveAnswer ? "\u6B63\u786E\u7B54\u6848" : "\u8BBE\u4E3A\u7B54\u6848" ) )); }; const JudgmentQuestionEditor = ({ questionTitlePlaceholder, choiceKey, form }) => { const [editAnalysis, setEditAnalysis] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.wrap }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.questionTitleEditorWrap }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__["default"].Item, { label: "\u9898\u5E72", name: "name", labelCol: { span: 24 }, rules: [{ required: true }] }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( _MdEditorInForm__WEBPACK_IMPORTED_MODULE_2__/* .MdEditorInForm */ .h, { scrollId: "name", watch: true, height: 140, placeholder: questionTitlePlaceholder } ))), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__["default"].Item, { label: "\u7B54\u6848\u9009\u9879", required: true, labelCol: { span: 24 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_5__["default"].List, { name: "choices", rules: [{ validator(rule, values) { const hasAnswer = values.some((option) => (option == null ? void 0 : option.is_answer) === 1); if (hasAnswer) { return Promise.resolve(); } return Promise.reject(new Error("\u8BF7\u8BBE\u7F6E\u6B63\u786E\u7B54\u6848")); } }] }, (fields) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { id: "choices" }, fields.map((_a) => { var _b = _a, { key, name } = _b, restField = __objRest(_b, ["key", "name"]); return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__["default"].Item, __spreadProps(__spreadValues({}, restField), { key, name, noStyle: true }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(JudgmentQuestionItem, { form })); })) )), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { onClick: () => setEditAnalysis(true) }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__["default"].Item, { name: "analysis", label: "\u9898\u76EE\u89E3\u6790", labelCol: { span: 24 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_MdEditorInForm__WEBPACK_IMPORTED_MODULE_2__/* .RegularInput */ .x, { placeholder: "\u8BF7\u7F16\u8F91\u9898\u76EE\u89E3\u6790\uFF08\u975E\u5FC5\u586B\uFF09", isEdit: editAnalysis })))); }; /***/ }), /***/ 11424: /*!**********************************************************!*\ !*** ./src/components/QuestionEditor/MdEditorInForm.tsx ***! \**********************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ h: function() { return /* binding */ MdEditorInForm; }, /* harmony export */ x: function() { return /* binding */ RegularInput; } /* harmony export */ }); /* harmony import */ var _components_markdown_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @/components/markdown-editor */ 45707); /* harmony import */ var _index_less_modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.less?modules */ 70992); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ 59301); /* harmony import */ var _components_RenderHtml__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/RenderHtml */ 51618); var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __objRest = (source, exclude) => { var target = {}; for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop]; if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) { if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop]; } return target; }; const MdEditorInForm = (_a) => { var _b = _a, { value, onChange, scrollId } = _b, props = __objRest(_b, ["value", "onChange", "scrollId"]); return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_2__.createElement("div", { id: scrollId || "" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_2__.createElement( _components_markdown_editor__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z, __spreadProps(__spreadValues({}, props), { defaultValue: value, onChange: (a, b) => { console.log("a:", a, b); if (!!(b == null ? void 0 : b.length)) onChange(a, b); else onChange(a); } }) )); }; const RegularInput = ({ value, onChange, placeholder, height = 140, isEdit }) => { return isEdit ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_2__.createElement( _components_markdown_editor__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z, { watch: true, isFocus: true, height, placeholder, defaultValue: value, onChange } ) : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_2__.createElement("div", { style: { cursor: "pointer" } }, value ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_2__.createElement(_components_RenderHtml__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.inputBorder, value }) : /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_2__.createElement("div", { className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.inputBorder} ${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.placeholder}` }, placeholder)); }; /***/ }), /***/ 16560: /*!********************************************************************!*\ !*** ./src/components/QuestionEditor/SubjectiveQuestionEditor.tsx ***! \********************************************************************/ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) { /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ W: function() { return /* binding */ SubjectiveQuestionEditor; } /* harmony export */ }); /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ 59301); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! antd */ 8591); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! antd */ 12563); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! antd */ 78241); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! antd */ 78673); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! antd */ 95237); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! antd */ 43604); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! antd */ 6848); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! antd */ 1056); /* harmony import */ var antd__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! antd */ 85731); /* harmony import */ var _index_less_modules__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./index.less?modules */ 70992); /* harmony import */ var _MdEditorInForm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./MdEditorInForm */ 11424); /* harmony import */ var _components_markdown_editor__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/markdown-editor */ 45707); /* harmony import */ var _ant_design_icons__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! @ant-design/icons */ 98815); var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); var __objRest = (source, exclude) => { var target = {}; for (var prop in source) if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0) target[prop] = source[prop]; if (source != null && __getOwnPropSymbols) for (var prop of __getOwnPropSymbols(source)) { if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop)) target[prop] = source[prop]; } return target; }; const AnswerTextFormItem = (_a) => { var _b = _a, { value, onChange } = _b, props = __objRest(_b, ["value", "onChange"]); const handleChange = (v) => { onChange([v]); }; return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( _components_markdown_editor__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, __spreadProps(__spreadValues({}, props), { defaultValue: value == null ? void 0 : value[0], onChange: handleChange }) ); }; const test = (str) => { if (!str) { return false; } if (/^s*$/.test(str) || str.trim() === "") { antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .ZP.warning("\u5173\u952E\u8BCD\u4E0D\u80FD\u5168\u4E3A\u7A7A\u683C"); return; } let containSpecial = new RegExp("[ `~!@#$^&*()={}':;,\\[\\].<>/?~\uFF01@#\uFFE5\u2026\u2026&*\uFF08\uFF09\u2014\u3010\u3011\u2018\uFF1B\uFF1A\u201D\u201C\u3002\uFF0C\u3001\uFF1F\u300C\u300D\u300E\u300F_\\+\\-\xB7%\u300A\u300B]|[\\\\/]"); if (str === "|") { antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .ZP.warning("\u5173\u952E\u8BCD\u4E0D\u80FD\u53EA\u8F93\u5165\u4E00\u4E2A\u201C|\u201D\u5B57\u7B26\uFF01"); return false; } return true; }; const KeywordTag = ({ value = [], onClose }) => { return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_5__["default"], { closable: true, onClose, className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.keywordTag }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("pre", { style: { margin: "0px", whiteSpace: "pre-wrap" } }, value.join(" \u6216 "))); }; const SubjectiveQuestionEditor = ({ questionTitlePlaceholder, form, showKeywords, isMustKeyWords = showKeywords }) => { const [editAnalysis, setEditAnalysis] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); const [keywordsInput, setKeywordsInput] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(""); const useKeywordsValue = antd__WEBPACK_IMPORTED_MODULE_6__["default"].useWatch("use_keywords", form); const questionScore = antd__WEBPACK_IMPORTED_MODULE_6__["default"].useWatch("question_score", form); return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.wrap }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.questionTitleEditorWrap }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_6__["default"].Item, { label: "\u9898\u5E72", name: "name", labelCol: { span: 24 }, rules: [{ required: true }] }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( _MdEditorInForm__WEBPACK_IMPORTED_MODULE_2__/* .MdEditorInForm */ .h, { scrollId: "name", watch: true, height: 140, placeholder: questionTitlePlaceholder } ))), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_6__["default"].Item, { label: "\u53C2\u8003\u7B54\u6848", name: "answer_texts", labelCol: { span: 24 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( AnswerTextFormItem, { watch: true, height: 140, placeholder: "\u8BF7\u7F16\u8F91\u53C2\u8003\u7B54\u6848\uFF08\u975E\u5FC5\u586B\uFF09" } )), showKeywords && !isMustKeyWords && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_6__["default"].Item, { hidden: true, name: "use_keywords", valuePropName: "checked" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { defaultChecked: true })), showKeywords && isMustKeyWords && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { align: "middle", className: "mb30" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_6__["default"].Item, { name: "use_keywords", valuePropName: "checked" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, null)), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { className: "ml10" }, "\u5F00\u542F\u5173\u952E\u8BCD\u81EA\u52A8\u5224\u5206"), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, { placement: "right", title: "\u9009\u4E2D\u540E\uFF0C\u9700\u8981\u8BBE\u7F6E\u6BCF\u4E2A\u5173\u952E\u8BCD\u7684\u5206\u503C\uFF0C\u7CFB\u7EDF\u4F1A\u6839\u636E\u8BBE\u7F6E\u7684\u5173\u952E\u8BCD\u8FDB\u884C\u81EA\u52A8\u5224\u5206\uFF1B \u6240\u6709\u5173\u952E\u8BCD\u5206\u503C\u4E4B\u548C\u5FC5\u987B\u5C0F\u4E8E\u7B49\u4E8E\u5C0F\u9898\u5206\u503C\u3002" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_ant_design_icons__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, { style: { color: "#3061D0", marginLeft: 6, cursor: "pointer" } }) ))), (useKeywordsValue || !isMustKeyWords) && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_6__["default"].List, { name: "keywords", rules: [{ validator(rule, values) { if (!isMustKeyWords) { return Promise.resolve(); } if (!(values == null ? void 0 : values.length)) { return Promise.reject(new Error("\u8BF7\u8F93\u5165\u5173\u952E\u8BCD")); } const keywordsScoreSum = values == null ? void 0 : values.reduce((pre, cur) => pre + cur.score, 0); if (keywordsScoreSum > parseFloat(questionScore)) { return Promise.reject(new Error("\u6240\u6709\u5173\u952E\u8BCD\u7684\u5206\u503C\u4E4B\u548C\u5FC5\u987B\u5C0F\u4E8E\u7B49\u4E8E\u8BE5\u5C0F\u9898\u7684\u5206\u503C")); } return Promise.resolve(); } }] }, (fields, { add, remove }) => /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { className: `${_index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.title} mb10` }, !isMustKeyWords ? /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("span", { style: { color: "#9096A3" } }, "\u5224\u5206\u5173\u952E\u8BCD") : "\u5173\u952E\u8BCD"), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { align: "middle", className: "font14 mb30" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { flex: 1 }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement( antd__WEBPACK_IMPORTED_MODULE_12__["default"], { value: keywordsInput, onChange: (e) => { setKeywordsInput(e.target.value); }, maxLength: 50, allowClear: true, onPressEnter: (e) => { var _a, _b, _c, _d; const v = `${(_a = e.target) == null ? void 0 : _a.value}`; const keywordArr = (_c = (_b = v == null ? void 0 : v.split("|")) == null ? void 0 : _b.filter((k) => !!k)) == null ? void 0 : _c.map((item) => item == null ? void 0 : item.trim()); const currentKeywordsValue = form.getFieldValue("keywords"); const existKeywords = ((_d = currentKeywordsValue == null ? void 0 : currentKeywordsValue.map((item) => item == null ? void 0 : item.keyword)) == null ? void 0 : _d.flat()) || []; for (const word of keywordArr) { if (existKeywords.includes(word)) { antd__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .ZP.error("\u4E3A\u907F\u514D\u5224\u5206\u9519\u8BEF\uFF0C\u8BF7\u52FF\u8BBE\u7F6E\u76F8\u540C\u7684\u5173\u952E\u8BCD"); return; } } if (test(v)) { add({ keyword: keywordArr, score: 1 }); setKeywordsInput(""); } }, className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.inputBorder, placeholder: "\u652F\u6301\u8BBE\u7F6E\u591A\u4E2A\u5173\u952E\u8BCD\uFF1B\u5E76\u5217\u5173\u952E\u8BCD\uFF08\u6216\u7684\u5173\u7CFB\uFF09\u8BF7\u7528\u201C|\u201D\u5206\u9694\u5F00" } )), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { flex: "148px", style: { textAlign: "right", color: "#9096A3" } }, "\u201C\u56DE\u8F66\u952E\u201D\u4FDD\u5B58\u5173\u952E\u8BCD")), fields.map((_a) => { var _b = _a, { key, name } = _b, restField = __objRest(_b, ["key", "name"]); return /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { key, className: "mb20", style: { marginRight: 148 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { flex: 1 }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { align: "middle", justify: "space-between" }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_6__["default"].Item, __spreadProps(__spreadValues({}, restField), { name: [name, "keyword"] }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(KeywordTag, { onClose: () => remove(name) })), isMustKeyWords && /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_6__["default"].Item, __spreadProps(__spreadValues({}, restField), { name: [name, "score"], label: "\u5206\u503C", rules: [{ required: true }], className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.blankInputNumberWrapper }), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, { className: _index_less_modules__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z.blankInput, min: 0.1, max: 100, precision: 1, style: { width: "100%" }, placeholder: "\u8BF7\u8F93\u5165\u5173\u952E\u8BCD\u5206\u6570" }))))); }))), /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", { onClick: () => setEditAnalysis(true) }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(antd__WEBPACK_IMPORTED_MODULE_6__["default"].Item, { name: "analysis", label: "\u9898\u76EE\u89E3\u6790", labelCol: { span: 24 } }, /* @__PURE__ */ react__WEBPACK_IMPORTED_MODULE_0__.createElement(_MdEditorInForm__WEBPACK_IMPORTED_MODULE_2__/* .RegularInput */ .x, { placeholder: "\u8BF7\u7F16\u8F91\u9898\u76EE\u89E3\u6790\uFF08\u975E\u5FC5\u586B\uFF09", isEdit: editAnalysis })))); }; /***/ }) }]);