Răsfoiți Sursa

回评时问题卷跳转优化

Michael Wang 3 ani în urmă
părinte
comite
2312c69bb1

+ 6 - 9
src/features/mark/Mark.vue

@@ -233,14 +233,11 @@ const unselectiveSubmit = async () => {
     const res = await doUnselectiveType();
     if (res?.data.success) {
       message.success({ content: "未选做处理成功", duration: 3 });
-      const removeSubmitedTask = () => {
-        if (!store.historyOpen) {
-          store.currentTask = undefined;
-          store.tasks.shift();
-          store.currentTask = store.tasks[0];
-        }
-      };
-      removeSubmitedTask();
+      if (!store.historyOpen) {
+        store.currentTask = undefined;
+        store.tasks.shift();
+        store.currentTask = store.tasks[0];
+      }
       if (store.historyOpen) {
         EventBus.emit("should-reload-history");
       }
@@ -267,7 +264,7 @@ const saveTaskToServer = async () => {
     return;
   }
 
-  if (store.setting.mode !== ModeEnum.TRACK) {
+  if (!store.isTrackMode) {
     markResult.trackList = [];
   } else {
     const trackScores =

+ 0 - 1
src/features/mark/MarkBoardMouse.vue

@@ -132,7 +132,6 @@
 <script setup lang="ts">
 import type { Question } from "@/types";
 import { isNumber } from "lodash";
-
 import { store } from "@/store/store";
 import { keyMouse } from "./use/keyboardAndMouse";
 import { message } from "ant-design-vue";

+ 0 - 1
src/features/mark/MarkDrawTrack.vue

@@ -24,7 +24,6 @@
 </template>
 
 <script setup lang="ts">
-import { ModeEnum } from "@/types";
 import type { SpecialTag, Track } from "@/types";
 import { toRefs, watch } from "vue";
 import { store } from "@/store/store";

+ 6 - 0
src/features/mark/MarkHistory.vue

@@ -213,8 +213,10 @@ EventBus.on("should-reload-history", async () => {
       let data = cloneDeep(res.data) as Array<Task>;
       data = data.map(addFileServerPrefixToTask);
       if (store.currentTask) {
+        // 这种方式(对象被重新构造了)能查找到index,我也很惊讶
         const indexOfTasks = store.historyTasks.indexOf(store.currentTask);
         if (data[0]) {
+          // 如果原任务依然存在
           store.historyTasks.splice(indexOfTasks, 1, data[0]);
           replaceCurrentTask(store.historyTasks[indexOfTasks]);
         } else {
@@ -222,6 +224,10 @@ EventBus.on("should-reload-history", async () => {
           store.historyTasks.splice(indexOfTasks, 1);
           replaceCurrentTask(store.historyTasks[indexOfTasks]);
         }
+      } else {
+        // 问题卷会将清除它作为 currentTask ,然后刷新当前页
+        store.historyTasks = data;
+        replaceCurrentTask(store.historyTasks[0]);
       }
     }
   } finally {

+ 1 - 1
src/features/mark/MarkProblemDialog.vue

@@ -54,10 +54,10 @@ const chooseProblemType = async (problemId: number) => {
     if (res?.data.success) {
       message.success({ content: "问题卷处理成功", duration: 3 });
       visible = false;
+      store.currentTask = undefined;
       if (store.historyOpen) {
         EventBus.emit("should-reload-history");
       } else {
-        store.currentTask = undefined;
         store.tasks.shift();
         store.currentTask = store.tasks[0];
       }