Browse Source

Merge branch 'dev_v4.1.2' into dev_v4.1.3

chenhao 2 years ago
parent
commit
370aa4c96e

+ 8 - 1
src/features/OnlineExam/Examing/ExamingHome.vue

@@ -123,7 +123,14 @@ type CompareResult = { hasError: boolean; fileName: string };
 function onCompareResult({ hasError, fileName }: CompareResult) {
   if (hasError) {
     // 60秒后重试抓拍
-    addTimeout(doSnap, 60 * 1000);
+    addTimeout(() => {
+      logger({
+        cnl: ["server", "console"],
+        pgn: "答题页面",
+        act: "上次抓拍失败后重试抓拍",
+      });
+      doSnap();
+    }, 60 * 1000);
   } else {
     store.exam.compareResultMap.set(fileName, false);
     void showSnapResult(fileName, examRecordDataId);

+ 8 - 7
src/features/OnlineExam/Examing/setups/useInitExamData.ts

@@ -7,6 +7,12 @@ type PRACTICE_TYPE = "IN_PRACTICE" | "NO_ANSWER";
 
 export async function initExamData(examId: number, examRecordDataId: number) {
   logger({ cnl: ["server", "local"], pgn: "答题页面", act: "before initData" });
+  const { courseName, courseCode } = (
+    await httpApp.post<{ courseName: string; courseCode: string }>(
+      "/api/ecs_oe_student/examControl/getCourseInfo/" + examRecordDataId,
+      { "axios-retry": { retries: 4 }, noErrorMessage: true }
+    )
+  ).data;
   const [
     { data: weixinAnswerEnabled },
     { data: faceCheckEnabled },
@@ -15,11 +21,10 @@ export async function initExamData(examId: number, examRecordDataId: number) {
     { data: exam },
     { data: paperStruct },
     { data: examQuestionListOrig },
-    { data: _courseName },
   ] = await Promise.all([
     // 是否开放微信小程序作答
     httpApp.get<boolean>(
-      "/api/ecs_exam_work/exam/weixinAnswerEnabled/" + examId,
+      `/api/ecs_exam_work/exam/weixinAnswerEnabled/${examId}?courseCode=${courseCode}`,
       {
         "axios-retry": { retries: 4 },
         noErrorMessage: true,
@@ -62,12 +67,8 @@ export async function initExamData(examId: number, examRecordDataId: number) {
       "/api/ecs_oe_student/examQuestion/findExamQuestionList",
       { "axios-retry": { retries: 4 }, noErrorMessage: true }
     ),
-    httpApp.get<string>(
-      "/api/ecs_oe_student/examControl/courseName/" + examRecordDataId,
-      { "axios-retry": { retries: 4 }, noErrorMessage: true }
-    ),
   ]);
-  store.exam.courseName = _courseName;
+  store.exam.courseName = courseName;
 
   let examQuestionList = examQuestionListOrig;
 

+ 6 - 4
src/features/OnlineExam/Examing/setups/useSubmitPaper.tsx

@@ -87,10 +87,12 @@ export function useRealSubmitPaper(examId: number, examRecordDataId: number) {
     addTimeout(() => {
       store.decreaseGlobalMaskCount("realSubmitPaper");
       store.spinMessage = "";
-      void router.push({
-        name: "SubmitPaper",
-        params: { examId, examRecordDataId },
-      });
+      void router
+        .push({
+          name: "SubmitPaper",
+          params: { examId, examRecordDataId },
+        })
+        .finally(() => (sumbitLock = false));
     }, delay * 1000);
   }
 

+ 4 - 0
src/features/OnlineExam/FaceRecognition.vue

@@ -197,6 +197,10 @@ async function getSnapShot(compareSync: boolean): Promise<Blob | unknown> {
         pgu: "AUTO",
         act: "getSnapShot",
         dtl: "摄像头没有正常启用",
+        ext: {
+          readyState: video.readyState,
+          mediaActive: (video.srcObject as MediaStream).active,
+        },
       });
       reject("摄像头没有正常启用");
       if (!compareSync) {