zhangjie 3 miesięcy temu
rodzic
commit
d9138e4132

+ 25 - 20
src/features/mark/scoring/MarkBoardKeyBoard.vue

@@ -2,22 +2,21 @@
   <div
     v-if="markStore.currentTask"
     class="mark-board-track is-key-board"
-    :class="[markStore.isScoreBoardCollapsed ? 'hide' : 'show']"
+    :class="[
+      markStore.isTrackMode && markStore.isScoreBoardCollapsed
+        ? 'hide'
+        : 'show',
+    ]"
   >
     <div class="board-mode">
-      <a-dropdown>
-        <template #overlay>
-          <a-menu>
-            <a-menu-item key="1" @click="markStore.toggleKeyMouse">
-              鼠标给分
-            </a-menu-item>
-          </a-menu>
-        </template>
-        <a-button>
-          键盘给分
-          <DownOutlined style="display: inline-flex" />
-        </a-button>
-      </a-dropdown>
+      <a-select
+        v-model:value="normalMode"
+        style="width: 120px"
+        @change="normalModeChange"
+      >
+        <a-select-option value="keyboard">键盘给分</a-select-option>
+        <a-select-option value="mouse">鼠标给分</a-select-option>
+      </a-select>
     </div>
     <div class="board-header">
       <div class="board-header-left">
@@ -27,8 +26,8 @@
         </div>
         <div class="board-header-score">
           <transition-group name="score-number-animation" tag="span">
-            <span :key="store.currentTask.markResult?.markerScore || 0">{{
-              store.currentTask.markResult?.markerScore
+            <span :key="markStore.currentTask.markResult?.markerScore || 0">{{
+              markStore.currentTask.markResult?.markerScore
             }}</span>
           </transition-group>
         </div>
@@ -54,14 +53,14 @@
     </div>
 
     <div
-      v-if="store.currentTaskEnsured.questionList"
+      v-if="markStore.currentTaskEnsured.questionList"
       class="board-questions"
       :style="{
         flexGrow: 2,
       }"
     >
       <template
-        v-for="(question, index) in store.currentTaskEnsured.questionList"
+        v-for="(question, index) in markStore.currentTaskEnsured.questionList"
         :key="index"
       >
         <div class="board-question-full-box">
@@ -103,7 +102,7 @@
                   {{
                     isCurrentQuestion(question)
                       ? scoreStr
-                      : store.currentTask?.markResult?.scoreList[index]
+                      : markStore.currentTask?.markResult?.scoreList[index]
                   }}
                 </span>
               </transition-group>
@@ -122,7 +121,6 @@ import { ref, onMounted, onUnmounted, watch } from "vue";
 import { useMarkStore } from "@/store";
 import useAutoChooseFirstQuestion from "../composables/useAutoChooseFirstQuestion";
 import { message } from "ant-design-vue";
-import { DownOutlined } from "@ant-design/icons-vue";
 
 const emit = defineEmits([
   "submit",
@@ -161,6 +159,13 @@ watch(
   },
   { immediate: true }
 );
+// 切换给分模式
+const normalMode = ref(
+  markStore.setting.uiSetting["normal.mode"] || "keyboard"
+);
+function normalModeChange(value: string) {
+  markStore.setting.uiSetting["normal.mode"] = value;
+}
 
 const questionScoreSteps = $computed(() => {
   const question = markStore.currentQuestion;

+ 20 - 14
src/features/mark/scoring/MarkBoardMouse.vue

@@ -2,22 +2,21 @@
   <div
     v-if="markStore.currentTask"
     class="mark-board-track is-mouse-board"
-    :class="[markStore.isScoreBoardCollapsed ? 'hide' : 'show']"
+    :class="[
+      markStore.isTrackMode && markStore.isScoreBoardCollapsed
+        ? 'hide'
+        : 'show',
+    ]"
   >
     <div class="board-mode">
-      <a-dropdown>
-        <template #overlay>
-          <a-menu>
-            <a-menu-item key="1" @click="markStore.toggleKeyMouse">
-              键盘给分
-            </a-menu-item>
-          </a-menu>
-        </template>
-        <a-button>
-          鼠标给分
-          <DownOutlined style="display: inline-flex" />
-        </a-button>
-      </a-dropdown>
+      <a-select
+        v-model:value="normalMode"
+        style="width: 120px"
+        @change="normalModeChange"
+      >
+        <a-select-option value="keyboard">键盘给分</a-select-option>
+        <a-select-option value="mouse">鼠标给分</a-select-option>
+      </a-select>
     </div>
     <div class="board-header">
       <div class="board-header-left">
@@ -114,6 +113,13 @@ const props = defineProps<{ isCheckAnswer?: boolean }>();
 
 const hasModifyScore = ref(false);
 
+// 切换给分模式
+const normalMode = ref(
+  markStore.setting.uiSetting["normal.mode"] || "keyboard"
+);
+function normalModeChange(value: string) {
+  markStore.setting.uiSetting["normal.mode"] = value;
+}
 function chooseScore(question: Question, score: number) {
   // 只要修改了分值,就当做已修改
   hasModifyScore.value = true;