zhangjie 2 年之前
父節點
當前提交
bf831a319a
共有 24 個文件被更改,包括 349 次插入92 次删除
  1. 5 0
      src/modules/paper-export/assets/styles/paper-temp-preview.scss
  2. 0 0
      src/modules/paper-export/previewTemp.js
  3. 3 6
      src/modules/paper-export/views/PaperTemplateBuild.vue
  4. 0 1
      src/modules/paper/components/BuildPaperAuto.vue
  5. 199 0
      src/modules/paper/components/BuildPaperAutoStruct.vue
  6. 25 2
      src/modules/paper/components/BuildPaperManual.vue
  7. 4 0
      src/modules/paper/components/BuildPaperQuestionBase.vue
  8. 4 0
      src/modules/paper/components/BuildPaperQuestionNested.vue
  9. 15 18
      src/modules/paper/components/ModifyAutoBuildPaperStruct.vue
  10. 1 1
      src/modules/paper/components/QuestionGroupStruct.vue
  11. 6 19
      src/modules/paper/views/PaperRecycle.vue
  12. 15 1
      src/modules/question/components/FolderQuestionManageDialog.vue
  13. 18 4
      src/modules/question/components/QuestionBasePreview.vue
  14. 1 0
      src/modules/question/components/QuestionEditDialog.vue
  15. 5 0
      src/modules/question/components/edit/BankedClozeQuestion.vue
  16. 4 1
      src/modules/question/components/edit/BooleanQuestion.vue
  17. 4 1
      src/modules/question/components/edit/FillBlankQuestion.vue
  18. 4 1
      src/modules/question/components/edit/MatchQuestion.vue
  19. 8 4
      src/modules/question/components/edit/NestedQuestion.vue
  20. 12 2
      src/modules/question/components/edit/SelectQuestion.vue
  21. 4 1
      src/modules/question/components/edit/TextAnswerQuestion.vue
  22. 6 6
      src/modules/question/components/model/questionModel.js
  23. 6 19
      src/modules/question/views/QuestionRecycle.vue
  24. 0 5
      src/modules/questions/views/CheckDuplicateList.vue

+ 5 - 0
src/modules/paper-export/assets/styles/paper-temp-preview.scss

@@ -122,3 +122,8 @@
     list-style: decimal;
   }
 }
+.paper-template-build {
+  .element-item-paper-struct {
+    height: auto !important;
+  }
+}

File diff suppressed because it is too large
+ 0 - 0
src/modules/paper-export/previewTemp.js


+ 3 - 6
src/modules/paper-export/views/PaperTemplateBuild.vue

@@ -273,10 +273,7 @@ export default {
         detail.paperDetailUnits.forEach((question) => {
           let questionInfo = question.question;
           if (questionInfo.subQuestions && questionInfo.subQuestions.length) {
-            const bodys = this.parseTitleOption(
-              questionInfo.quesBody,
-              `${question.number}、`
-            );
+            const bodys = this.parseTitleOption(questionInfo.quesBody, "");
             renderStructList.push(...bodys);
 
             const isMatches = this.checkIsMatches(questionInfo.questionType);
@@ -379,7 +376,7 @@ export default {
         }),
       };
     },
-    parseSimpleQuestion(question, isCommon) {
+    parseSimpleQuestion(question) {
       let contents = [];
       let quesBody = question.quesBody;
       if (question.questionType === "FILL_BLANK_QUESTION") {
@@ -388,7 +385,7 @@ export default {
 
       const tbodys = this.parseTitleOption(
         quesBody,
-        isCommon ? `${question.number}、` : `${question.subNumber}、`
+        `${question.questionSeq}、`
       );
       contents.push(...tbodys);
 

+ 0 - 1
src/modules/paper/components/BuildPaperAuto.vue

@@ -71,7 +71,6 @@
           :ref="`QuestionStruct${detail.id}`"
           :filter-data="{
             courseId,
-            questionType: detail.questionType,
             sourceDetailId: detail.sourceDetailId,
           }"
           @count-change="(val) => structCountChange(val, detail)"

+ 199 - 0
src/modules/paper/components/BuildPaperAutoStruct.vue

@@ -0,0 +1,199 @@
+<template>
+  <div class="build-paper-auto">
+    <div class="build-step-title">
+      <h3><span>试卷结构设置</span></h3>
+      <div>
+        <el-button
+          type="primary"
+          size="small"
+          icon="el-icon-circle-plus-outline"
+          @click="addDetail"
+          >新增大题</el-button
+        >
+      </div>
+    </div>
+
+    <el-collapse v-model="activeNames" accordion>
+      <el-collapse-item
+        v-for="(detail, index) in details"
+        :key="detail.id"
+        :name="detail.id"
+      >
+        <div slot="title" class="detail-header">
+          <h3>{{ index + 1 }}、{{ detail.detailName }}</h3>
+          <div>
+            <el-button
+              size="mini"
+              type="text"
+              icon="el-icon-edit"
+              title="编辑"
+              @click.stop="editDetail(detail)"
+            ></el-button>
+            <el-button
+              class="btn-danger"
+              size="mini"
+              type="text"
+              icon="el-icon-delete"
+              title="删除"
+              @click.stop="removeDetail(index)"
+            ></el-button>
+          </div>
+        </div>
+        <div v-if="!isAnEmptyRichText(detail.description)" class="detail-desc">
+          <rich-text :text-json="detail.description"></rich-text>
+        </div>
+        <div class="detail-info">
+          <div>
+            <p>
+              <span>题型:</span>
+              <span>{{ detail.sourceDetailName }}</span>
+            </p>
+          </div>
+          <div>
+            <p>
+              <span>小题数:</span>
+              <span>{{ detail.questionCount }}</span>
+            </p>
+            <p>
+              <span>总分:</span>
+              <span>{{ detail.questionCount * detail.scorePerQuestion }}</span>
+            </p>
+          </div>
+        </div>
+        <question-group-struct
+          :ref="`QuestionStruct${detail.id}`"
+          :filter-data="{
+            courseId,
+            sourceDetailId: detail.sourceDetailId,
+          }"
+          :data-source="detail"
+          @count-change="(val) => structCountChange(val, detail)"
+        ></question-group-struct>
+      </el-collapse-item>
+    </el-collapse>
+
+    <!-- ModifyDetailStruct -->
+    <modify-detail-struct
+      ref="ModifyDetailStruct"
+      :detail="curDetail"
+      @modified="detailModified"
+    ></modify-detail-struct>
+  </div>
+</template>
+
+<script>
+import ModifyDetailStruct from "./ModifyDetailStruct.vue";
+import QuestionGroupStruct from "./QuestionGroupStruct.vue";
+import { isAnEmptyRichText } from "@/utils/utils";
+import { deepCopy } from "@/plugins/utils";
+
+export default {
+  name: "BuildPaperAutoStruct",
+  components: {
+    ModifyDetailStruct,
+    QuestionGroupStruct,
+  },
+  props: {
+    courseId: {
+      type: [String, Number],
+      default: "",
+    },
+    detailSource: {
+      type: Array,
+      default() {
+        return [];
+      },
+    },
+  },
+  data() {
+    return {
+      details: [],
+      curDetail: {},
+      activeNames: [],
+    };
+  },
+  computed: {
+    isEdit() {
+      return !!(this.detailSource && this.detailSource.length);
+    },
+  },
+  mounted() {
+    if (this.detailSource) {
+      this.details = deepCopy(this.detailSource);
+    }
+  },
+  methods: {
+    isAnEmptyRichText,
+    toSelectStruct() {
+      this.$refs.AutoBuildPaperStructManage.open();
+    },
+    addDetail() {
+      this.curDetail = { courseId: this.courseId };
+      this.$refs.ModifyDetailStruct.open();
+    },
+    editDetail(curDetail) {
+      this.curDetail = curDetail;
+      this.$refs.ModifyDetailStruct.open();
+    },
+    async removeDetail(index) {
+      const confirm = await this.$confirm(`确定要删除当前大题吗?`, "提示", {
+        type: "warning",
+      }).catch(() => {});
+      if (confirm !== "confirm") return;
+
+      this.details.splice(index, 1);
+    },
+    detailModified(data) {
+      const index = this.details.findIndex((item) => item.id === data.id);
+      if (index === -1) {
+        this.details.push({ ...data, questionCount: 0 });
+        if (!this.activeNames.includes(data.id)) this.activeNames.push(data.id);
+      } else {
+        this.$set(
+          this.details,
+          index,
+          Object.assign({}, this.details[index], data)
+        );
+      }
+    },
+    structCountChange(val, detail) {
+      const index = this.details.findIndex((item) => item.id === detail.id);
+      if (index === -1) return;
+      this.details[index].questionCount = val;
+    },
+    getData() {
+      let detailInfo = this.details.map((item) => {
+        const structData =
+          this.$refs[`QuestionStruct${item.id}`][0].getDataList();
+        return {
+          questionType: item.questionType,
+          description: item.description,
+          detailName: item.detailName,
+          sourceDetailId: item.sourceDetailId,
+          courseId: item.courseId,
+          score: structData.questionCount * item.scorePerQuestion,
+          ...structData,
+        };
+      });
+
+      return { detailInfo };
+    },
+    validate() {
+      if (!this.details.length) {
+        this.$message.error("请设置大题!");
+        return Promise.reject();
+      }
+
+      let hasNoQuestionDetail = this.details.some(
+        (detail) => !detail.questionCount
+      );
+      if (hasNoQuestionDetail) {
+        this.$message.error("有大题未设置小题!");
+        return Promise.reject();
+      }
+
+      return Promise.resolve(true);
+    },
+  },
+};
+</script>

+ 25 - 2
src/modules/paper/components/BuildPaperManual.vue

@@ -49,6 +49,7 @@
             <build-paper-question-base
               v-if="checkIsBaseQuestion(question.questionType)"
               :key="question.id"
+              :ref="`BuildPaperQuestion${dindex}`"
               v-model="question.score"
               :question="question"
               :question-serialno="qindex + 1"
@@ -59,6 +60,7 @@
             <build-paper-question-nested
               v-else
               :key="question.id"
+              :ref="`BuildPaperQuestion${dindex}`"
               :question="question"
               :question-serialno="qindex + 1"
               @on-edit="toEditQuestion"
@@ -70,7 +72,7 @@
           size="mini"
           type="success"
           icon="el-icon-circle-plus-outline"
-          @click="toAddQuestion(detail)"
+          @click="toAddQuestion(detail, dindex)"
           >新增小题</el-button
         >
       </el-collapse-item>
@@ -130,6 +132,7 @@ export default {
       details: [],
       // details,
       curDetail: {},
+      curDetailIndex: 0,
       curQuestion: {},
       activeNames: [],
       disabledQuestionIds: [],
@@ -173,10 +176,15 @@ export default {
           index,
           Object.assign({}, this.details[index], data)
         );
+
+        this.$refs[`BuildPaperQuestion${index}`].forEach((qRef) => {
+          qRef.setScore(data.scorePerQuestion);
+        });
       }
     },
-    toAddQuestion(detail) {
+    toAddQuestion(detail, detailIndex) {
       this.curDetail = detail;
+      this.curDetailIndex = detailIndex;
       let disabledQuestionIds = [];
       this.details.forEach((detail) => {
         detail.questions.forEach((q) => {
@@ -191,6 +199,14 @@ export default {
         q.score = this.curDetail.scorePerQuestion;
       });
       this.curDetail.questions.push(...questions);
+
+      this.$nextTick(() => {
+        this.$refs[`BuildPaperQuestion${this.curDetailIndex}`].forEach(
+          (qRef) => {
+            qRef.setScore(this.curDetail.scorePerQuestion);
+          }
+        );
+      });
     },
     toEditQuestion(question) {
       this.curQuestion = question;
@@ -214,6 +230,13 @@ export default {
           description: item.description,
           detailName: item.detailName,
           unitInfo: item.questions.map((q) => {
+            if (q.subQuestions && q.subQuestions.length) {
+              return {
+                questionId: q.id,
+                scoreList: q.subQuestions.map((subq) => subq.score),
+              };
+            }
+
             return {
               questionId: q.id,
               score: q.score,

+ 4 - 0
src/modules/paper/components/BuildPaperQuestionBase.vue

@@ -87,6 +87,10 @@ export default {
     },
   },
   methods: {
+    setScore(score) {
+      this.score = score;
+      this.scoreChange();
+    },
     scoreChange() {
       this.$emit("input", this.score);
       this.$emit("change", this.score);

+ 4 - 0
src/modules/paper/components/BuildPaperQuestionNested.vue

@@ -111,6 +111,10 @@ export default {
     }
   },
   methods: {
+    setScore(score) {
+      this.score = score;
+      this.scoreChange();
+    },
     scoreChange() {
       // 这里通过引用关系直接修改了小题分值
       this.question.subQuestions.forEach((subq) => {

+ 15 - 18
src/modules/paper/components/ModifyAutoBuildPaperStruct.vue

@@ -8,7 +8,7 @@
       :close-on-press-escape="false"
       append-to-body
       fullscreen
-      @opened="dialogOpened"
+      :show-close="false"
     >
       <div slot="title" class="box-justify">
         <div>
@@ -27,24 +27,27 @@
         </div>
       </div>
 
-      <build-paper-auto
-        v-if="modalIsShow"
-        ref="BuildPaperDetail"
-        :course-id="instance.courseId"
-        :detail-source="instance.structInfo.detailInfo"
-      ></build-paper-auto>
+      <div class="build-paper part-box">
+        <BuildPaperAutoStruct
+          v-if="modalIsShow"
+          ref="BuildPaperAutoStruct"
+          :course-id="instance.courseId"
+          :detail-source="instance.structInfo"
+        />
+      </div>
+
+      <div slot="footer"></div>
     </el-dialog>
   </div>
 </template>
 
 <script>
-import { deepCopy } from "@/plugins/utils";
 import { autoBuildPaperStructSaveApi } from "../api";
-import BuildPaperAuto from "./BuildPaperAuto.vue";
+import BuildPaperAutoStruct from "./BuildPaperAutoStruct.vue";
 
 export default {
   name: "ModifyAutoBuildPaperStruct",
-  components: { BuildPaperAuto },
+  components: { BuildPaperAutoStruct },
   props: {
     instance: {
       type: Object,
@@ -56,16 +59,10 @@ export default {
   data() {
     return {
       modalIsShow: false,
-      curDetail: {},
-      activeNames: [],
-      details: [],
       loading: false,
     };
   },
   methods: {
-    dialogOpened() {
-      this.details = deepCopy(this.instance.structInfo.detailInfo);
-    },
     cancel() {
       this.modalIsShow = false;
     },
@@ -73,14 +70,14 @@ export default {
       this.modalIsShow = true;
     },
     async confirm() {
-      const valid = await this.$refs.BuildPaperDetail.validate().catch(
+      const valid = await this.$refs.BuildPaperAutoStruct.validate().catch(
         () => {}
       );
       if (!valid) return;
 
       if (this.loading) return;
       this.loading = true;
-      let questionInfo = this.$refs.BuildPaperDetail.getData();
+      let questionInfo = this.$refs.BuildPaperAuto.getData();
 
       let datas = { ...this.instance };
       datas.structInfo = JSON.stringify(questionInfo.detailInfo);

+ 1 - 1
src/modules/paper/components/QuestionGroupStruct.vue

@@ -94,6 +94,7 @@
             <template
               v-if="
                 scope.row.difficultDistributeInfo &&
+                scope.row.difficultDistributeInfo.length &&
                 !(scope.row.useClassify && useProperty)
               "
               slot-scope="scope"
@@ -136,7 +137,6 @@ export default {
       default() {
         return {
           courseId: "",
-          questionType: "",
           sourceDetailId: "",
         };
       },

+ 6 - 19
src/modules/paper/views/PaperRecycle.vue

@@ -127,13 +127,8 @@ export default {
       if (confirm !== "confirm") return;
 
       this.loading = true;
-      const res = await clearPaperRecycleApi().catch((error) => {
-        this.$notify({
-          message: error.response.data.desc,
-          type: "error",
-        });
-      });
-
+      const res = await clearPaperRecycleApi().catch(() => {});
+      this.loading = false;
       if (!res) return;
 
       this.$notify({
@@ -158,13 +153,9 @@ export default {
     async deleteData(recycleParamList) {
       this.loading = true;
       const res = await thoroughDeletePaperApi(recycleParamList).catch(
-        (error) => {
-          this.$notify({
-            message: error.response.data.desc,
-            type: "error",
-          });
-        }
+        () => {}
       );
+      this.loading = false;
 
       if (!res) return;
 
@@ -202,12 +193,8 @@ export default {
     },
     async recoverData(recycleParamList) {
       this.loading = true;
-      const res = await recoverPaperApi(recycleParamList).catch((error) => {
-        this.$notify({
-          message: error.response.data.desc,
-          type: "error",
-        });
-      });
+      const res = await recoverPaperApi(recycleParamList).catch(() => {});
+      this.loading = false;
 
       if (!res) return;
 

+ 15 - 1
src/modules/question/components/FolderQuestionManageDialog.vue

@@ -299,7 +299,21 @@ export default {
       this.$refs.QuestionPreviewDialog.open();
     },
     toEditQuestion(row) {
-      this.curQuestion = row;
+      const courseInfo = {
+        courseId: row.course.id,
+        courseCode: row.course.code,
+        courseName: row.course.name,
+      };
+      let curQuestion = {
+        ...row,
+        ...courseInfo,
+      };
+      if (curQuestion.subQuestions && curQuestion.subQuestions.length) {
+        curQuestion.subQuestions = curQuestion.subQuestions.map((q) => {
+          return { ...q, ...courseInfo };
+        });
+      }
+      this.curQuestion = curQuestion;
       this.$refs.QuestionEditDialog.open();
     },
     toMoveQuestion(row) {

+ 18 - 4
src/modules/question/components/QuestionBasePreview.vue

@@ -125,10 +125,24 @@ export default {
       if (this.IS_FILL_BLANK_QUESTION) {
         this.textQuesAnswer = this.quesAnswer.map((item) => {
           let nitem = deepCopy(item);
-          nitem.sections[0].blocks.unshift({
-            type: "text",
-            value: `(${item.index + 1})`,
-          });
+          if (!nitem.sections || !nitem.sections.length) {
+            nitem.sections = [
+              {
+                blocks: [
+                  {
+                    type: "text",
+                    value: `(${item.index + 1})`,
+                  },
+                ],
+              },
+            ];
+          } else {
+            nitem.sections[0].blocks.unshift({
+              type: "text",
+              value: `(${item.index + 1})`,
+            });
+          }
+
           return nitem;
         });
       } else if (this.IS_TEXT_ANSWER_QUESTION) {

+ 1 - 0
src/modules/question/components/QuestionEditDialog.vue

@@ -7,6 +7,7 @@
     append-to-body
     fullscreen
     destroy-on-close
+    :show-close="false"
     @open="visibleChange"
   >
     <div slot="title" class="box-justify">

+ 5 - 0
src/modules/question/components/edit/BankedClozeQuestion.vue

@@ -254,6 +254,11 @@ export default {
       const valid = await this.$refs.modalFormComp.validate().catch(() => {});
       if (!valid) return;
 
+      if (!this.modalForm.subQuestions.length) {
+        this.$message.error("请录入小题");
+        return Promise.reject();
+      }
+
       let errorQuestionIndexs = [];
       for (let i = 0; i < this.$refs.MatchQuestion.length; i++) {
         const compInst = this.$refs.MatchQuestion[i];

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

@@ -24,7 +24,10 @@
         </el-radio-group>
       </el-form-item>
       <el-form-item label="答案解析">
-        <v-editor v-model="modalForm.comment" :enable-audio="false"></v-editor>
+        <v-editor
+          v-model="modalForm.answerAnalysis"
+          :enable-audio="false"
+        ></v-editor>
       </el-form-item>
     </el-form>
     <question-info-edit

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

@@ -33,7 +33,10 @@
         </div>
       </el-form-item>
       <el-form-item label="答案解析">
-        <v-editor v-model="modalForm.comment" :enable-audio="false"></v-editor>
+        <v-editor
+          v-model="modalForm.answerAnalysis"
+          :enable-audio="false"
+        ></v-editor>
       </el-form-item>
     </el-form>
     <question-info-edit

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

@@ -24,7 +24,10 @@
         </el-radio-group>
       </el-form-item>
       <el-form-item label="答案解析">
-        <v-editor v-model="modalForm.comment" :enable-audio="false"></v-editor>
+        <v-editor
+          v-model="modalForm.answerAnalysis"
+          :enable-audio="false"
+        ></v-editor>
       </el-form-item>
     </el-form>
     <question-info-edit

+ 8 - 4
src/modules/question/components/edit/NestedQuestion.vue

@@ -47,6 +47,7 @@
           ref="QuestionEditDetail"
           :question="subq"
           :show-ques-body="!IS_CLOZE"
+          :ques-body-required="!IS_LISTENING_QUESTION"
         ></component>
       </el-collapse-item>
     </el-collapse>
@@ -88,7 +89,7 @@
 </template>
 
 <script>
-import { isAnEmptyRichText, checkRichTextHasAudio } from "@/utils/utils";
+import { isAnEmptyRichText } from "@/utils/utils";
 import { randomCode } from "@/plugins/utils";
 import {
   getInitQuestionModel,
@@ -125,13 +126,16 @@ export default {
         quesBody: [
           {
             validator: (rule, value, callback) => {
+              if (this.IS_LISTENING_QUESTION) {
+                return callback();
+              }
               if (!value || isAnEmptyRichText(value)) {
                 return callback(new Error(`请输入题干`));
               }
 
-              if (this.IS_LISTENING_QUESTION && !checkRichTextHasAudio(value)) {
-                return callback(new Error(`题干中需要包含音频`));
-              }
+              // if (this.IS_LISTENING_QUESTION && !checkRichTextHasAudio(value)) {
+              //   return callback(new Error(`题干中需要包含音频`));
+              // }
 
               callback();
             },

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

@@ -94,7 +94,10 @@
         </el-checkbox-group> -->
       </el-form-item>
       <el-form-item label="答案解析">
-        <v-editor v-model="modalForm.comment" :enable-audio="false"></v-editor>
+        <v-editor
+          v-model="modalForm.answerAnalysis"
+          :enable-audio="false"
+        ></v-editor>
       </el-form-item>
     </el-form>
     <question-info-edit
@@ -124,6 +127,10 @@ export default {
       type: Boolean,
       default: true,
     },
+    quesBodyRequired: {
+      type: Boolean,
+      default: true,
+    },
   },
   data() {
     return {
@@ -133,7 +140,10 @@ export default {
         quesBody: [
           {
             validator: (rule, value, callback) => {
-              if (!value || isAnEmptyRichText(value)) {
+              if (
+                this.quesBodyRequired &&
+                (!value || isAnEmptyRichText(value))
+              ) {
                 return callback(new Error(`请输入题干`));
               }
               callback();

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

@@ -20,7 +20,10 @@
         ></v-editor>
       </el-form-item>
       <el-form-item label="答案解析">
-        <v-editor v-model="modalForm.comment" :enable-audio="false"></v-editor>
+        <v-editor
+          v-model="modalForm.answerAnalysis"
+          :enable-audio="false"
+        ></v-editor>
       </el-form-item>
     </el-form>
     <question-info-edit

+ 6 - 6
src/modules/question/components/model/questionModel.js

@@ -22,14 +22,14 @@ export const selectQuestion = {
     },
   ],
   quesAnswer: null,
-  comment: null,
+  answerAnalysis: null,
 };
 
 export const booleanQuestion = {
   questionType: "BOOL_ANSWER_QUESTION",
   quesBody: null,
   quesAnswer: null,
-  comment: null,
+  answerAnalysis: null,
 };
 
 export const fillBlankQuestion = {
@@ -41,7 +41,7 @@ export const fillBlankQuestion = {
     //   sections: [{ blocks: [{ type: "text", value: "" }] }],
     // },
   ],
-  comment: null,
+  answerAnalysis: null,
 };
 
 export const textAnswerQuestion = {
@@ -54,13 +54,13 @@ export const textAnswerQuestion = {
     //   sections: [{ blocks: [{ type: "text", value: "" }] }],
     // },
   ],
-  comment: null,
+  answerAnalysis: null,
 };
 // 完型填空/听力/阅读理解
 export const readingComprehensionQuestion = {
   questionType: "READING_COMPREHENSION",
   quesBody: null,
-  comment: null,
+  answerAnalysis: null,
   subQuestions: [],
 };
 
@@ -68,7 +68,7 @@ export const readingComprehensionQuestion = {
 export const bankedClozeQuestion = {
   questionType: "BANKED_CLOZE",
   quesBody: null,
-  comment: null,
+  answerAnalysis: null,
   subQuestions: [
     // {
     //   number: 1,

+ 6 - 19
src/modules/question/views/QuestionRecycle.vue

@@ -145,13 +145,8 @@ export default {
       if (confirm !== "confirm") return;
 
       this.loading = true;
-      const res = await clearQuestionRecycleApi().catch((error) => {
-        this.$notify({
-          message: error.response.data.desc,
-          type: "error",
-        });
-      });
-
+      const res = await clearQuestionRecycleApi().catch(() => {});
+      this.loading = false;
       if (!res) return;
 
       this.$notify({
@@ -176,13 +171,9 @@ export default {
     async deleteData(recycleParamList) {
       this.loading = true;
       const res = await thoroughDeleteQuestionApi(recycleParamList).catch(
-        (error) => {
-          this.$notify({
-            message: error.response.data.desc,
-            type: "error",
-          });
-        }
+        () => {}
       );
+      this.loading = false;
 
       if (!res) return;
 
@@ -220,12 +211,8 @@ export default {
     },
     async recoverData(recycleParamList) {
       this.loading = true;
-      const res = await recoverQuestionApi(recycleParamList).catch((error) => {
-        this.$notify({
-          message: error.response.data.desc,
-          type: "error",
-        });
-      });
+      const res = await recoverQuestionApi(recycleParamList).catch(() => {});
+      this.loading = false;
 
       if (!res) return;
 

+ 0 - 5
src/modules/questions/views/CheckDuplicateList.vue

@@ -108,11 +108,6 @@
             <span>{{ scope.row.course.name }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="试卷名称">
-          <template slot-scope="scope">
-            <span>{{ scope.row.basePaperName }}</span>
-          </template>
-        </el-table-column>
         <el-table-column label="题干" min-width="240">
           <template slot-scope="scope">
             <rich-text

Some files were not shown because too many files changed in this diff