Michael Wang 3 лет назад
Родитель
Сommit
eb9dee5c47
3 измененных файлов с 39 добавлено и 60 удалено
  1. 37 54
      src/api/markPage.ts
  2. 1 3
      src/features/mark/store.ts
  3. 1 3
      src/types/index.ts

+ 37 - 54
src/api/markPage.ts

@@ -58,20 +58,15 @@ export async function getHistoryTask({
 
 /** 保存评卷任务(正常保存) */
 export async function saveTask() {
-  let markResult = store.currentTask?.markResult;
-  if (markResult) {
-    // markResult.specialTagList = [];
-    markResult.problem = false;
-    markResult.unselective = false;
-    markResult.spent = Date.now() - markResult.__markStartTime;
-    markResult = { ...markResult };
-    // @ts-ignore
-    markResult.__markStartTime = undefined;
-    // @ts-ignore
-    markResult.__previous = undefined;
-
-    return httpApp.post("/mark/saveTask", markResult, { setGlobalMask: true });
-  }
+  if (!store.currentTask?.markResult) return;
+
+  let markResult = store.currentTask.markResult;
+  markResult.problem = false;
+  markResult.unselective = false;
+  markResult.spent = Date.now() - store.currentTask.__markStartTime;
+  markResult = { ...markResult };
+
+  return httpApp.post("/mark/saveTask", markResult, { setGlobalMask: true });
 }
 
 /** 获取分组列表 */
@@ -101,50 +96,38 @@ export async function doSwitchGroup(markerId: number) {
 
 /** 评卷用户选择试卷的问题类型 */
 export async function doProblemType(problemId: number) {
+  if (!store.currentTask?.markResult) return;
+
   let markResult = store.currentTask?.markResult;
-  if (markResult) {
-    markResult.problem = true;
-    markResult.unselective = false;
-    markResult.problemTypeId = problemId;
-    // @ts-ignore FIXME: should allow null
-    markResult.markerScore = null;
-    markResult.scoreList = [];
-    markResult.specialTagList = [];
-    markResult.trackList = [];
-
-    markResult.spent = Date.now() - markResult.__markStartTime;
-    markResult = { ...markResult };
-    // @ts-ignore
-    markResult.__markStartTime = undefined;
-    // @ts-ignore
-    markResult.__previous = undefined;
-
-    return httpApp.post("/mark/saveTask", markResult);
-  } else {
-    console.error("无当前评卷结果");
-  }
+  markResult.problem = true;
+  markResult.unselective = false;
+  markResult.problemTypeId = problemId;
+  // @ts-ignore FIXME: should allow null
+  markResult.markerScore = null;
+  markResult.scoreList = [];
+  markResult.specialTagList = [];
+  markResult.trackList = [];
+
+  markResult.spent = Date.now() - store.currentTask.__markStartTime;
+  markResult = { ...markResult };
+
+  return httpApp.post("/mark/saveTask", markResult);
 }
 
 /** 评卷用户选择试卷的为未选做 */
 export async function doUnselectiveType() {
+  if (!store.currentTask?.markResult) return;
+
   let markResult = store.currentTask?.markResult;
-  if (markResult) {
-    markResult.problem = false;
-    markResult.unselective = true;
-    markResult.markerScore = -1;
-    markResult.scoreList = [];
-    markResult.specialTagList = [];
-    markResult.trackList = [];
-
-    markResult.spent = Date.now() - markResult.__markStartTime;
-    markResult = { ...markResult };
-    // @ts-ignore
-    markResult.__markStartTime = undefined;
-    // @ts-ignore
-    markResult.__previous = undefined;
-
-    return httpApp.post("/mark/saveTask", markResult);
-  } else {
-    console.error("无当前评卷结果");
-  }
+  markResult.problem = false;
+  markResult.unselective = true;
+  markResult.markerScore = -1;
+  markResult.scoreList = [];
+  markResult.specialTagList = [];
+  markResult.trackList = [];
+
+  markResult.spent = Date.now() - store.currentTask.__markStartTime;
+  markResult = { ...markResult };
+
+  return httpApp.post("/mark/saveTask", markResult);
 }

+ 1 - 3
src/features/mark/store.ts

@@ -89,6 +89,7 @@ watch(
       task.markResult = undefined;
     }
     if (!task.markResult) {
+      task.__markStartTime = Date.now();
       const statusValue = store.setting.statusValue;
       const { libraryId, studentId, previous } = task;
       task.markResult = {
@@ -108,9 +109,6 @@ watch(
         problem: false,
         problemTypeId: 0,
         unselective: false,
-
-        __markStartTime: Date.now(),
-        __previous: previous,
       };
     }
   }

+ 1 - 3
src/types/index.ts

@@ -109,6 +109,7 @@ export interface Task {
 
   // 评卷结果,在task第一次被访问时自动添加,watch currentTask
   markResult: MarkResult;
+  __markStartTime: number; // 前端自用,用于标记阅卷开始时间和计算spent
 }
 
 export interface Question {
@@ -181,9 +182,6 @@ export interface MarkResult {
   problem: boolean;
   problemTypeId: number;
   unselective: boolean; // 当前task是否为学生未选做
-
-  __markStartTime: number; // 前端自用,用于标记阅卷开始时间和计算spent
-  __previous: boolean; // 前端只用,用于删除回评产生的 markResult
 }
 
 export interface InspectStore {