Explorar o código

fix: 仲裁bug

zhangjie hai 2 meses
pai
achega
e25a3e0cba

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

@@ -13,7 +13,7 @@
       <arbitrate-mark-list />
       <arbitrate-body @error="renderError" />
       <mark-board-track
-        v-if="markStore.isTrackMode"
+        v-if="markStore.isTrackMode && !markStore.isScoreBoardCollapsed"
         @unselectiveSubmit="saveTaskToServer(true)"
         @submit="saveTaskToServerByTrack"
       />
@@ -147,10 +147,11 @@ watch(
 
 watch(
   () => markStore.currentTask,
-  () => {
+  (val) => {
+    if (!val) return;
     // 重置当前选择的quesiton和score
-    markStore.currentQuestion = undefined;
     markStore.currentScore = undefined;
+    markStore.currentQuestion = val.questionList[0];
   }
 );
 

+ 5 - 7
src/features/mark/MarkDrawTrack.vue

@@ -1,9 +1,10 @@
 <template>
   <transition-group name="track-score" tag="div">
-    <template v-for="track in markerTrackList">
+    <template
+      v-for="track in markerTrackList"
+      :key="`key-${track.mainNumber}-${track.subNumber}-${track.offsetY}-${track.offsetX}`"
+    >
       <div
-        v-if="markStore.shouldShowTrack && (doubleTrack || !track.isByMultMark)"
-        :key="`key-${track.mainNumber}-${track.subNumber}-${track.offsetY}-${track.offsetX}`"
         class="score-container no-event"
         :class="[focusedTrack(track) && 'score-animation']"
         :style="computeTopAndLeft(track)"
@@ -58,7 +59,7 @@
 
 <script setup lang="ts">
 import type { SpecialTag, Track } from "@/types";
-import { toRefs, watch, nextTick, computed } from "vue";
+import { toRefs, watch, nextTick } from "vue";
 import { useMarkStore } from "@/store";
 import { message } from "ant-design-vue";
 import { CheckOutlined } from "@ant-design/icons-vue";
@@ -67,9 +68,6 @@ const route = useRoute();
 
 const markStore = useMarkStore();
 
-const doubleTrack = computed(() => {
-  return !!markStore.setting?.doubleTrack;
-});
 const props = defineProps<{
   markerTrackList: Array<Track>;
   markerTagList: Array<SpecialTag>;

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

@@ -194,9 +194,8 @@ EventBus.on("should-reload-history", () => {
       if (res?.data) {
         const data = res.data.records;
         if (markStore.currentTask) {
-          // 这种方式(对象被重新构造了)能查找到index,我也很惊讶
-          const indexOfTasks = markStore.historyTasks.indexOf(
-            markStore.currentTask
+          const indexOfTasks = markStore.historyTasks.findIndex(
+            (task) => task.studentId === markStore.currentTask?.studentId
           );
           if (data[0]) {
             // 如果原任务依然存在

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

@@ -88,12 +88,6 @@ const useMarkStore = defineStore("mark", {
     modeName(state: MarkStore): string {
       return state.setting.mode === "TRACK" ? "轨迹模式" : "普通模式";
     },
-    /** 评卷端的轨迹模式显示轨迹 && 管理后台都显示轨迹 */
-    shouldShowTrack(state: MarkStore): boolean {
-      // FIXME: 不是最优雅的方式来判断是否是阅卷端
-      const isWebMark = location.pathname === "/mark/mark";
-      return !isWebMark || state.isTrackMode;
-    },
     /* 是否是扫描阅卷 */
     isScanImage(state: MarkStore): boolean {
       return state.setting.examType === "SCAN_IMAGE";