刘洋 6 月之前
父节点
当前提交
7d56d6c7e7

+ 28 - 2
src/components/Abnormal.vue

@@ -1,5 +1,9 @@
 <template>
-  <div v-if="store.currentTask?.collationLabelCode" class="abnormal">
+  <div
+    v-if="store.currentTask?.collationLabelCode && !isInMiniDialog"
+    ref="abnormalRef"
+    class="abnormal"
+  >
     <div class="collapse-btn" :class="{ rotate: !show }" @click="show = !show">
       <UpOutlined style="font-size: 16px" />
     </div>
@@ -13,10 +17,32 @@
   </div>
 </template>
 <script name="Abnormal" lang="ts" setup>
-import { computed, ref, watch } from "vue";
+import { computed, ref, watch, onMounted } from "vue";
 import { store } from "@/store/store";
 
 import { UpOutlined } from "@ant-design/icons-vue";
+
+const findParent = (child, selector) => {
+  let parent = child.parentNode;
+  while (parent && parent !== document.documentElement) {
+    if (parent.matches(selector)) {
+      return parent;
+    }
+    parent = parent.parentNode;
+  }
+
+  return null;
+};
+
+const abnormalRef = ref();
+const isInMiniDialog = ref(false);
+
+onMounted(() => {
+  if (findParent(abnormalRef.value, ".mini-map-container")) {
+    isInMiniDialog.value = true;
+  }
+});
+
 const show = ref(true);
 const result = computed(() => {
   let collationLabelList = store.setting?.collationLabelList || [];

+ 2 - 2
src/devLoginParams.ts

@@ -108,10 +108,10 @@
 export const LOGIN_CONFIG = {
   isAdmin: false,
   forceChange: true,
-  loginName: "1-432-3-1",
+  loginName: "1-432-1-2",
   password: "123456",
   examId: "1",
-  markerId: "6",
+  markerId: "3",
 };
 
 /** 225 管理员 */

+ 1 - 1
src/features/library/inspect/LibraryInspect.vue

@@ -208,7 +208,7 @@ const rejectQuestions = async ({
       store.currentTask = undefined;
       if (!isSingleStudent) await fetchTask();
     } else {
-      EventBus.emit("should-reload-history");
+      EventBus.emit("should-reload-history", true);
     }
   } else if (res.data.message) {
     console.log(res.data.message);

+ 5 - 3
src/features/mark/CommonMarkBody.vue

@@ -3,7 +3,6 @@
     ref="dragContainer"
     class="mark-body-container tw-flex-auto tw-p-2 tw-pt-0 tw-relative"
   >
-    <Abnormal />
     <div
       v-if="!store.currentTask"
       class="tw-text-center empty-task tw-flex tw-flex-col tw-place-items-center tw-justify-center"
@@ -13,9 +12,10 @@
     </div>
     <div
       v-else-if="store.isScanImage"
-      :style="{ width: answerPaperScale }"
+      :style="{ width: answerPaperScale, position: 'relative' }"
       :class="['tw-pt-2', `rotate-board-${rotateBoard}`]"
     >
+      <Abnormal />
       <div
         v-for="(item, index) in sliceImagesWithTrackList"
         :key="index"
@@ -38,7 +38,8 @@
         <hr class="image-seperator" />
       </div>
     </div>
-    <div v-else-if="store.isMultiMedia">
+    <div v-else-if="store.isMultiMedia" style="position: relative">
+      <Abnormal />
       <MultiMediaMarkBody />
     </div>
     <div v-else>impossible</div>
@@ -46,6 +47,7 @@
       {{ markStatus }}
       <div class="double-triangle"></div>
     </div>
+
     <ZoomPaper
       v-if="
         store.isScanImage &&

+ 14 - 8
src/features/mark/MarkHistory.vue

@@ -329,7 +329,7 @@ const currentTaskChange = async () => {
 watch(() => store.historyOpen, currentTaskChange);
 watch([$$(order), $$(sort), $$(currentPage)], currentTaskChange);
 
-EventBus.on("should-reload-history", () => {
+EventBus.on("should-reload-history", (needCut?: any) => {
   // await updateHistoryTask({
   //   secretNumber: secretNumberInput,
   //   order: order,
@@ -343,16 +343,17 @@ EventBus.on("should-reload-history", () => {
     store.globalMask = true;
     try {
       const res = await getHistory({
-        secretNumber: store.currentTask?.secretNumber,
+        // secretNumber: store.currentTask?.secretNumber,
         order,
         sort,
-        pageNumber: currentPage,
+        // pageNumber: currentPage,
+        pageNumber: 1,
         subjectCode,
         groupNumber,
         markerId,
         markerScore,
         pageSize: limitPageSize.value,
-        noArbitrate
+        noArbitrate,
       });
       if (res?.data) {
         // let data = cloneDeep(res.data);
@@ -374,9 +375,14 @@ EventBus.on("should-reload-history", () => {
           // 这种方式(对象被重新构造了)能查找到index,我也很惊讶
           const indexOfTasks = store.historyTasks.indexOf(store.currentTask);
           if (data[0]) {
-            // 如果原任务依然存在
-            store.historyTasks.splice(indexOfTasks, 1, data[0]);
-            replaceCurrentTask(store.historyTasks[indexOfTasks]);
+            if (needCut) {
+              store.historyTasks.splice(indexOfTasks, 1);
+              replaceCurrentTask(store.historyTasks[indexOfTasks]);
+            } else {
+              // 如果原任务依然存在
+              store.historyTasks.splice(indexOfTasks, 1, data[0]);
+              replaceCurrentTask(store.historyTasks[indexOfTasks]);
+            }
           } else {
             // 问题卷会查找不到,这里直接删除此任务
             store.historyTasks.splice(indexOfTasks, 1);
@@ -411,7 +417,7 @@ async function updateHistoryTask({
     groupNumber,
     markerId,
     markerScore,
-    noArbitrate
+    noArbitrate,
   };
   let key = searchType == "1" ? "secretNumber" : "markerScore";
   params[key] = secretNumber;

+ 1 - 1
src/features/mark/MarkProblemDialog.vue

@@ -56,7 +56,7 @@ const chooseProblemType = async (problemId: number) => {
       visible = false;
       store.currentTask = undefined;
       if (store.historyOpen) {
-        EventBus.emit("should-reload-history");
+        EventBus.emit("should-reload-history", true);
       } else {
         store.tasks.shift();
         store.currentTask = store.tasks[0];

+ 1 - 1
src/features/student/studentInspect/StudentInspect.vue

@@ -259,7 +259,7 @@ const rejectQuestions = async ({
         hasScrollToBottom = !store.setting?.inspectScroll;
       }
     } else {
-      EventBus.emit("should-reload-history");
+      EventBus.emit("should-reload-history", true);
     }
   } else if (res.data.message) {
     // console.log(res.data.message);