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

feat: 科组长直接打分

zhangjie преди 8 месеца
родител
ревизия
947514a0a2
променени са 4 файла, в които са добавени 55 реда и са изтрити 7 реда
  1. 9 0
      src/api.js
  2. 16 1
      src/modules/mark-set/MarkRuleSet.vue
  3. 10 6
      src/modules/mark/components/MarkAction.vue
  4. 20 0
      src/modules/mark/leader/LeaderMarking.vue

+ 9 - 0
src/api.js

@@ -358,6 +358,15 @@ export const paperSelectLevelOrScore = (
     "json"
     "json"
   );
   );
 };
 };
+// leader direct score
+export const paperLeaderSelectScore = (workId, paperId, score, stage) => {
+  return $post(`/api/papers/leader/manualScore`, {
+    workId,
+    paperId,
+    score,
+    stage,
+  });
+};
 export const paperSelectLevelBatch = (taskIds, result, stage) => {
 export const paperSelectLevelBatch = (taskIds, result, stage) => {
   return $patch(`/api/marktasks/batch`, { taskIds, result, stage }, "json");
   return $patch(`/api/marktasks/batch`, { taskIds, result, stage }, "json");
 };
 };

+ 16 - 1
src/modules/mark-set/MarkRuleSet.vue

@@ -62,7 +62,7 @@
           ></Option>
           ></Option>
         </Select>
         </Select>
       </FormItem>
       </FormItem>
-      <FormItem label="是否启用直接输分功能:">
+      <FormItem label="评卷员是否启用直接输分功能:">
         <Select
         <Select
           v-model="modalForm.directScore"
           v-model="modalForm.directScore"
           :disabled="!modalFormCanEdit"
           :disabled="!modalFormCanEdit"
@@ -76,6 +76,20 @@
           ></Option>
           ></Option>
         </Select>
         </Select>
       </FormItem>
       </FormItem>
+      <FormItem label="科组长是否启用直接输分功能:">
+        <Select
+          v-model="modalForm.leaderDirectScore"
+          :disabled="!modalFormCanEdit"
+          placeholder="请选择"
+        >
+          <Option
+            v-for="(val, key) in BOOLEAN_TYPE"
+            :key="key"
+            :value="key * 1"
+            :label="val"
+          ></Option>
+        </Select>
+      </FormItem>
       <FormItem>
       <FormItem>
         <Button
         <Button
           shape="circle"
           shape="circle"
@@ -115,6 +129,7 @@ export default {
         scoreShowAllPaper: 0,
         scoreShowAllPaper: 0,
         isLevelToScore: 0,
         isLevelToScore: 0,
         directScore: 0,
         directScore: 0,
+        leaderDirectScore: 0,
       },
       },
       modalFormCanEdit: false,
       modalFormCanEdit: false,
       modalForm: {},
       modalForm: {},

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

@@ -78,7 +78,11 @@
             'action-grade-item-content',
             'action-grade-item-content',
             {
             {
               'action-item-content-disabled': btnClicked,
               'action-item-content-disabled': btnClicked,
-              'is-active': manualScoreModel.score == score,
+              'is-active':
+                IS_MARKER &&
+                paramsSet.directScore &&
+                manualScoreModel.score >= level.minScore &&
+                manualMaxScore.score <= level.maxScore,
             },
             },
           ]"
           ]"
           @click="selectLevel(level)"
           @click="selectLevel(level)"
@@ -109,7 +113,10 @@
     </div>
     </div>
     <div
     <div
       class="action-mark-input"
       class="action-mark-input"
-      v-if="rights.levelList && paramsSet.directScore"
+      v-if="
+        (rights.levelList && IS_MARKER && paramsSet.directScore) ||
+        (rights.gradeList && IS_MARK_LEADER && paramsSet.leaderDirectScore)
+      "
     >
     >
       <Form
       <Form
         ref="ManualScoreForm"
         ref="ManualScoreForm"
@@ -545,10 +552,7 @@ export default {
       const valid = await this.$refs.ManualScoreForm.validate();
       const valid = await this.$refs.ManualScoreForm.validate();
       if (!valid) return;
       if (!valid) return;
       // 输入分数在当前可选分数内时,判定为非手动输分
       // 输入分数在当前可选分数内时,判定为非手动输分
-      this.selectScore(
-        this.manualScoreModel.score,
-        this.scores.includes(this.manualScoreModel.score) ? 0 : 1
-      );
+      this.selectScore(this.manualScoreModel.score, 1);
       this.manualScoreModel.score = null;
       this.manualScoreModel.score = null;
     },
     },
     toPass() {
     toPass() {

+ 20 - 0
src/modules/mark/leader/LeaderMarking.vue

@@ -22,10 +22,12 @@
       <mark-action
       <mark-action
         :cur-paper-or-task="curPaper"
         :cur-paper-or-task="curPaper"
         :levels="levels"
         :levels="levels"
+        :params-set="paramsSet"
         :key="curPaper.key"
         :key="curPaper.key"
         @on-leader-level="leaderSelectLevel"
         @on-leader-level="leaderSelectLevel"
         @on-code-search="serachPaperByCode"
         @on-code-search="serachPaperByCode"
         @on-grade-change-search="searchGradeChangeList"
         @on-grade-change-search="searchGradeChangeList"
+        @on-select-score="scoreCurPaper"
         v-if="curPaper.id"
         v-if="curPaper.id"
         ref="GradeAction"
         ref="GradeAction"
       ></mark-action>
       ></mark-action>
@@ -113,6 +115,7 @@ import {
   markStepChangeLevel,
   markStepChangeLevel,
   getParamsSet,
   getParamsSet,
   markTaskPaperList,
   markTaskPaperList,
+  paperLeaderSelectScore,
 } from "@/api";
 } from "@/api";
 
 
 export default {
 export default {
@@ -481,6 +484,23 @@ export default {
         },
         },
       });
       });
     },
     },
+    async scoreCurPaper(info) {
+      const paper = await paperLeaderSelectScore(
+        this.workId,
+        this.curPaper.id,
+        info.score,
+        "SCORE"
+      ).catch(() => {});
+      if (!paper) return;
+
+      this.getStepLevels();
+      if (this.carouselType) {
+        this.$refs.CarouselPapersPreview.cancel();
+        this.$refs.MarkerHistory.updatePapers();
+      } else {
+        this.toActionNextPaper();
+      }
+    },
     // paper carousel
     // paper carousel
     toViewCarouselPaper(paperIndex, papers) {
     toViewCarouselPaper(paperIndex, papers) {
       this.isFullscreenMarking = true;
       this.isFullscreenMarking = true;