Преглед на файлове

feat: 打分人确认改档

zhangjie преди 8 месеца
родител
ревизия
fee7871da3
променени са 4 файла, в които са добавени 42 реда и са изтрити 23 реда
  1. 5 0
      src/api.js
  2. 11 3
      src/modules/grading/marker/MarkerHeader.vue
  3. 17 13
      src/modules/mark/components/MarkAction.vue
  4. 9 7
      src/modules/mark/marker/MarkerMarking.vue

+ 5 - 0
src/api.js

@@ -510,6 +510,11 @@ export const batchNoList = (datas) => {
   return $post("/api/papers/listBatchNo", datas);
 };
 
+export const markConfirmLevelChange = (changeLevelTaskId) => {
+  // 打分人确认改档
+  return $get(`/api/marktasks/confirm/${changeLevelTaskId}`);
+};
+
 // mark -------------------------->
 // mark-progress
 // to see grading progress

+ 11 - 3
src/modules/grading/marker/MarkerHeader.vue

@@ -399,13 +399,18 @@ export default {
         }
       },
     },
+    curSubject: {
+      handler(val) {
+        if (val && val.stage) this.getBatchNoList();
+      },
+      immediate: true,
+    },
   },
-  mounted() {
+  created() {
     const subjectId = this.$route.params.subjectId.split("-");
     this.filter.workId = subjectId[0];
     this.filter.subject = subjectId[1];
     this.getAreaList();
-    this.getBatchNoList();
     if (this.IS_MARK_LEADER) this.getLeaderMarkerList();
 
     this.codeTypes = Object.entries(CODE_TYPE)
@@ -420,8 +425,11 @@ export default {
   methods: {
     ...mapMutations("marker", ["setPage", "setAreas", "setRibbonSet"]),
     async getBatchNoList() {
+      if (!this.IS_MARK_LEADER) return;
+      const subjectId = this.$route.params.subjectId.split("-");
       const res = await batchNoList({
-        ...this.filter,
+        workId: subjectId[0],
+        subject: subjectId[1],
         stage: this.curSubject.stage,
       });
       this.batchNos = res || [];

+ 17 - 13
src/modules/mark/components/MarkAction.vue

@@ -45,6 +45,13 @@
     >
       <p>{{ curPaperOrTask.auditStatus === 1 ? "同意改档" : "不同意改档" }}</p>
     </div>
+    <!-- mark confirm grade change -->
+    <div
+      class="action-grade-change-confirm"
+      v-if="rights.gradeChange && IS_MARKER"
+    >
+      <Button type="primary" @click="gradeChangeConfirm">确认改档</Button>
+    </div>
 
     <!-- 档位信息 -->
     <!-- 已评/待评(已评档位),改档打分(已评档位) -->
@@ -123,13 +130,6 @@
     <div class="action-grade-pass" v-if="rights.levelPass" @click="toPass">
       跳过
     </div>
-    <!-- mark confirm grade change -->
-    <div
-      class="action-grade-change-confirm"
-      v-if="IS_MARKER && stepType === 'shift'"
-    >
-      <Button type="primary" @click="gradeChangeConfirm">确认改档</Button>
-    </div>
 
     <!-- 评卷记录 -->
     <div class="action-grade-history" v-if="rights.markHis">
@@ -455,8 +455,8 @@ export default {
         };
       });
     },
-    selectLevel(level, actionType = null) {
-      if (this.curPaperOrTask.level === level.name && !actionType) return;
+    selectLevel(level) {
+      if (this.curPaperOrTask.level === level.name) return;
 
       if (this.btnClicked) return;
       this.btnClicked = true;
@@ -476,10 +476,14 @@ export default {
       });
     },
     gradeChangeConfirm() {
-      this.selectLevel(
-        { name: this.curPaperOrTask.redoLevel },
-        "gradeChangeConfirm"
-      );
+      if (this.btnClicked) return;
+      this.btnClicked = true;
+
+      this.setT = setTimeout(() => {
+        this.btnClicked = false;
+      }, 500);
+
+      this.$emit("on-confirm-level-change", this.curPaperOrTask.id);
     },
     selectScore(score) {
       if (this.btnClicked) return;

+ 9 - 7
src/modules/mark/marker/MarkerMarking.vue

@@ -24,7 +24,7 @@
         :levels="levels"
         :params-set="paramsSet"
         :key="paperKey"
-        @on-leader-level="gradingCurPaper"
+        @on-confirm-level-change="confirmLevelChange"
         @on-select-score="scoreCurPaper"
         @on-pass="passCurPaper"
         @on-history-mark="historyMarkChange"
@@ -132,6 +132,7 @@ import {
   workLevelList,
   paperSelectLevelOrScore,
   paperTaskPass,
+  markConfirmLevelChange,
 } from "@/api";
 
 export default {
@@ -503,12 +504,13 @@ export default {
       if (!this.papers.length) this.$refs.SimpleImagePreview.cancel();
       this.selectPaper(this.curPaperIndex);
     },
-    async gradingCurPaper({ selectedLevel }) {
-      await paperSelectLevelOrScore(
-        this.curPaper.id, // is taskId
-        selectedLevel,
-        "LEVEL"
-      );
+    async confirmLevelChange(curPaperOrTaskId) {
+      let res = true;
+      await markConfirmLevelChange(curPaperOrTaskId).catch(() => {
+        res = false;
+      });
+      if (!res) return;
+
       this.updateStepLevel(this.curStep, "shiftScore");
       this.toActionNextPaper();
     },