zhangjie 2 лет назад
Родитель
Сommit
2507a3062e

+ 7 - 5
src/api.js

@@ -314,23 +314,25 @@ export const gradingStatData = datas => {
 export const workLevelList = async (workId, stage = "LEVEL") => {
   const data = await $get(`/api/admin/works/${workId}/levels`);
   if (stage === "ROUGH_LEVEL") {
-    const levelMap = [];
+    const levelMap = {};
     data.forEach(item => {
-      const ind = item.roughCode * 1 - 1;
+      const ind = item.roughCode;
       if (!levelMap[ind]) levelMap[ind] = [];
-
       levelMap[ind].push(item);
     });
-    return levelMap.map((group, ind) => {
+    let levelList = Object.keys(levelMap).map((roughCode, ind) => {
+      const group = levelMap[roughCode];
       const levels = group.map(item => item.code);
 
       return {
         id: ind + 1,
-        name: ind + 1,
+        name: roughCode,
         minScore: levels[0],
         maxScore: levels.slice(-1)[0]
       };
     });
+    levelList.sort((a, b) => (a.name < b.name ? -1 : 1));
+    return levelList;
   } else {
     return data.map(item => {
       return {

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

@@ -97,7 +97,7 @@
     <div class="action-grade-info" v-if="rights.gradeInfo && curLevel.name">
       <h3 class="grade-info-name">{{ curLevel.name | levelNameFilter }}</h3>
       <div class="grade-info-range">
-        <p>分数范围</p>
+        <p>{{ levelRangeName }}范围</p>
         <p>
           <span>{{ curLevel.minScore }}</span>
           <span>~</span>
@@ -162,6 +162,7 @@
 import { markHistoryList } from "@/api";
 import { CODE_TYPE } from "@/constants/enumerate";
 import { mapState, mapMutations } from "vuex";
+import { levelNameTransform } from "@/plugins/utils";
 
 // 三种情况:
 // 管理员(ADMIN),科组长(MARK_LEADER),评卷员(MARKER)
@@ -268,6 +269,7 @@ export default {
   data() {
     return {
       curUserRoleType: this.$ls.get("user", { role: "" }).role,
+      curPaperOrTaskLevel: "",
       rights: {
         ...initRights
       },
@@ -327,6 +329,9 @@ export default {
     },
     IS_MARK_LEADER() {
       return this.curUserRoleType === "MARK_LEADER";
+    },
+    levelRangeName() {
+      return this.curSubject.stage === "LEVEL" ? "分数" : "档位";
     }
   },
   watch: {
@@ -388,7 +393,7 @@ export default {
     getStepType() {
       const info = this.curPaperOrTask;
       if (info.sample) return "sample";
-      if (info.level) return "done";
+      if (this.curPaperOrTaskLevel) return "done";
       if (info.arbitrated) return "arbitrate";
       if (info.rejected) return "reject";
       if (!info.rejected && !info.arbitrated && !info.level) return "undo";
@@ -396,6 +401,10 @@ export default {
     },
     rebuildRight() {
       if (this.setT) clearTimeout(this.setT);
+      this.curPaperOrTaskLevel =
+        this.curSubject.stage === "LEVEL"
+          ? this.curPaperOrTask.level
+          : this.curPaperOrTask.roughLevel || this.curPaperOrTask.level;
 
       let roleRights = [];
       this.stepType = this.getStepType();
@@ -419,7 +428,7 @@ export default {
     getCurLevel() {
       const levelName = this.curPaperOrTask.rejected
         ? this.curPaperOrTask.redoLevel
-        : this.curPaperOrTask.level;
+        : this.curPaperOrTaskLevel;
       if (levelName) {
         this.curLevel = this.levels.find(item => item.name === levelName);
       } else {
@@ -435,7 +444,9 @@ export default {
       this.gradingHistory = data.map(item => {
         let level = item.result || "未评";
         if (this.stepType === "reject" && !item.result) {
-          level = `${level}(${item.originLevel})`;
+          level = `${levelNameTransform(level)}(${levelNameTransform(
+            item.originLevel
+          )})`;
         }
         return {
           id: item.id,
@@ -457,7 +468,7 @@ export default {
         return;
       }
 
-      if (this.IS_MARKER && this.curPaperOrTask.level === level.name) return;
+      if (this.IS_MARKER && this.curPaperOrTaskLevel === level.name) return;
       if (this.btnClicked) return;
       this.btnClicked = true;
 
@@ -470,7 +481,7 @@ export default {
           "on-leader-level",
           {
             paperIds: this.curPaperOrTask.id + "",
-            curLevel: this.curPaperOrTask.level,
+            curLevel: this.curPaperOrTaskLevel,
             selectedLevel: level.name,
             markLeaderOnlyRight: this.markLeaderOnlyRight
           },

+ 1 - 1
src/modules/grading/components/ModifyLeaderGrading.vue

@@ -10,7 +10,7 @@
     <div class="leader-grading">
       <div class="leader-level">
         <p>已选档位</p>
-        <h3>{{ levelInfo.selectedLevel }}</h3>
+        <h3>{{ levelInfo.selectedLevel | levelNameFilter }}</h3>
       </div>
       <RadioGroup v-model="actionType">
         <div class="leader-aciton" v-if="standardVolume">

+ 1 - 1
src/modules/grading/marker/MarkerHeader.vue

@@ -320,7 +320,7 @@ export default {
       "shortcutKeyStatus"
     ]),
     stageName() {
-      return SUBJECT_STAGE[this.curSubject.stage];
+      return SUBJECT_STAGE[this.curSubject.stage].replace("阶段", "");
     },
     IS_MARK_LEADER__SCORE() {
       return this.IS_MARK_LEADER && this.curSubject.stage === "SCORE";

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

@@ -105,6 +105,7 @@ export default {
   methods: {
     initData() {
       this.image = this.$objAssign(this.initImage, this.data);
+      if (this.stage === "ROUGH_LEVEL") this.image.level = this.data.roughLevel;
     },
     toReview() {
       this.$emit("to-review", this.image);

+ 3 - 2
src/modules/grading/marker/MarkerStandard.vue

@@ -14,7 +14,7 @@
         :class="['level-item', { 'level-item-act': curLevel === level.name }]"
         @click="setCurLevel(level.name)"
       >
-        {{ level.name }}
+        {{ level.name | levelNameFilter }}
       </div>
       <div
         :class="['level-item', { 'level-item-act': !curLevel }]"
@@ -34,7 +34,7 @@
           <marker-image-view :data="paper" @to-review="toReview(index)">
             <div class="image-info">
               <div class="image-level">
-                {{ paper.level }}
+                {{ paper.level | levelNameFilter }}
               </div>
             </div>
             <div class="image-title" :title="paper.title">
@@ -178,6 +178,7 @@ export default {
       this.paperList = data.data.map(item => {
         item.title = `NO.${item.sn}`;
         item.loading = false;
+        if (this.stage === "ROUGH_LEVEL") item.level = item.roughLevel;
         return item;
       });
       this.paperList.sort((a, b) => (a.level < b.level ? -1 : 1));