Pārlūkot izejas kodu

fix 鼠标模式间隔分

Michael Wang 4 gadi atpakaļ
vecāks
revīzija
64dd20d6c8

+ 2 - 3
src/features/mark/MarkBoardKeyBoard.vue

@@ -91,9 +91,8 @@ export default defineComponent({
       const question = store.currentQuestion;
       if (!question) return [];
 
-      const remainScore = Math.round(
-        question.maxScore * 100 - (question.score || 0) * 100
-      );
+      const remainScore =
+        Math.round(question.maxScore * 100 - (question.score || 0) * 100) / 100;
       const steps = [];
       for (
         let i = 0;

+ 28 - 5
src/features/mark/MarkBoardMouse.vue

@@ -40,14 +40,13 @@
             </div>
             <div class="tw-flex tw-flex-wrap tw-gap-1">
               <div
-                v-for="(s, i) in Math.round(question.maxScore * 100 + 100) /
-                100"
+                v-for="(s, i) in questionScoreSteps(question)"
                 :key="i"
-                @click="chooseScore(question, s - 1)"
+                @click="chooseScore(question, s)"
                 class="single-score"
-                :class="isCurrentScore(question, s - 1) && 'current-score'"
+                :class="isCurrentScore(question, s) && 'current-score'"
               >
-                {{ s - 1 }}
+                {{ s }}
               </div>
             </div>
           </div>
@@ -81,6 +80,29 @@ export default defineComponent({
       return question.score === score;
     }
 
+    function questionScoreSteps(question: Question) {
+      if (!question) return [];
+
+      const remainScore = Math.round(question.maxScore * 100) / 100;
+      const steps = [];
+      for (
+        let i = 0;
+        i <= remainScore;
+        i = Math.round(i * 100 + question.intervalScore * 100) / 100
+      ) {
+        steps.push(i);
+      }
+      if (
+        Math.round(remainScore * 100) %
+          Math.round(question.intervalScore * 100) !==
+        0
+      ) {
+        steps.push(remainScore);
+      }
+
+      return steps;
+    }
+
     function submit() {
       const errors: any = [];
       store.currentTask?.questionList.forEach((question, index) => {
@@ -106,6 +128,7 @@ export default defineComponent({
     return {
       store,
       toggleKeyMouse,
+      questionScoreSteps,
       chooseScore,
       isCurrentScore,
       submit,