Przeglądaj źródła

自测问题修复

刘洋 1 rok temu
rodzic
commit
57757166d6

+ 1 - 1
src/api/api-types/marking.d.ts

@@ -127,7 +127,7 @@ export namespace Marking {
     problemType?: ProblemType
   }
 
-  type SubmitMarkTask = BaseDefine<SubmitMark, { refresh: boolean }>
+  type SubmitMarkTask = BaseDefine<SubmitMark, { refresh: boolean; markerPausedLimit?: number }>
 
   interface HistoryTask {
     mainNumber: number | string

+ 7 - 0
src/hooks/useMarkHeader.ts

@@ -1,6 +1,9 @@
 import { reactive, ref, computed, watch, toRefs, onMounted, onBeforeUnmount } from 'vue'
 import { useRouter, useRoute } from 'vue-router'
 import bus from '@/utils/bus'
+import useMainStore from '@/store/main'
+
+const mainStore = useMainStore()
 function getParentNodeIsScroll(el: any): any {
   if (el.className.includes('scroll-auto')) {
     return el
@@ -67,6 +70,10 @@ const useMarkHeader = () => {
     bus.emit('showStandard')
   }
   function markKeyBoardEvents(e: any) {
+    if (mainStore.markerPausedLimit > 0) {
+      //暂停评卷状态时,禁用快捷键评卷
+      return false
+    }
     if (e.key === 'F7') {
       e.preventDefault()
       bus.emit('scale-up')

+ 5 - 7
src/layout/PauseMarker.vue

@@ -12,13 +12,8 @@
       </el-form>
     </div>
     <!-- <standard-dialog v-model="standardVisible" :can-resize="'can-resize3'" resize-key="can-resize3"></standard-dialog> -->
-    <el-progress
-      type="circle"
-      :percentage="percentage"
-      class="progress"
-      :width="80"
-      :format="() => mainStore.markerPausedLimit + ''"
-    >
+    <el-progress type="circle" :percentage="percentage" class="progress" :width="80">
+      <span style="color: #fff; font-size: 16px">{{ remainTime }}</span>
     </el-progress>
   </div>
 </template>
@@ -39,6 +34,9 @@ onMounted(() => {
 const percentage = computed<number>(() => {
   return (mainStore.markerPausedLimit / (2 * 60 * 1000)) * 100
 })
+const remainTime = computed(() => {
+  return parseInt(mainStore.markerPausedLimit / 1000 + '')
+})
 </script>
 <style lang="scss" scoped>
 .lock-screen {

+ 1 - 0
src/modules/marking/mark/index.vue

@@ -383,6 +383,7 @@ const onSubmit: InstanceType<typeof ScoringPanelWithConfirm>['onSubmit'] = async
       taskId: currentTask.value.taskId,
       taskType: currentTask.value.taskType,
     })
+    mainStore.setMarkerPausedLimit(submitResult?.markerPausedLimit || 0)
     let bool = await checkMarkStatus()
     // if (!bool) {
     //   return false

+ 3 - 1
src/store/main.ts

@@ -1,6 +1,7 @@
 import { defineStore } from 'pinia'
 import { sessionStorage } from '@/plugins/storage'
 import useFetch from '@/hooks/useFetch'
+import { useRoute } from 'vue-router'
 
 import type { ExtractApiResponse } from '@/api/api'
 interface MainStoreState {
@@ -111,7 +112,8 @@ const useMainStore = defineStore<'main', MainStoreState, Record<string, any>, Ma
     },
     setNewMsgs(msgData) {
       this.newMsgs = msgData
-      if (this.markerPausedLimit == 0) {
+      const route = useRoute()
+      if (this.markerPausedLimit == 0 && route.name !== 'MarkingMark') {
         this.setMarkerPausedLimit(msgData.markerPausedLimit || 0)
       }
     },