zhangjie 1 год назад
Родитель
Сommit
6752d0dee9

+ 19 - 0
src/assets/styles/marker.less

@@ -530,6 +530,25 @@
     overflow-y: auto;
     overflow-x: hidden;
   }
+  // action-history-mark
+  .action-history-mark {
+    position: absolute;
+    top: 15px;
+    left: 50%;
+    transform: translateX(-50%);
+    padding: 5px 10px;
+    line-height: 20px;
+    border-radius: 5px;
+    background-color: @color-text;
+    color: @font-color-main;
+    cursor: pointer;
+
+    &:hover,
+    &.mark-act {
+      background-color: @brown-color;
+      color: #fff;
+    }
+  }
 
   .action-search {
     border-top: 1px dashed @color-text;

+ 26 - 2
src/modules/grading/components/GradeAction.vue

@@ -1,5 +1,12 @@
 <template>
   <div class="grade-action">
+    <div
+      v-if="IS_MARKER && curPaperOrTask.fontFrom === 'history'"
+      :class="['action-history-mark', { 'mark-act': curPaperOrTask.mark }]"
+      @click="toMark"
+    >
+      标记
+    </div>
     <!-- 头部信息 ------ -->
     <!-- 试卷状态 -->
     <!-- 状态:已评,待评,打回,仲裁 -->
@@ -167,7 +174,7 @@
 </template>
 
 <script>
-import { markHistoryList } from "@/api";
+import { markHistoryList, markTask } from "@/api";
 import { CODE_TYPE } from "@/constants/enumerate";
 import { mapState, mapMutations } from "vuex";
 import { levelNameTransform } from "@/plugins/utils";
@@ -325,7 +332,9 @@ export default {
       keyInput: null,
       // 科组长权限
       markLeaderOnlyRight: null,
-      leaderConfirm: true
+      leaderConfirm: true,
+      // 标记
+      loading: false
     };
   },
   computed: {
@@ -523,6 +532,21 @@ export default {
       }
       this.$emit("on-code-search", this.filter);
     },
+    async toMark() {
+      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(() => {});
+
+      this.loading = false;
+      if (!res) return;
+      this.curPaperOrTask.mark = !this.curPaperOrTask.mark;
+      this.$emit("on-history-mark", this.curPaperOrTask.mark);
+    },
     // keyboard submit
     keyEvent(e) {
       this.$Message.destroy();

+ 26 - 2
src/modules/grading/components/GradeActionRough.vue

@@ -1,5 +1,12 @@
 <template>
   <div class="grade-action">
+    <div
+      v-if="IS_MARKER && curPaperOrTask.fontFrom === 'history'"
+      :class="['action-history-mark', { 'mark-act': curPaperOrTask.mark }]"
+      @click="toMark"
+    >
+      标记
+    </div>
     <!-- 头部信息 ------ -->
     <!-- 试卷状态 -->
     <!-- 状态:已评,待评,打回,仲裁,改大裆,改大裆打小档 -->
@@ -242,7 +249,7 @@
 </template>
 
 <script>
-import { markHistoryList } from "@/api";
+import { markHistoryList, markTask } from "@/api";
 import { CODE_TYPE } from "@/constants/enumerate";
 import { mapState, mapMutations } from "vuex";
 import { levelNameTransform } from "@/plugins/utils";
@@ -439,7 +446,9 @@ export default {
       btnClicked: false,
       keyInput: null,
       // 科组长权限
-      markLeaderOnlyRight: null
+      markLeaderOnlyRight: null,
+      // 标记
+      loading: false
     };
   },
   computed: {
@@ -693,6 +702,21 @@ export default {
       }
       this.$emit("on-code-search", this.filter);
     },
+    async toMark() {
+      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(() => {});
+
+      this.loading = false;
+      if (!res) return;
+      this.curPaperOrTask.mark = !this.curPaperOrTask.mark;
+      this.$emit("on-history-mark", this.curPaperOrTask.mark);
+    },
     // keyboard submit
     keyEvent(e) {
       this.$Message.destroy();

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

@@ -32,6 +32,7 @@
           @on-select-level="gradeCurPaper"
           @on-pass="passCurPaper"
           @on-batch-level="multipleSelectLevel"
+          @on-history-mark="historyMarkChange"
         ></grade-action-rough>
         <grade-action
           v-else
@@ -44,6 +45,7 @@
           @on-select-level="gradeCurPaper"
           @on-pass="passCurPaper"
           @on-batch-level="multipleSelectLevel"
+          @on-history-mark="historyMarkChange"
         ></grade-action>
       </template>
 
@@ -606,6 +608,10 @@ export default {
         if (this.curStep.type === "markPaper") this.getList();
       }
     },
+    historyMarkChange(mark) {
+      this.markChange(mark);
+      this.$refs.MarkerHistory.updatePapers();
+    },
     toReview(data) {
       this.setShortcut(["action"]);
       this.isFullscreenMarking = true;

+ 6 - 1
src/modules/grading/marker/MarkerHistory.vue

@@ -24,7 +24,11 @@
               </div>
               <div class="image-action-name">{{ paper.actionName }}</div>
             </div>
-            <div class="image-sn" :title="'NO.' + paper.sn">
+            <div
+              class="image-sn"
+              :title="'NO.' + paper.sn"
+              @click="toReview(index)"
+            >
               NO.{{ paper.sn }}
             </div>
           </marker-image-view>
@@ -112,6 +116,7 @@ export default {
         paper.actionName = this.IS_MARK_LEADER
           ? this.getLeaderActionName(paper)
           : "已评";
+        paper.fontFrom = "history";
       });
     },
     getLevelResult(paper) {

+ 26 - 2
src/modules/mark/components/MarkAction.vue

@@ -1,5 +1,12 @@
 <template>
   <div class="mark-action grade-action">
+    <div
+      v-if="IS_MARKER && curPaperOrTask.fontFrom === 'history'"
+      :class="['action-history-mark', { 'mark-act': curPaperOrTask.mark }]"
+      @click="toMark"
+    >
+      标记
+    </div>
     <!-- 头部信息 ------ -->
     <!-- 试卷状态 -->
     <!-- 状态:已评,待评,改档,改档打分 -->
@@ -188,7 +195,7 @@
 </template>
 
 <script>
-import { markHistoryList } from "@/api";
+import { markHistoryList, markTask } from "@/api";
 import { CODE_TYPE, CHANGE_LEVEL_STATUS } from "@/constants/enumerate";
 import { mapState, mapMutations } from "vuex";
 
@@ -325,7 +332,9 @@ export default {
       curLevel: {},
       setT: null,
       btnClicked: false,
-      keyInput: null
+      keyInput: null,
+      // 标记
+      loading: false
     };
   },
   computed: {
@@ -494,6 +503,21 @@ export default {
     searchGradeChange() {
       this.$emit("on-grade-change-search", this.applyChangeLevelStatus);
     },
+    async toMark() {
+      if (this.loading) return;
+      this.loading = true;
+      let res = null;
+      res = await markTask({
+        markTaskId: this.curPaperOrTask.id,
+        isMark: !this.curPaperOrTask.mark,
+        stage: "SCORE"
+      }).catch(() => {});
+
+      this.loading = false;
+      if (!res) return;
+      this.curPaperOrTask.mark = !this.curPaperOrTask.mark;
+      this.$emit("on-history-mark", this.curPaperOrTask.mark);
+    },
     // keyboard submit
     keyEvent(e) {
       if (this.btnClicked) return;

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

@@ -18,6 +18,8 @@
       ]"
     >
       <mark-action
+        v-if="curPaper.id"
+        ref="GradeAction"
         :cur-paper-or-task="curPaper"
         :levels="levels"
         :params-set="paramsSet"
@@ -25,8 +27,7 @@
         @on-leader-level="gradingCurPaper"
         @on-select-score="scoreCurPaper"
         @on-pass="passCurPaper"
-        ref="GradeAction"
-        v-if="curPaper.id"
+        @on-history-mark="historyMarkChange"
       ></mark-action>
       <grade-ribbon v-if="curSubject.id" ref="GradeRibbon"></grade-ribbon>
     </div>
@@ -423,6 +424,10 @@ export default {
         if (this.curStep.type === "markPaper") this.getList();
       }
     },
+    historyMarkChange(mark) {
+      this.markChange(mark);
+      this.$refs.MarkerHistory.updatePapers();
+    },
     toReview(data) {
       this.setShortcut(["action"]);
       this.isFullscreenMarking = true;