zhangjie hai 2 meses
pai
achega
6d6ddb8cc1

+ 1 - 0
src/App.vue

@@ -17,6 +17,7 @@ import { useMarkStore } from "@/store";
 import zhCN from "ant-design-vue/es/locale/zh_CN";
 
 const markStore = useMarkStore();
+markStore.resetInfo();
 
 let spinning = $ref(false);
 

+ 16 - 3
src/features/arbitrate/Arbitrate.vue

@@ -18,12 +18,12 @@
       />
       <template v-if="!markStore.isTrackMode">
         <mark-board-key-board
-          v-if="markStore.shouldShowMarkBoardKeyBoard"
+          v-if="shouldShowMarkBoardKeyBoard"
           @submit="saveTaskToServer(false)"
           @unselectiveSubmit="saveTaskToServer(true)"
         />
         <mark-board-mouse
-          v-if="markStore.shouldShowMarkBoardMouse"
+          v-if="shouldShowMarkBoardMouse"
           @submit="saveTaskToServer(false)"
           @unselectiveSubmit="saveTaskToServer(true)"
         />
@@ -42,7 +42,7 @@
 </template>
 
 <script setup lang="ts">
-import { onMounted, watch, h } from "vue";
+import { onMounted, watch, h, computed } from "vue";
 import { message } from "ant-design-vue";
 import { useMarkStore } from "@/store";
 import { isNumber } from "lodash-es";
@@ -87,6 +87,19 @@ let isSingleStudent = !!arbitrateId;
 
 const params = isSingleStudent ? { arbitrateId } : { paperNumber, examId };
 
+const shouldShowMarkBoardKeyBoard = computed(() => {
+  return (
+    markStore.setting.mode === "COMMON" &&
+    markStore.setting.uiSetting["normal.mode"] === "keyboard"
+  );
+});
+const shouldShowMarkBoardMouse = computed(() => {
+  return (
+    markStore.setting.mode === "COMMON" &&
+    markStore.setting.uiSetting["normal.mode"] === "mouse"
+  );
+});
+
 async function updateClearTask() {
   await clearArbitrateTask(params);
 }

+ 15 - 3
src/features/check-subjective/CheckSubjective.vue

@@ -87,14 +87,14 @@
         @checkSubmit="checkTask"
       />
       <mark-board-key-board
-        v-if="markStore.shouldShowMarkBoardKeyBoard"
+        v-if="shouldShowMarkBoardKeyBoard"
         isCheckAnswer
         @submit="saveTaskToServer"
         @allZeroSubmit="allZeroSubmit"
         @checkSubmit="checkTask"
       />
       <mark-board-mouse
-        v-if="markStore.shouldShowMarkBoardMouse"
+        v-if="shouldShowMarkBoardMouse"
         isCheckAnswer
         @submit="saveTaskToServer"
         @allZeroSubmit="allZeroSubmit"
@@ -119,7 +119,7 @@
 </template>
 
 <script setup lang="ts">
-import { onMounted, h } from "vue";
+import { onMounted, h, computed } from "vue";
 import { message } from "ant-design-vue";
 import {
   saveStudentSubjectiveConfirmData,
@@ -181,6 +181,18 @@ const {
 });
 
 const { updateSetting } = useSetting();
+const shouldShowMarkBoardKeyBoard = computed(() => {
+  return (
+    markStore.setting.mode === "COMMON" &&
+    markStore.setting.uiSetting["normal.mode"] === "keyboard"
+  );
+});
+const shouldShowMarkBoardMouse = computed(() => {
+  return (
+    markStore.setting.mode === "COMMON" &&
+    markStore.setting.uiSetting["normal.mode"] === "mouse"
+  );
+});
 
 onMounted(async () => {
   if (studentIds.value.length === 0) {

+ 16 - 4
src/features/mark/Mark.vue

@@ -11,13 +11,13 @@
         @unselectiveSubmit="unselectiveSubmit"
       />
       <mark-board-key-board
-        v-if="markStore.shouldShowMarkBoardKeyBoard"
+        v-if="shouldShowMarkBoardKeyBoard"
         @submit="saveTaskToServer"
         @allZeroSubmit="allZeroSubmit"
         @unselectiveSubmit="unselectiveSubmit"
       />
       <mark-board-mouse
-        v-if="markStore.shouldShowMarkBoardMouse"
+        v-if="shouldShowMarkBoardMouse"
         @submit="saveTaskToServer"
         @allZeroSubmit="allZeroSubmit"
         @unselectiveSubmit="unselectiveSubmit"
@@ -55,7 +55,7 @@
 </template>
 
 <script setup lang="ts">
-import { onMounted, onUnmounted } from "vue";
+import { onMounted, onUnmounted, computed } from "vue";
 import { useTimers } from "@/setups/useTimers";
 import { getHistoryTask } from "@/api/markPage";
 import { useMarkStore } from "@/store";
@@ -104,10 +104,22 @@ const { watchCurrentTaskChooseQuestion } = useAutoChooseFirstQuestion();
 
 const { addInterval } = useTimers();
 
+const shouldShowMarkBoardKeyBoard = computed(() => {
+  return (
+    markStore.setting.mode === "COMMON" &&
+    markStore.setting.uiSetting["normal.mode"] === "keyboard"
+  );
+});
+const shouldShowMarkBoardMouse = computed(() => {
+  return (
+    markStore.setting.mode === "COMMON" &&
+    markStore.setting.uiSetting["normal.mode"] === "mouse"
+  );
+});
+
 onMounted(async () => {
   let result = true;
   try {
-    markStore.resetInfo();
     await clearTask();
     await updateSetting();
     if (markStore.isSingelQuestionModel) {

+ 1 - 1
src/features/mark/composables/useSetting.ts

@@ -13,7 +13,7 @@ export default function useSetting() {
       settingRes.data.uiSetting = {
         "answer.paper.scale": 1,
         "score.board.collapse": false,
-        "normal.mode": "keyboard",
+        "normal.mode": "mouse",
         "score.fontSize.scale": 1,
         "paper.modal": false,
         "answer.modal": false,

+ 14 - 14
src/features/mark/scoring/MarkBoardKeyBoard.vue

@@ -175,9 +175,9 @@ watch(
   () => {
     if (markStore.currentQuestion) {
       const { __index } = markStore.currentQuestion;
+      const scoreR = markStore.currentTask?.markResult?.scoreList[__index];
       scoreStr =
-        markStore.currentTask?.markResult?.scoreList[__index] ||
-        markStore.currentQuestion.score;
+        scoreR || scoreR === 0 ? scoreR : markStore.currentQuestion.score;
       if (isNumber(scoreStr)) {
         scoreStr = "" + scoreStr;
       } else {
@@ -350,19 +350,19 @@ onUnmounted(() => {
   document.removeEventListener("keydown", numberKeyListener);
 });
 
-const scrollToQuestion = (question: Question) => {
-  const node = document.querySelector(
-    `#q-${question.mainNumber}-${question.subNumber}`
-  );
-  node && node.scrollIntoView({ behavior: "smooth" });
-};
+// const scrollToQuestion = (question: Question) => {
+//   const node = document.querySelector(
+//     `#q-${question.mainNumber}-${question.subNumber}`
+//   );
+//   node && node.scrollIntoView({ behavior: "smooth" });
+// };
 
-watch(
-  () => markStore.currentQuestion,
-  () => {
-    markStore.currentQuestion && scrollToQuestion(markStore.currentQuestion);
-  }
-);
+// watch(
+//   () => markStore.currentQuestion,
+//   () => {
+//     markStore.currentQuestion && scrollToQuestion(markStore.currentQuestion);
+//   }
+// );
 
 function cancelProblem() {
   if (!markStore.currentQuestion) return;

+ 0 - 12
src/features/mark/stores/mark.ts

@@ -105,18 +105,6 @@ const useMarkStore = defineStore("mark", {
 
       return state.getStatusValueName;
     },
-    shouldShowMarkBoardKeyBoard(state: MarkStore): boolean {
-      return (
-        state.setting.mode === "COMMON" &&
-        state.setting.uiSetting["normal.mode"] === "keyboard"
-      );
-    },
-    shouldShowMarkBoardMouse(state: MarkStore): boolean {
-      return (
-        state.setting.mode === "COMMON" &&
-        state.setting.uiSetting["normal.mode"] === "mouse"
-      );
-    },
     isScoreBoardCollapsed(state: MarkStore): boolean {
       return state.setting.uiSetting["score.board.collapse"];
     },