Ver Fonte

feat: 评卷调整

zhangjie há 3 meses atrás
pai
commit
7f6982a009

+ 1 - 0
src/api/markPage.ts

@@ -8,6 +8,7 @@ import {
   Group,
   Task,
   CommonResponse,
+  MarkResult,
 } from "@/types";
 import vls from "@/utils/storage";
 

+ 3 - 0
src/features/mark/composables/useMarkSubmit.ts

@@ -138,6 +138,9 @@ export default function useMarkSubmit() {
 
     datas.markerTrackList = [];
     datas.markerTagList = [];
+    // 单题阅模式需要告诉后台正在评卷的questionId
+    if (markStore.isSingelQuestionModel)
+      datas.markedQuestionId = data.questionList[0].questionId;
     return datas;
   }
 

+ 10 - 0
src/features/mark/composables/useStatus.ts

@@ -13,7 +13,17 @@ export default function useStatus() {
     // 整卷阅的模式下只有一条,所以只取第一条数据
     if (!markStore.isSingelQuestionModel) {
       markStore.setInfo({ curStatus: res.data[0] });
+      return;
     }
+
+    // 单题阅的模式下,需要找到当前题目的状态, 并将当前题目的状态放到第一位
+    const curMarkStatusIndex = res.data.findIndex(
+      (item) => item.questionId === item.markedQuestionId
+    );
+    if (curMarkStatusIndex < 0) return;
+    const statuss = res.data.slice(curMarkStatusIndex);
+    statuss.push(...res.data.slice(0, curMarkStatusIndex));
+    markStore.setInfo({ status: statuss });
   }
 
   // 单题阅的模式下才需要监听当前题目状态

+ 1 - 0
src/features/mark/composables/useTaskWatch.ts

@@ -37,6 +37,7 @@ export default function useTaskWatch() {
           spent: 0,
           statusValue,
           questionList: task.questionList,
+          markedQuestionId: "",
           markerTrackList: selfQuestions
             .map((q) => {
               const trackList =

+ 5 - 1
src/types/index.ts

@@ -30,7 +30,9 @@ interface MarkStatus {
   // 小题号
   subNumber: number;
   // 题目Id
-  questionId: number;
+  questionId: string;
+  // 当前正在评阅的题目Id
+  markedQuestionId: string;
   /**成绩校验,批量校验时,已校验的学生id的集合 */
   markedCountStuIds?: any;
 }
@@ -479,6 +481,8 @@ export interface MarkResult {
   scoreList: Array<number | null>;
   /** 评卷员分数 */
   markerScore: number | null;
+  // 当前正在评卷的题目ID
+  markedQuestionId: string;
 }
 
 /** 前端自用,用来渲染裁切图 */