Jelajahi Sumber

错误提示

Michael Wang 4 tahun lalu
induk
melakukan
b4072eedf2

+ 8 - 0
src/components/inspect/Inspect.vue

@@ -27,6 +27,7 @@ import MarkBody from "./MarkBody.vue";
 import MarkHistory from "./MarkHistory.vue";
 import MarkBoardInspect from "./MarkBoardInspect.vue";
 import { Question } from "@/types";
+import { message } from "ant-design-vue";
 
 export default defineComponent({
   name: "Inspect",
@@ -85,12 +86,15 @@ export default defineComponent({
       if (res.data.valid) store.status = res.data;
     }
     async function updateTask() {
+      const mkey = "fetch_task_key";
+      message.loading({ content: "获取任务中...", key: mkey });
       let res;
       if (isSingleStudent) {
         res = await getSingleStuTask();
       } else {
         res = await getOneOfStuTask();
       }
+      message.success({ content: "获取成功", key: mkey });
 
       store.currentTask = res.data;
       if (store.currentTask) store.setting.subject = store.currentTask.subject;
@@ -130,11 +134,15 @@ export default defineComponent({
     );
     const saveTaskToServer = async () => {
       console.log("save inspect task to server");
+      const mkey = "save_task_key";
+      message.loading({ content: "保存评卷任务...", key: mkey });
       const res = (await saveInspectedTask(realStudentId.value)) as any;
+      message.success({ content: "保存成功", key: mkey, duration: 2 });
       if (res.data.success && store.currentTask) {
         fetchTask();
       } else {
         console.log(res.data.message);
+        message.error({ content: res.data.message, duration: 10 });
       }
     };
 

+ 6 - 1
src/components/mark/Mark.vue

@@ -39,6 +39,7 @@ import { ModeEnum, Setting } from "@/types";
 import MarkBoardKeyBoard from "./MarkBoardKeyBoard.vue";
 import MarkBoardMouse from "./MarkBoardMouse.vue";
 import { isEmpty } from "lodash";
+import { message } from "ant-design-vue";
 
 export default defineComponent({
   name: "Mark",
@@ -91,7 +92,7 @@ export default defineComponent({
     // 5秒更新一次tasks
     addInterval(() => {
       // console.log("get task", store.tasks);
-      if (store.tasks.length < 3) {
+      if (store.tasks.length < (store.setting.prefetchCount ?? 3)) {
         updateTask();
       }
     }, 5 * 1000);
@@ -149,7 +150,10 @@ export default defineComponent({
 
     const saveTaskToServer = async () => {
       console.log("save task to server");
+      const mkey = "save_task_key";
+      message.loading({ content: "保存评卷任务...", key: mkey });
       const res = (await saveTask()) as any;
+      message.success({ content: "保存成功", key: mkey, duration: 2 });
       updateStatus();
       if (res.data.success && store.currentTask) {
         removeCurrentMarkResult();
@@ -157,6 +161,7 @@ export default defineComponent({
         store.tasks.shift();
       } else {
         console.log(res.data.message);
+        message.error({ content: res.data.message, duration: 10 });
       }
     };
 

+ 11 - 0
src/components/mark/MarkBoardKeyBoard.vue

@@ -66,6 +66,8 @@ import {
 import { store } from "./store";
 import { keyMouse } from "./use/keyboardAndMouse";
 import { autoChooseFirstQuestion } from "./use/autoChooseFirstQuestion";
+import { message } from "ant-design-vue";
+import { duration } from "moment";
 
 export default defineComponent({
   name: "MarkBoardKeyBoard",
@@ -122,15 +124,18 @@ export default defineComponent({
         // }
         // 有bug,移除当前题,再回来就出错了
         if (keys.length === 0) {
+          message.error({ content: "请输入分数", duration: 100 });
           console.log("请输入分数");
           return;
         }
         const score = parseFloat(keys.join(""));
         if (!isNumber(score)) {
+          message.error({ content: "非数字输入", duration: 10 });
           console.log("非数字输入");
           return;
         }
         if (!questionScoreSteps.value.includes(score)) {
+          message.error({ content: "输入的分数不在有效间隔内", duration: 10 });
           console.log("输入的分数不在有效间隔内");
           return;
         }
@@ -216,6 +221,12 @@ export default defineComponent({
         emit("submit");
       } else {
         console.log(errors);
+        message.error({
+          content: errors
+            .map((e: any) => `${e.index + 1}、${e.error}`)
+            .join("\n"),
+          duration: 10,
+        });
       }
     }
 

+ 7 - 0
src/components/mark/MarkBoardMouse.vue

@@ -50,6 +50,7 @@ import { isNumber } from "lodash";
 import { defineComponent, watch } from "vue";
 import { store } from "./store";
 import { keyMouse } from "./use/keyboardAndMouse";
+import { message } from "ant-design-vue";
 
 export default defineComponent({
   name: "MarkBoardMouse",
@@ -76,6 +77,12 @@ export default defineComponent({
         emit("submit");
       } else {
         console.log(errors);
+        message.error({
+          content: errors
+            .map((e: any) => `${e.index + 1}、${e.error}`)
+            .join("\n"),
+          duration: 10,
+        });
       }
     }
 

+ 7 - 0
src/components/mark/MarkBoardTrack.vue

@@ -63,6 +63,7 @@ import { isNumber } from "lodash";
 import { computed, defineComponent, onMounted, onUnmounted, watch } from "vue";
 import { store } from "./store";
 import { autoChooseFirstQuestion } from "./use/autoChooseFirstQuestion";
+import { message } from "ant-design-vue";
 
 export default defineComponent({
   name: "MarkBoardTrack",
@@ -209,6 +210,12 @@ export default defineComponent({
         emit("submit");
       } else {
         console.log(errors);
+        message.error({
+          content: errors
+            .map((e: any) => `${e.index + 1}、${e.error}`)
+            .join("\n"),
+          duration: 10,
+        });
       }
     }
 

+ 4 - 0
src/styles/global.css

@@ -7,3 +7,7 @@ body {
   min-width: 1024px;
   min-height: 600px;
 }
+
+.ant-message-custom-content span[role="img"] {
+  top: -2px;
+}