瀏覽代碼

编辑阅卷区域bug修改

zhangjie 3 年之前
父節點
當前提交
096a89c264

+ 22 - 1
src/modules/stmms/components/markParam/MarkPaperMarker.vue

@@ -83,6 +83,7 @@
           <el-button
             class="btn-primary"
             type="text"
+            :disabled="!paperList.length"
             @click="toSetArea(scope.row)"
             >评卷区</el-button
           >
@@ -106,6 +107,7 @@
       ref="ModifyMarkArea"
       :base-info="datas.basicPaperInfo"
       :group="curGroupInfo"
+      :paper-list="paperList"
       @modified="areaModified"
     ></modify-mark-area>
   </div>
@@ -114,6 +116,7 @@
 <script>
 import ModifyMarkerQuestion from "./ModifyMarkerQuestion";
 import ModifyMarkArea from "./ModifyMarkArea.vue";
+import { examStructureFindJpg } from "../../api";
 
 export default {
   name: "mark-paper-marker",
@@ -143,7 +146,8 @@ export default {
       MARK_TYPE: {
         0: "单评",
         1: "双评"
-      }
+      },
+      paperList: []
     };
   },
   filters: {
@@ -153,8 +157,25 @@ export default {
   },
   mounted() {
     this.initData();
+    this.getPaperList();
   },
   methods: {
+    async getPaperList() {
+      this.paperList = [];
+      const data = await examStructureFindJpg({
+        examId: this.datas.basicPaperInfo.examId,
+        courseCode: this.datas.basicPaperInfo.courseCode,
+        paperNumber: this.datas.basicPaperInfo.paperNumber
+      });
+      const papers = data || [];
+      papers.sort((a, b) => a.index - b.index);
+      this.paperList = papers.map(paper => {
+        return {
+          imgUrl: paper.path,
+          areas: []
+        };
+      });
+    },
     initData() {
       this.groupInfo = this.datas.groupInfo.map(item => {
         return { ...item };

+ 16 - 25
src/modules/stmms/components/markParam/ModifyMarkArea.vue

@@ -23,7 +23,7 @@
     </div>
     <div v-if="modalIsShow" class="area-container">
       <area-cropper
-        v-for="(paper, index) in paperList"
+        v-for="(paper, index) in papers"
         :imgUrl="paper.imgUrl"
         ref="AreaCropper"
         :key="paper.imgUrl"
@@ -39,7 +39,6 @@
 
 <script>
 import AreaCropper from "./areaCropper/AreaCropper.vue";
-import { examStructureFindJpg } from "../../api";
 
 export default {
   name: "modify-mark-area",
@@ -56,23 +55,30 @@ export default {
       default() {
         return {};
       }
+    },
+    paperList: {
+      type: Array,
+      default() {
+        return [];
+      }
     }
   },
   data() {
     return {
       modalIsShow: false,
-      paperList: []
+      papers: []
     };
   },
-  mounted() {
-    this.getPaperList();
-  },
   methods: {
     visibleChange() {
-      this.paperList.forEach(paper => (paper.areas = []));
+      this.papers = this.paperList.map(paper => {
+        let npaper = { ...paper };
+        npaper.areas = [];
+        return npaper;
+      });
       this.group.pictureConfigList.forEach(config => {
         const index = config.i - 1;
-        this.paperList[index].areas.push({ ...config });
+        this.papers[index].areas.push({ ...config });
       });
     },
     cancel() {
@@ -81,23 +87,8 @@ export default {
     open() {
       this.modalIsShow = true;
     },
-    async getPaperList() {
-      const data = await examStructureFindJpg({
-        examId: this.baseInfo.examId,
-        courseCode: this.baseInfo.courseCode,
-        paperNumber: this.baseInfo.paperNumber
-      });
-      const papers = data || [];
-      papers.sort((a, b) => a.index - b.index);
-      this.paperList = papers.map(paper => {
-        return {
-          imgUrl: paper.path,
-          areas: []
-        };
-      });
-    },
     areaChange(index, areas) {
-      this.paperList[index].areas = areas;
+      this.papers[index].areas = areas;
     },
     cropperCurareaChange(area) {
       this.$refs.AreaCropper.forEach(cropper => {
@@ -106,7 +97,7 @@ export default {
     },
     confirm() {
       let areas = [];
-      this.paperList.forEach((paper, pindex) => {
+      this.papers.forEach((paper, pindex) => {
         if (!paper.areas.length) return;
         paper.areas.forEach(area => {
           let narea = { i: pindex + 1 };