|
@@ -330,6 +330,8 @@ export default {
|
|
|
return detailInfo;
|
|
|
},
|
|
|
checkImportPaperData(paperData) {
|
|
|
+ this.$message.closeAll();
|
|
|
+
|
|
|
// 题目内容校验
|
|
|
const MATCHING_QUESTION = ["PARAGRAPH_MATCHING", "BANKED_CLOZE"];
|
|
|
const SELECT_QUESTION = [
|
|
@@ -348,6 +350,7 @@ export default {
|
|
|
const { questionType, quesBody } = question;
|
|
|
const questionTitle = `第${detail.number}大题第${question.number}小题`;
|
|
|
let qErrInfo = [];
|
|
|
+ // 题干
|
|
|
if (
|
|
|
!MATCHING_QUESTION.includes(questionType) &&
|
|
|
(!quesBody || isAnEmptyRichText(quesBody))
|
|
@@ -355,6 +358,7 @@ export default {
|
|
|
qErrInfo.push(`没有题干`);
|
|
|
}
|
|
|
|
|
|
+ // 选项
|
|
|
if (SELECT_QUESTION.includes(questionType)) {
|
|
|
if (!question.quesOptions.length) {
|
|
|
qErrInfo.push(`没有选项`);
|
|
@@ -368,21 +372,50 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ // 小题数
|
|
|
if (
|
|
|
NESTED_QUESTION.includes(questionType) &&
|
|
|
!question.subQuestions.length
|
|
|
) {
|
|
|
qErrInfo.push(`没有小题`);
|
|
|
}
|
|
|
+
|
|
|
if (qErrInfo.length) {
|
|
|
errInfos.push(`${questionTitle}${qErrInfo.join("、")}`);
|
|
|
qErrInfo = [];
|
|
|
}
|
|
|
|
|
|
+ // 选词填空、段落匹配,单用模式时校验输入答案是否重复
|
|
|
+ if (
|
|
|
+ MATCHING_QUESTION.includes(questionType) &&
|
|
|
+ question.quesParam.matchingMode === 1
|
|
|
+ ) {
|
|
|
+ let selectedAnswer = [],
|
|
|
+ errorQuestionIndexs = [];
|
|
|
+ question.subQuestions.forEach((subq, sindex) => {
|
|
|
+ if (selectedAnswer.includes(subq.quesAnswer)) {
|
|
|
+ errorQuestionIndexs.push(`${question.number}-${sindex + 1}`);
|
|
|
+ } else {
|
|
|
+ if (subq.quesAnswer !== "[]")
|
|
|
+ selectedAnswer.push(subq.quesAnswer);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (errorQuestionIndexs.length) {
|
|
|
+ errInfos.push(
|
|
|
+ `第${
|
|
|
+ detail.number
|
|
|
+ }大题${errorQuestionIndexs.join()}小题答案重复!`
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
if (!NESTED_QUESTION.includes(questionType)) return;
|
|
|
|
|
|
+ // 套题小题校验
|
|
|
question.subQuestions.forEach((subq, sindex) => {
|
|
|
- const subqTitle = `第${detail.number}大题第${question.number}-${sindex}小题`;
|
|
|
+ const subqTitle = `第${detail.number}大题第${question.number}-${
|
|
|
+ sindex + 1
|
|
|
+ }小题`;
|
|
|
if (
|
|
|
questionType === "READING_COMPREHENSION" &&
|
|
|
(!subq.quesBody || isAnEmptyRichText(subq.quesBody))
|
|
@@ -423,6 +456,7 @@ export default {
|
|
|
}
|
|
|
|
|
|
if (!this.data.importData.useOriginalPaper) return true;
|
|
|
+
|
|
|
let detailNumbers = paperData.map((detail) => detail.number);
|
|
|
// 大题号重复性校验
|
|
|
let repeatDetaiNumbers = [];
|
|
@@ -470,7 +504,7 @@ export default {
|
|
|
});
|
|
|
if (subIndexs.length)
|
|
|
errQuestions.push(
|
|
|
- `第${detail.number}大题第${subIndexs.join}小题`
|
|
|
+ `第${detail.number}大题第${subIndexs.join()}小题`
|
|
|
);
|
|
|
} else {
|
|
|
if (!question.score) {
|