zhangjie 2 年之前
父節點
當前提交
0fd8ad41be

+ 0 - 5
src/assets/styles/pages.scss

@@ -1208,13 +1208,8 @@
 
       .v-editor {
         height: 100%;
-        padding-top: 20px;
-      }
-      .v-editor-head {
-        display: none;
       }
       .v-editor-container {
-        padding: 0;
         max-height: 100%;
         height: 100%;
       }

+ 19 - 11
src/modules/question/components/QuestionImportEdit.vue

@@ -38,7 +38,11 @@
               </div>
             </div>
             <div class="qe-part-body">
-              <v-editor v-model="paperRichJson"></v-editor>
+              <v-editor
+                v-model="paperRichJson"
+                :enable-formula="false"
+                :enable-audio="false"
+              ></v-editor>
             </div>
           </div>
         </div>
@@ -205,18 +209,19 @@ export default {
       if (!res) return;
 
       const cacheData = this.getCachePaperInfo(
-        this.paperData,
+        this.getImportPaperData(),
         questionInfoField
       );
+      console.log(cacheData);
       this.paperData = this.assignCachePaperData(res.data, cacheData);
       this.questionKey = randomCode();
     },
     getCachePaperInfo(paperData, cacheFields = []) {
       let cachePaperInfo = {};
-      paperData.forEach((detail) => {
-        detail.questions.forEach((question) => {
+      paperData.forEach((detail, dIndex) => {
+        detail.questionInfo.forEach((question) => {
           let info = {};
-          let k = `${detail.number}_${question.number}`;
+          let k = `${dIndex + 1}_${question.number}`;
           if (cacheFields.length) {
             cacheFields.forEach((field) => {
               info[field] = question[field];
@@ -231,11 +236,11 @@ export default {
       return cachePaperInfo;
     },
     assignCachePaperData(paperData, cacheData) {
-      paperData.forEach((detail) => {
+      paperData.forEach((detail, dIndex) => {
         detail.questions.forEach((question) => {
           Object.assign(
             question,
-            cacheData[`${detail.number}_${question.number}`] || {}
+            cacheData[`${dIndex + 1}_${question.number}`] || {}
           );
         });
       });
@@ -273,7 +278,7 @@ export default {
           totalScore: calcSum(questionInfo.map((q) => q.score || 0)),
         };
       });
-      console.log(detailInfo);
+      // console.log(detailInfo);
       return detailInfo;
     },
     checkImportPaperData(paperData) {
@@ -432,7 +437,7 @@ export default {
       this.loading = true;
 
       const res = await questionImportPaperSave({
-        courseId: this.courseId,
+        ...this.data.importData,
         paperData,
       }).catch(() => {});
 
@@ -467,8 +472,11 @@ export default {
       if (!res) return;
       this.$message.success("下载成功!");
     },
-    answerUploaded(answerData) {
-      const cacheData = this.getCachePaperInfo(answerData, questionInfoField);
+    answerUploaded(res) {
+      const cacheData = this.getCachePaperInfo(
+        res.data.detailInfo,
+        questionInfoField
+      );
       this.paperData = this.assignCachePaperData(this.paperData, cacheData);
       this.questionKey = randomCode();
     },

+ 10 - 2
src/modules/question/components/import-edit/FillBlankQuestion.vue

@@ -83,11 +83,19 @@ export default {
     initData() {
       this.modalForm = this.$objAssign(getInitQuestionModel(), this.question);
       this.modalForm.quesAnswer = [];
+      const quesAnswer = this.question.quesAnswer
+        ? JSON.parse(this.question.quesAnswer)
+        : [];
+
       if (!this.question.body || !this.question.body.sections) return;
       this.question.body.sections.forEach((section) => {
         section.blocks.forEach((block) => {
-          if (block.type === "cloze")
-            this.modalForm.quesAnswer.push({ body: { sections: [] } });
+          if (block.type !== "cloze") return;
+          const answerBody = quesAnswer[this.modalForm.quesAnswer.length] || {
+            sections: [],
+          };
+
+          this.modalForm.quesAnswer.push({ body: answerBody });
         });
       });
     },

+ 4 - 2
src/modules/question/components/import-edit/MatchQuestion.vue

@@ -112,7 +112,9 @@ export default {
     initData() {
       this.modalForm = this.$objAssign(getInitQuestionModel(), this.question);
       this.modalForm.courseId = this.parentQuestion.courseId;
-      this.modalForm.quesAnswer = [];
+      this.modalForm.quesAnswer = this.question.quesAnswer
+        ? JSON.parse(this.question.quesAnswer)
+        : [];
       this.quesAnswer = this.modalForm.quesAnswer[0] || null;
     },
     answerChange() {
@@ -128,7 +130,7 @@ export default {
     },
     getData() {
       let data = { ...this.modalForm };
-      data.quesAnswer = JSON.stringify(data.quesAnswer);
+      data.quesAnswer = JSON.stringify(data.quesAnswer || []);
       return data;
     },
     activeQuestion() {

+ 11 - 2
src/modules/question/components/import-edit/SelectQuestion.vue

@@ -132,10 +132,19 @@ export default {
     ...mapMutations("import-edit", ["setCurQuestion"]),
     initData() {
       this.modalForm = this.$objAssign(getInitQuestionModel(), this.question);
-      this.quesAnswer = this.IS_SIMPLE ? null : [];
+      this.modalForm.quesAnswer = this.question.quesAnswer
+        ? JSON.parse(this.question.quesAnswer)
+        : [];
+      if (this.IS_SIMPLE) {
+        this.quesAnswer = this.modalForm.quesAnswer
+          ? this.modalForm.quesAnswer[0]
+          : null;
+      } else {
+        this.quesAnswer = this.modalForm.quesAnswer || [];
+      }
       this.options = this.question.options.map((item) => {
         let nitem = { ...item };
-        if (!this.IS_SIMPLE) nitem.isCorrect = false;
+        nitem.isCorrect = this.modalForm.quesAnswer.includes(item.number);
         return nitem;
       });
     },

+ 4 - 1
src/modules/question/components/import-edit/TextAnswerQuestion.vue

@@ -77,7 +77,10 @@ export default {
     ...mapMutations("import-edit", ["setCurQuestion"]),
     initData() {
       this.modalForm = this.$objAssign(getInitQuestionModel(), this.question);
-      this.modalForm.quesAnswer = this.modalForm.quesAnswer || [];
+      this.modalForm.quesAnswer = this.question.quesAnswer
+        ? JSON.parse(this.question.quesAnswer)
+        : [];
+      this.quesAnswer = this.modalForm.quesAnswer[0] || null;
     },
     answerChange() {
       this.modalForm.quesAnswer = [