zhangjie 8 сар өмнө
parent
commit
ac86319342

+ 14 - 6
src/modules/grading/components/GradeAction.vue

@@ -174,7 +174,7 @@
 </template>
 
 <script>
-import { markHistoryList, markTask } from "@/api";
+import { markHistoryList, markTask, markPaper } from "@/api";
 import { CODE_TYPE } from "@/constants/enumerate";
 import { mapState, mapMutations } from "vuex";
 import { levelNameTransform } from "@/plugins/utils";
@@ -537,11 +537,19 @@ export default {
       if (this.loading) return;
       this.loading = true;
       let res = null;
-      res = await markTask({
-        markTaskId: this.curPaperOrTask.id,
-        isMark: !this.curPaperOrTask.mark,
-        stage: this.curSubject.stage,
-      }).catch(() => {});
+      if (this.curUserRoleType === "MARK_LEADER") {
+        res = await markPaper({
+          paperId: this.curPaperOrTask.id,
+          isMark: !this.curPaperOrTask.mark,
+          role: this.curUserRoleType,
+        }).catch(() => {});
+      } else {
+        res = await markTask({
+          markTaskId: this.curPaperOrTask.id,
+          isMark: !this.curPaperOrTask.mark,
+          stage: this.curSubject.stage,
+        }).catch(() => {});
+      }
 
       this.loading = false;
       if (!res) return;

+ 14 - 6
src/modules/grading/components/GradeActionRough.vue

@@ -251,7 +251,7 @@
 </template>
 
 <script>
-import { markHistoryList, markTask } from "@/api";
+import { markHistoryList, markTask, markPaper } from "@/api";
 import { CODE_TYPE } from "@/constants/enumerate";
 import { mapState, mapMutations } from "vuex";
 import { levelNameTransform } from "@/plugins/utils";
@@ -708,11 +708,19 @@ export default {
       if (this.loading) return;
       this.loading = true;
       let res = null;
-      res = await markTask({
-        markTaskId: this.curPaperOrTask.id,
-        isMark: !this.curPaperOrTask.mark,
-        stage: this.curSubject.stage,
-      }).catch(() => {});
+      if (this.curUserRoleType === "MARK_LEADER") {
+        res = await markPaper({
+          paperId: this.curPaperOrTask.id,
+          isMark: !this.curPaperOrTask.mark,
+          role: this.curUserRoleType,
+        }).catch(() => {});
+      } else {
+        res = await markTask({
+          markTaskId: this.curPaperOrTask.id,
+          isMark: !this.curPaperOrTask.mark,
+          stage: this.curSubject.stage,
+        }).catch(() => {});
+      }
 
       this.loading = false;
       if (!res) return;

+ 3 - 1
src/modules/grading/leader/LeaderGrading.vue

@@ -36,6 +36,7 @@
           @on-leader-level="leaderSelectLevel"
           @on-batch-level="multipleSelectLevel"
           @on-leader-change-level="leaderChangeLevel"
+          @on-history-mark="historyMarkChange"
         ></grade-action-rough>
         <grade-action
           v-else
@@ -47,6 +48,7 @@
           :is-batch-action="!!multipleGradingList.length"
           @on-leader-level="leaderSelectLevel"
           @on-batch-level="multipleSelectLevel"
+          @on-history-mark="historyMarkChange"
         ></grade-action>
       </template>
       <grade-ribbon ref="GradeRibbon"></grade-ribbon>
@@ -72,6 +74,7 @@
               :data="paper"
               :can-select="ACTION_CAN_BATCH"
               :stage="curSubject.stage"
+              @on-mark="historyMarkChange"
               @to-review="toReview"
               @to-select="selectMultiplePaper"
             ></marker-image-view>
@@ -354,7 +357,6 @@ export default {
       const data = await markTaskPaperList(datas);
       data.data.forEach((item) => {
         item.markDisabled = markDisabled;
-        item.mark = item.markByLeader;
       });
       return data;
     },

+ 6 - 0
src/modules/grading/marker/MarkerGrading.vue

@@ -600,6 +600,12 @@ export default {
     },
     // paper view action
     markChange(mark) {
+      if (this.carouselType) {
+        this.carouselPapers[this.curCarouselPaperIndex].mark = mark;
+      } else {
+        this.papers[this.curPaperIndex].mark = mark;
+      }
+
       const spos = this.steps.otherStep.findIndex(
         (item) => item.type === "markPaper"
       );

+ 5 - 0
src/modules/grading/marker/MarkerImageView.vue

@@ -105,6 +105,11 @@ export default {
         this.initData();
       },
     },
+    "data.mark": {
+      handler() {
+        this.initData();
+      },
+    },
   },
   data() {
     return {

+ 14 - 6
src/modules/mark/components/MarkAction.vue

@@ -197,7 +197,7 @@
 </template>
 
 <script>
-import { markHistoryList, markTask } from "@/api";
+import { markHistoryList, markTask, markPaper } from "@/api";
 import { CODE_TYPE, CHANGE_LEVEL_STATUS } from "@/constants/enumerate";
 import { mapState, mapMutations } from "vuex";
 
@@ -512,11 +512,19 @@ export default {
       if (this.loading) return;
       this.loading = true;
       let res = null;
-      res = await markTask({
-        markTaskId: this.curPaperOrTask.id,
-        isMark: !this.curPaperOrTask.mark,
-        stage: "SCORE",
-      }).catch(() => {});
+      if (this.curUserRoleType === "MARK_LEADER") {
+        res = await markPaper({
+          paperId: this.curPaperOrTask.id,
+          isMark: !this.curPaperOrTask.mark,
+          role: this.curUserRoleType,
+        }).catch(() => {});
+      } else {
+        res = await markTask({
+          markTaskId: this.curPaperOrTask.id,
+          isMark: !this.curPaperOrTask.mark,
+          stage: "SCORE",
+        }).catch(() => {});
+      }
 
       this.loading = false;
       if (!res) return;

+ 2 - 1
src/modules/mark/leader/LeaderMarking.vue

@@ -27,6 +27,7 @@
         :levels="levels"
         :key="paperKey"
         @on-leader-level="leaderSelectLevel"
+        @on-history-mark="historyMarkChange"
       ></mark-action>
       <grade-ribbon v-if="curSubject.id" ref="GradeRibbon"></grade-ribbon>
     </div>
@@ -49,6 +50,7 @@
             <marker-image-view
               :data="paper"
               :stage="stage"
+              @on-mark="historyMarkChange"
               @to-review="toReview"
             ></marker-image-view>
           </div>
@@ -226,7 +228,6 @@ export default {
       this.papers = data.data.map((paper) => {
         paper.key = this.$randomCode();
         paper.title = this.IS_ADMIN ? paper.examNumber : `NO.${paper.sn}`;
-        paper.mark = paper.markByLeader;
         return paper;
       });
 

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

@@ -118,7 +118,7 @@ import { mapState, mapMutations } from "vuex";
 import MarkerHeader from "../../grading/marker/MarkerHeader";
 import MarkAction from "../components/MarkAction";
 import SimpleImagePreview from "@/components/SimpleImagePreview";
-import MarkerImageView from "../../grading/marker/MarkerImageView";
+import MarkerImageView from "../../grading/marker/MarkerImageView.vue";
 import MarkerHistory from "../../grading/marker/MarkerHistory";
 import GradeRibbon from "../../grading/components/GradeRibbon";
 
@@ -415,6 +415,12 @@ export default {
       this.toPage(1);
     },
     markChange(mark) {
+      if (this.carouselType) {
+        this.carouselPapers[this.curCarouselPaperIndex].mark = mark;
+      } else {
+        this.papers[this.curPaperIndex].mark = mark;
+      }
+
       const spos = this.steps.otherStep.findIndex(
         (item) => item.type === "markPaper"
       );