Forráskód Böngészése

试题大题选题

zhangjie 2 éve
szülő
commit
b5697fb6c0
2 módosított fájl, 51 hozzáadás és 11 törlés
  1. 10 0
      src/modules/paper/api.js
  2. 41 11
      src/modules/paper/views/EditPaper.vue

+ 10 - 0
src/modules/paper/api.js

@@ -76,6 +76,16 @@ export const paperDeleteApi = (paperId) => {
 export const paperQuestionSaveApi = (questionUnit) => {
   return $httpWithMsg.put(`${QUESTION_API}/paperDetailUnit`, questionUnit);
 };
+export const paperDetailAddQuestionApi = (
+  paperId,
+  paperDetailId,
+  questions
+) => {
+  return $httpWithMsg.post(
+    `${QUESTION_API}/paper/selectQuestions/${paperId}/${paperDetailId}`,
+    questions
+  );
+};
 
 // paper-info
 export const paperAuditInfoApi = ({ paperId, curPage, pageSize }) => {

+ 41 - 11
src/modules/paper/views/EditPaper.vue

@@ -496,6 +496,13 @@
       :question="curQuestion"
       @modified="questionEdited"
     ></question-edit-dialog>
+    <!-- SelectQuestionDialog -->
+    <select-question-dialog
+      ref="SelectQuestionDialog"
+      :course-id="paper.course.id"
+      :disabled-question-ids="paperQuestionIds"
+      @confirm="questionSelected"
+    ></select-question-dialog>
   </div>
 </template>
 
@@ -511,6 +518,7 @@ import {
   paperQuestionDeleteApi,
   paperQuestionUnitDeleteApi,
   paperQuestionSaveApi,
+  paperDetailAddQuestionApi,
 } from "../api";
 import { QUESTION_API } from "@/constants/constants";
 
@@ -522,6 +530,7 @@ import PaperAuditInfo from "../components/PaperAuditInfo.vue";
 import ModifyDetailStruct from "../components/ModifyDetailStruct.vue";
 import ModifyRichText from "@/components/ModifyRichText.vue";
 import QuestionEditDialog from "../../question/components/QuestionEditDialog.vue";
+import SelectQuestionDialog from "../components/SelectQuestionDialog.vue";
 import { calcSum } from "@/plugins/utils";
 
 export default {
@@ -535,6 +544,7 @@ export default {
     ModifyRichText,
     QuestionEditDialog,
     ImportFileDialog,
+    SelectQuestionDialog,
   },
   data() {
     return {
@@ -545,6 +555,7 @@ export default {
         title: "",
         totalScore: 0,
         course: {
+          id: "",
           code: "",
           name: "",
         },
@@ -556,6 +567,7 @@ export default {
       quesAnswerShow: false,
       curDetail: {},
       curQuestion: {},
+      paperQuestionIds: [],
       // upload answer
       uploadAnswerUrl: "",
       answerTemplateUrl: "",
@@ -711,19 +723,36 @@ export default {
       this.paper.examRemark = content;
       this.toSavePaper();
     },
+    getPaperQuestionIds() {
+      let ids = [];
+      this.paper.paperDetails.forEach((detail) => {
+        let qids = detail.paperDetailUnits.map((q) => q.question.id);
+        ids.push(...qids);
+      });
+      return ids;
+    },
     // detail-action
+    // 大题选题
     toSelectPaperDetailQues(detail) {
-      this.$router.push({
-        path:
-          "/select_question/" +
-          this.paper.id +
-          "/" +
-          this.paper.course.id +
-          "/" +
-          detail.id +
-          "/" +
-          this.parentView,
-      });
+      this.curDetail = detail;
+      this.paperQuestionIds = this.getPaperQuestionIds();
+      this.$refs.SelectQuestionDialog.open();
+    },
+    async questionSelected(questions) {
+      if (!questions.length) {
+        this.$message.error("请选择试题!");
+        return;
+      }
+
+      const res = await paperDetailAddQuestionApi(
+        this.paperId,
+        this.curDetail.id,
+        questions
+      ).catch(() => {});
+      if (!res) return;
+
+      this.$message.success("添加成功!");
+      this.initPaper();
     },
     // 大题编辑
     toEditPaperDetail(detail) {
@@ -815,6 +844,7 @@ export default {
         },
       });
     },
+    // 编辑小题
     toEditQues(row) {
       let question = row.question;
       const courseInfo = {