zhangjie 1 年之前
父節點
當前提交
383fbc816c

+ 33 - 33
src/modules/stmms/components/markParam/MarkParamObjectiveAnswer.vue

@@ -58,8 +58,8 @@
           label="小题号"
           width="80"
         ></el-table-column>
-        <el-table-column prop="totalScore" label="小题满分" width="105">
-        </el-table-column>
+        <!-- <el-table-column prop="totalScore" label="小题满分" width="105">
+        </el-table-column> -->
         <el-table-column label="答案" width="200px" class-name="answer-column">
           <div
             slot-scope="scope"
@@ -109,7 +109,6 @@
 import { QUESTION_SCORE_TYPE } from "@/constants/enumerate";
 import { updateObjectiveAnswer } from "../../api";
 import { mapState, mapMutations } from "vuex";
-import { deepCopy } from "@/plugins/utils";
 import MarkStatus from "./MarkStatus.vue";
 
 export default {
@@ -132,37 +131,38 @@ export default {
   methods: {
     ...mapMutations("markParam", ["setObjectiveStructure"]),
     initData() {
-      let objectiveStructure = this.objectiveStructure.length
-        ? deepCopy(this.objectiveStructure)
-        : [];
-      if (!objectiveStructure.length) return;
-
-      objectiveStructure.sort((a, b) => {
-        if (a.mainNumber === b.mainNumber) {
-          return a.subNumber - b.subNumber;
-        } else {
-          return a.mainNumber - b.mainNumber;
-        }
-      });
-
-      let curMainNumber = null,
-        curMainId = null;
-      this.tableData = objectiveStructure.map((item) => {
-        let nitem = { ...item };
-        if (nitem.mainNumber !== curMainNumber) {
-          curMainId = this.$randomCode();
-          curMainNumber = nitem.mainNumber;
-          nitem.mainFirstSub = true;
-        }
-        nitem.id = this.$randomCode();
-        nitem.mainId = curMainId;
-        nitem.expandSub = true;
-        nitem.answer = item.answer || "";
-        nitem.objectivePolicy = item.objectivePolicy || "NONE";
-        nitem.error = false;
-        nitem.errMsg = "";
-        return nitem;
+      let objectiveStructure = this.objectiveStructure.length || [];
+      let objectiveAnswerMap = {};
+      objectiveStructure.forEach((item) => {
+        objectiveAnswerMap[
+          `${item.type}_${item.mainNumber}_${item.subNumber}`
+        ] = {
+          answer: item.answer,
+          objectivePolicy: item.objectivePolicy,
+        };
       });
+      let curMainNumber = null;
+      this.tableData = this.markParamInfos.paperStructureInfo
+        .filter((item) => item.qType === "objective")
+        .map((item) => {
+          let nitem = { ...item };
+          if (nitem.mainNumber !== curMainNumber) {
+            curMainNumber = nitem.mainNumber;
+            nitem.mainFirstSub = true;
+          } else {
+            nitem.mainFirstSub = false;
+          }
+          const cacheVal =
+            objectiveAnswerMap[
+              `${item.type}_${item.mainNumber}_${item.subNumber}`
+            ] || {};
+          nitem.expandSub = true;
+          nitem.answer = cacheVal.answer || "";
+          nitem.objectivePolicy = cacheVal.objectivePolicy || "NONE";
+          nitem.error = false;
+          nitem.errMsg = "";
+          return nitem;
+        });
     },
     getRowClassName({ row }) {
       let classNames = [];

+ 3 - 9
src/modules/stmms/components/markParam/MarkParamStructure.vue

@@ -77,7 +77,7 @@ export default {
     };
   },
   computed: {
-    ...mapState("markParam", ["markParamInfos"]),
+    ...mapState("markParam", ["markParamInfos", "objectiveStructure"]),
     currentComponent() {
       return `mark-paper-${this.steps[this.current].name}`;
     },
@@ -294,18 +294,12 @@ export default {
 
       if (!res) return;
       // 判断客观题数据结构是否变化
-      const cacheObjectiveQuestionList =
-        this.markParamInfos.paperStructureInfo.filter(
-          (item) => item.qType === "objective"
-        );
-      const cacheStruct = this.getPaperStructData(cacheObjectiveQuestionList);
+      const cacheStruct = this.getPaperStructData(this.objectiveStructure);
       const curStruct = this.getPaperStructData(
         datas.paperStructureInfo.objectiveQuestionList
       );
       if (curStruct.join("") !== cacheStruct.join("")) {
-        this.setObjectiveStructure(
-          datas.paperStructureInfo.objectiveQuestionList
-        );
+        this.setObjectiveStructure([]);
       }
 
       this.infos.basicPaperInfo.id = res;

+ 1 - 1
src/modules/stmms/components/markParam/ModifyMarkParams.vue

@@ -166,7 +166,7 @@ export default {
             cardContent.pages
           );
         }
-        console.log(infos);
+        // console.log(infos);
         this.setMarkParamInfos(infos);
       }