|
@@ -51,6 +51,8 @@ import { getInitQuestionModel } from "./model";
|
|
import QuestionInfoEdit from "../QuestionInfoEdit.vue";
|
|
import QuestionInfoEdit from "../QuestionInfoEdit.vue";
|
|
import QuestionInfoView from "./QuestionInfoView.vue";
|
|
import QuestionInfoView from "./QuestionInfoView.vue";
|
|
import { mapState, mapMutations } from "vuex";
|
|
import { mapState, mapMutations } from "vuex";
|
|
|
|
+import { objTypeOf } from "@/plugins/utils";
|
|
|
|
+import { isAnEmptyRichText } from "@/utils/utils";
|
|
|
|
|
|
export default {
|
|
export default {
|
|
name: "FillBlankQuestion",
|
|
name: "FillBlankQuestion",
|
|
@@ -81,10 +83,7 @@ export default {
|
|
...mapMutations("import-edit", ["setCurQuestion"]),
|
|
...mapMutations("import-edit", ["setCurQuestion"]),
|
|
initData() {
|
|
initData() {
|
|
this.modalForm = this.$objAssign(getInitQuestionModel(), this.question);
|
|
this.modalForm = this.$objAssign(getInitQuestionModel(), this.question);
|
|
- this.modalForm.quesAnswer = [];
|
|
|
|
- const quesAnswer = this.question.quesAnswer
|
|
|
|
- ? JSON.parse(this.question.quesAnswer)
|
|
|
|
- : [];
|
|
|
|
|
|
+ const quesAnswer = this.initAnswer(this.question.quesAnswer);
|
|
|
|
|
|
if (!this.question.body || !this.question.body.sections) return;
|
|
if (!this.question.body || !this.question.body.sections) return;
|
|
this.question.body.sections.forEach((section) => {
|
|
this.question.body.sections.forEach((section) => {
|
|
@@ -98,6 +97,26 @@ export default {
|
|
});
|
|
});
|
|
});
|
|
});
|
|
},
|
|
},
|
|
|
|
+ initAnswer(answer) {
|
|
|
|
+ let quesAnswer = [];
|
|
|
|
+ if (answer) {
|
|
|
|
+ try {
|
|
|
|
+ quesAnswer = JSON.parse(answer);
|
|
|
|
+ } catch (err) {
|
|
|
|
+ console.log(`answer error:${answer}`);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (this.checkAnswerFormatValid(quesAnswer)) {
|
|
|
|
+ return quesAnswer.map((item) =>
|
|
|
|
+ isAnEmptyRichText(item) ? null : item
|
|
|
|
+ );
|
|
|
|
+ } else {
|
|
|
|
+ return [];
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ checkAnswerFormatValid(answer) {
|
|
|
|
+ return objTypeOf(answer) !== "array";
|
|
|
|
+ },
|
|
questionInfoChange(questionInfo) {
|
|
questionInfoChange(questionInfo) {
|
|
this.modalForm = Object.assign({}, this.modalForm, questionInfo);
|
|
this.modalForm = Object.assign({}, this.modalForm, questionInfo);
|
|
},
|
|
},
|