瀏覽代碼

回评切换任务时,不保存回评产生的markResult

Michael Wang 4 年之前
父節點
當前提交
251a92bbab
共有 2 個文件被更改,包括 21 次插入0 次删除
  1. 5 0
      src/features/mark/Mark.vue
  2. 16 0
      src/features/mark/store.ts

+ 5 - 0
src/features/mark/Mark.vue

@@ -28,6 +28,7 @@ import {
 import {
 import {
   findCurrentTaskMarkResult,
   findCurrentTaskMarkResult,
   removeCurrentMarkResult,
   removeCurrentMarkResult,
+  removeOldPreviousMarkResult,
   store,
   store,
 } from "./store";
 } from "./store";
 import MarkHeader from "./MarkHeader.vue";
 import MarkHeader from "./MarkHeader.vue";
@@ -132,6 +133,10 @@ export default defineComponent({
     watch(
     watch(
       () => store.currentTask,
       () => store.currentTask,
       () => {
       () => {
+        // 回评切换任务,先删除之前回评任务的markResult
+        if (store.historyOpen) {
+          removeOldPreviousMarkResult();
+        }
         store.currentMarkResult = findCurrentTaskMarkResult();
         store.currentMarkResult = findCurrentTaskMarkResult();
 
 
         // 重置当前选择的quesiton和score
         // 重置当前选择的quesiton和score

+ 16 - 0
src/features/mark/store.ts

@@ -82,6 +82,22 @@ export function findCurrentTaskMarkResult() {
   );
   );
 }
 }
 
 
+/** 回评时,切换任务前,删除之前的回评markResult */
+export function removeOldPreviousMarkResult() {
+  function clearMarkResultFromTask(task: Task) {
+    let { libraryId, studentId } = task;
+    const i = store.markResults.findIndex(
+      (s) => s.libraryId === libraryId && s.studentId === studentId
+    );
+    store.markResults.splice(i, 1);
+  }
+
+  for (const task of store.historyTasks) {
+    // 清理不在当前任务中的markResult,防止回评产生的markResult造成垃圾
+    clearMarkResultFromTask(task);
+  }
+}
+
 export function removeCurrentMarkResult() {
 export function removeCurrentMarkResult() {
   if (!store.currentTask) return;
   if (!store.currentTask) return;