Эх сурвалжийг харах

fix 中途切换任务导致currentTask变化

Michael Wang 4 жил өмнө
parent
commit
4a5cfdf7c5

+ 30 - 19
src/features/mark/MarkHistory.vue

@@ -165,27 +165,38 @@ export default defineComponent({
         // });
         // // 提交后,渲染第一条
         // replaceCurrentTask(store.historyTasks[0]);
-        const res = await getHistoryTask({
-          secretNumber: store.currentTask?.secretNumber,
-        });
-        if (res.data) {
-          let data = cloneDeep(res.data) as Array<Task>;
-          data = data.map((t) => {
-            t.questionList.map((q) => {
-              q.__origScore = q.score;
-              return q;
-            });
-            t.sliceUrls = t.sliceUrls.map((s) => store.setting.fileServer + s);
-            t.sheetUrls = t.sheetUrls?.map((s) => store.setting.fileServer + s);
-            t.jsonUrl = store.setting.fileServer + t.jsonUrl;
-
-            return t;
+        store.globalMask = true;
+        try {
+          const res = await getHistoryTask({
+            secretNumber: store.currentTask?.secretNumber,
           });
-          if (data[0] && store.currentTask) {
-            const indexOfTasks = store.historyTasks.indexOf(store.currentTask);
-            store.historyTasks.splice(indexOfTasks, 1, data[0]);
-            replaceCurrentTask(store.historyTasks[indexOfTasks]);
+          if (res.data) {
+            let data = cloneDeep(res.data) as Array<Task>;
+            data = data.map((t) => {
+              t.questionList.map((q) => {
+                q.__origScore = q.score;
+                return q;
+              });
+              t.sliceUrls = t.sliceUrls.map(
+                (s) => store.setting.fileServer + s
+              );
+              t.sheetUrls = t.sheetUrls?.map(
+                (s) => store.setting.fileServer + s
+              );
+              t.jsonUrl = store.setting.fileServer + t.jsonUrl;
+
+              return t;
+            });
+            if (data[0] && store.currentTask) {
+              const indexOfTasks = store.historyTasks.indexOf(
+                store.currentTask
+              );
+              store.historyTasks.splice(indexOfTasks, 1, data[0]);
+              replaceCurrentTask(store.historyTasks[indexOfTasks]);
+            }
           }
+        } finally {
+          store.globalMask = false;
         }
       }
     );