Quellcode durchsuchen

试题编辑调整

zhangjie vor 2 Jahren
Ursprung
Commit
a1d8e89557

+ 1 - 1
src/modules/question/components/ModifySourceDetail.vue

@@ -134,7 +134,7 @@ export default {
       if (!res) return;
 
       this.$message.success("修改成功!");
-      this.$emit("modified");
+      this.$emit("modified", { ...this.modalForm, id: res.data });
       this.cancel();
     },
   },

+ 23 - 16
src/modules/question/components/QuestionEditDialog.vue

@@ -125,6 +125,7 @@ export default {
       modalIsShow: false,
       sourceDetailAllList: [],
       sourceDetailList: [],
+      curSourceDetail: {},
       limitShowCount: 10,
       showMore: false,
       questionModel: {
@@ -157,8 +158,15 @@ export default {
       this.loading = false;
       this.hasModifyQuestion = false;
 
+      let questionModel = Object.assign({}, initQuestionModel, this.question);
+
       if (this.isEdit) {
         this.sourceDetailList = this.sourceDetailAllList;
+
+        this.curSourceDetail = {
+          id: this.question.sourceDetailId,
+          questionType: this.question.questionType,
+        };
       } else {
         if (this.sourceDetailAllList.length > this.limitShowCount) {
           this.sourceDetailList = this.sourceDetailAllList.slice(
@@ -168,15 +176,14 @@ export default {
         } else {
           this.sourceDetailList = this.sourceDetailAllList;
         }
+        if (!this.question.sourceDetailId && !this.curSourceDetail.id) {
+          this.curSourceDetail = this.sourceDetailList[0];
+        }
+        questionModel.questionType = this.curSourceDetail.questionType;
+        questionModel.sourceDetailId = this.curSourceDetail.id;
       }
-
+      this.questionModel = questionModel;
       this.questionKey = randomCode();
-      this.questionModel = Object.assign({}, initQuestionModel, this.question);
-      if (!this.question.questionType) {
-        const curSourceDetail = this.sourceDetailList[0];
-        this.questionModel.questionType = curSourceDetail.questionType;
-        this.questionModel.sourceDetailId = curSourceDetail.id;
-      }
     },
     close() {
       this.modalIsShow = false;
@@ -224,20 +231,18 @@ export default {
       };
       this.$refs.ModifySourceDetail.open();
     },
-    async sourceDetailAdded() {
+    async sourceDetailAdded(sourceDetail) {
       await this.getSourceDetailList();
-      if (this.isEdit) {
-        this.sourceDetailList = this.sourceDetailAllList;
-        return;
-      }
-
       this.showMore = !this.showMore;
       this.switchMoreSourceDetail();
+      this.curSourceDetail = sourceDetail;
+      this.initData();
     },
     async switchType(item) {
       if (this.isEdit) return;
       if (this.questionModel.sourceDetailId === item.id) return;
       if (this.questionModel.questionType === item.questionType) {
+        this.curSourceDetail = item;
         this.questionModel.sourceDetailId = item.id;
         return;
       }
@@ -247,6 +252,7 @@ export default {
       }).catch(() => {});
       if (confirm !== "confirm") return;
 
+      this.curSourceDetail = item;
       this.questionKey = randomCode();
       this.questionModel = Object.assign({}, this.questionModel, {
         questionType: item.questionType,
@@ -262,14 +268,15 @@ export default {
       if (this.loading) return;
       this.loading = true;
 
-      this.questionModel = this.$refs.QuestionEditDetail.getData();
+      let questionModel = this.$refs.QuestionEditDetail.getData();
+      questionModel.sourceDetailId = this.questionModel.sourceDetailId;
       if (this.question.editMode === "paper") {
-        this.$emit("modified", this.questionModel);
+        this.$emit("modified", questionModel);
         this.loading = false;
         this.close();
         return;
       }
-      const res = await updateQuestionApi(this.questionModel).catch(() => {});
+      const res = await updateQuestionApi(questionModel).catch(() => {});
       this.loading = false;
       if (!res) return;