|
@@ -64,8 +64,9 @@
|
|
|
</el-form-item>
|
|
|
<el-form-item label="答案解析">
|
|
|
<v-editor
|
|
|
- v-model="modalForm.answerAnalysis"
|
|
|
+ v-model="answerAnalysis"
|
|
|
:enable-audio="false"
|
|
|
+ @change="answerAnalysisChange"
|
|
|
></v-editor>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
@@ -89,6 +90,7 @@ import QuestionInfoView from "./QuestionInfoView.vue";
|
|
|
import { getInitQuestionModel } from "./model";
|
|
|
import { mapState, mapMutations } from "vuex";
|
|
|
import { objTypeOf } from "@/plugins/utils";
|
|
|
+import { isAnEmptyRichText } from "@/utils/utils";
|
|
|
|
|
|
export default {
|
|
|
name: "SelectQuestion",
|
|
@@ -119,6 +121,7 @@ export default {
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
+ answerAnalysis: null,
|
|
|
};
|
|
|
},
|
|
|
computed: {
|
|
@@ -147,6 +150,7 @@ export default {
|
|
|
// 因为会缓存答案,所以会导致答案的格式完全不确定。
|
|
|
// 可能之前识别是判断题,后来识别成选择题。答案格式的不一样,会导致异常
|
|
|
this.initAnswer(this.question.quesAnswer);
|
|
|
+ this.initAnswerAnalysis(this.question.answerAnalysis);
|
|
|
if (this.IS_SIMPLE) {
|
|
|
this.quesAnswer = this.modalForm.quesAnswer.length
|
|
|
? this.modalForm.quesAnswer[0]
|
|
@@ -154,6 +158,9 @@ export default {
|
|
|
} else {
|
|
|
this.quesAnswer = this.modalForm.quesAnswer || [];
|
|
|
}
|
|
|
+ this.answerAnalysis = this.modalForm.answerAnalysis[0] || {
|
|
|
+ sections: [],
|
|
|
+ };
|
|
|
this.options = this.question.options.map((item) => {
|
|
|
let nitem = { ...item };
|
|
|
nitem.isCorrect = this.modalForm.quesAnswer.includes(item.number);
|
|
@@ -180,6 +187,23 @@ export default {
|
|
|
this.modalForm.quesAnswer = [];
|
|
|
}
|
|
|
},
|
|
|
+ initAnswerAnalysis(answer) {
|
|
|
+ let answerAnalysis = [];
|
|
|
+ if (answer) {
|
|
|
+ try {
|
|
|
+ answerAnalysis = JSON.parse(answer);
|
|
|
+ } catch (err) {
|
|
|
+ console.log(`answer error:${answer}`);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.modalForm.answerAnalysis = answerAnalysis.map((item) =>
|
|
|
+ isAnEmptyRichText(item)
|
|
|
+ ? {
|
|
|
+ sections: [],
|
|
|
+ }
|
|
|
+ : item
|
|
|
+ );
|
|
|
+ },
|
|
|
checkAnswerFormatValid(answer) {
|
|
|
if (objTypeOf(answer) !== "array") return;
|
|
|
|
|
@@ -197,6 +221,13 @@ export default {
|
|
|
}
|
|
|
this.$refs.modalFormComp.validateField(`answer`, () => {});
|
|
|
},
|
|
|
+ answerAnalysisChange() {
|
|
|
+ this.modalForm.answerAnalysis = [
|
|
|
+ {
|
|
|
+ ...this.answerAnalysis,
|
|
|
+ },
|
|
|
+ ];
|
|
|
+ },
|
|
|
questionInfoChange(questionInfo) {
|
|
|
this.modalForm = Object.assign({}, this.modalForm, questionInfo);
|
|
|
},
|
|
@@ -206,6 +237,10 @@ export default {
|
|
|
getData() {
|
|
|
let data = Object.assign({}, this.question, this.modalForm);
|
|
|
data.quesAnswer = JSON.stringify(this.modalForm.quesAnswer);
|
|
|
+ data.answerAnalysis =
|
|
|
+ data.answerAnalysis && data.answerAnalysis?.length
|
|
|
+ ? data.answerAnalysis[0]
|
|
|
+ : { sections: [] };
|
|
|
return data;
|
|
|
},
|
|
|
activeQuestion() {
|