Browse Source

优化错误提示的关联关系

Michael Wang 3 years ago
parent
commit
e61b874667

+ 27 - 3
src/features/mark/Mark.vue

@@ -51,7 +51,7 @@ import MarkBody from "./MarkBody.vue";
 import { useTimers } from "@/setups/useTimers";
 import { useTimers } from "@/setups/useTimers";
 import MarkHistory from "./MarkHistory.vue";
 import MarkHistory from "./MarkHistory.vue";
 import MarkBoardTrack from "./MarkBoardTrack.vue";
 import MarkBoardTrack from "./MarkBoardTrack.vue";
-import { ModeEnum } from "@/types";
+import { Question } from "@/types";
 import type { Setting, Task } from "@/types";
 import type { Setting, Task } from "@/types";
 import MarkBoardKeyBoard from "./MarkBoardKeyBoard.vue";
 import MarkBoardKeyBoard from "./MarkBoardKeyBoard.vue";
 import MarkBoardMouse from "./MarkBoardMouse.vue";
 import MarkBoardMouse from "./MarkBoardMouse.vue";
@@ -256,11 +256,34 @@ const saveTaskToServer = async () => {
   const markResult = store.currentTask?.markResult;
   const markResult = store.currentTask?.markResult;
   if (!markResult) return;
   if (!markResult) return;
 
 
+  const mkey = "save_task_key";
+
+  const errors = markResult.scoreList.reduce((p, c, index) => {
+    if (!isNumber(c) && store.currentTask) {
+      const question = store.currentTask.questionList[index];
+      p.push({
+        question,
+        index,
+        error: `${question.mainNumber}-${question.subNumber} 没有赋分不能提交。`,
+      });
+    }
+    return p;
+  }, [] as Array<{ question: Question; index: number; error: string }>);
+  if (errors.length !== 0) {
+    console.log(errors);
+    message.error({
+      content: errors.map((e) => `${e.error}`).join("\n"),
+      duration: 10,
+      key: mkey,
+    });
+    return;
+  }
+
   if (
   if (
     markResult.scoreList.length !== store.currentTask?.questionList.length ||
     markResult.scoreList.length !== store.currentTask?.questionList.length ||
     !markResult.scoreList.every((s) => isNumber(s))
     !markResult.scoreList.every((s) => isNumber(s))
   ) {
   ) {
-    console.error("markResult格式不正确,缺少分数");
+    console.error({ content: "markResult格式不正确,缺少分数", key: mkey });
     return;
     return;
   }
   }
 
 
@@ -275,6 +298,7 @@ const saveTaskToServer = async () => {
       message.error({
       message.error({
         content: "轨迹分与总分不一致,请检查。",
         content: "轨迹分与总分不一致,请检查。",
         duration: 3,
         duration: 3,
+        key: mkey,
       });
       });
       return;
       return;
     }
     }
@@ -287,12 +311,12 @@ const saveTaskToServer = async () => {
       message.error({
       message.error({
         content: "强制标记已开启,请至少使用一个标记。",
         content: "强制标记已开启,请至少使用一个标记。",
         duration: 5,
         duration: 5,
+        key: mkey,
       });
       });
       return;
       return;
     }
     }
   }
   }
   console.log("save task to server");
   console.log("save task to server");
-  const mkey = "save_task_key";
   message.loading({ content: "保存评卷任务...", key: mkey });
   message.loading({ content: "保存评卷任务...", key: mkey });
   const res = (await saveTask()) as any;
   const res = (await saveTask()) as any;
   updateStatus();
   updateStatus();

+ 1 - 21
src/features/mark/MarkBoardKeyBoard.vue

@@ -333,27 +333,7 @@ watch(
 );
 );
 
 
 function submit() {
 function submit() {
-  if (!store.currentTask) return;
-  const errors: any = [];
-  store.currentTask.markResult.scoreList.forEach((s, index) => {
-    if (!isNumber(s) && store.currentTask) {
-      const question = store.currentTask.questionList[index];
-      errors.push({
-        question,
-        index,
-        error: `${question.mainNumber}-${question.subNumber} 没有赋分不能提交。`,
-      });
-    }
-  });
-  if (errors.length === 0) {
-    emit("submit");
-  } else {
-    console.log(errors);
-    message.error({
-      content: errors.map((e: any) => `${e.error}`).join("\n"),
-      duration: 10,
-    });
-  }
+  emit("submit");
 }
 }
 
 
 let buttonHeightForSelective = $computed(() =>
 let buttonHeightForSelective = $computed(() =>

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

@@ -172,27 +172,7 @@ function questionScoreSteps(question: Question) {
 }
 }
 
 
 function submit() {
 function submit() {
-  if (!store.currentTask) return;
-  const errors: any = [];
-  store.currentTask.markResult.scoreList.forEach((s, index) => {
-    if (!isNumber(s) && store.currentTask) {
-      const question = store.currentTask.questionList[index];
-      errors.push({
-        question,
-        index,
-        error: `${question.mainNumber}-${question.subNumber} 没有赋分不能提交。`,
-      });
-    }
-  });
-  if (errors.length === 0) {
-    emit("submit");
-  } else {
-    console.log(errors);
-    message.error({
-      content: errors.map((e: any) => `${e.error}`).join("\n"),
-      duration: 10,
-    });
-  }
+  emit("submit");
 }
 }
 
 
 let buttonHeightForSelective = $computed(() =>
 let buttonHeightForSelective = $computed(() =>

+ 1 - 21
src/features/mark/MarkBoardTrack.vue

@@ -340,27 +340,7 @@ function clearAllMarksOfCurrentQuetion() {
 }
 }
 
 
 function submit() {
 function submit() {
-  if (!store.currentTask) return;
-  const errors: any = [];
-  store.currentTask.markResult.scoreList.forEach((s, index) => {
-    if (!isNumber(s) && store.currentTask) {
-      const question = store.currentTask.questionList[index];
-      errors.push({
-        question,
-        index,
-        error: `${question.mainNumber}-${question.subNumber} 没有赋分不能提交。`,
-      });
-    }
-  });
-  if (errors.length === 0) {
-    emit("submit");
-  } else {
-    console.log(errors);
-    message.error({
-      content: errors.map((e: any) => `${e.error}`).join("\n"),
-      duration: 10,
-    });
-  }
+  emit("submit");
 }
 }
 
 
 let buttonHeightForSelective = $computed(() =>
 let buttonHeightForSelective = $computed(() =>