Michael Wang 5 роки тому
батько
коміт
31f6caac50
1 змінених файлів з 60 додано та 14 видалено
  1. 60 14
      src/features/OnlineExam/CheckComputer.vue

+ 60 - 14
src/features/OnlineExam/CheckComputer.vue

@@ -136,12 +136,15 @@
             autoplay
           ></video>
 
-          <div style="margin-left: 50px; margin-top: 100px;">
+          <div
+            v-if="camera.openCameraResolved && camera.openCameraStatus"
+            style="margin-left: 50px; margin-top: 100px;"
+          >
             <Button
               type="warning"
               @click="
-                camera.resolved = true;
-                camera.status = false;
+                camera.identityResolved = true;
+                camera.identityStatus = false;
               "
             >
               图像中不是电脑操作者本人
@@ -150,8 +153,8 @@
             <Button
               type="primary"
               @click="
-                camera.resolved = true;
-                camera.status = true;
+                camera.identityResolved = true;
+                camera.identityStatus = true;
               "
             >
               图像中是电脑操作者本人&nbsp;&nbsp;&nbsp;&nbsp;
@@ -172,16 +175,54 @@
             <tr>
               <td>摄像头正常启用</td>
               <td>
-                <div v-if="camera.resolved">
-                  {{ camera.status ? "正常" : "请检查摄像头" }}
+                <div v-if="camera.openCameraResolved">
+                  {{ camera.openCameraStatus ? "正常" : "请检查摄像头" }}
+                </div>
+                <div v-else>
+                  <PulseLoader />
+                </div>
+              </td>
+              <td>
+                <div v-if="camera.openCameraResolved">
+                  <div v-if="camera.openCameraStatus">
+                    <Icon class="pass-check" type="md-checkmark" />
+                  </div>
+                  <div v-else>
+                    <Icon
+                      class="fail-cross"
+                      title="请检查摄像头"
+                      type="md-close"
+                    />
+                  </div>
+                </div>
+                <div v-else>
+                  <PulseLoader />
+                </div>
+              </td>
+            </tr>
+            <tr>
+              <td>视频显示的是电脑操作者本人</td>
+              <td>
+                <div
+                  v-if="
+                    (camera.openCameraResolved && !camera.openCameraStatus) ||
+                      camera.identityResolved
+                  "
+                >
+                  {{ camera.identityStatus ? "正常" : "请检查摄像头" }}
                 </div>
                 <div v-else>
                   <PulseLoader />
                 </div>
               </td>
               <td>
-                <div v-if="camera.resolved">
-                  <div v-if="camera.status">
+                <div
+                  v-if="
+                    (camera.openCameraResolved && !camera.openCameraStatus) ||
+                      camera.identityResolved
+                  "
+                >
+                  <div v-if="camera.identityStatus">
                     <Icon class="pass-check" type="md-checkmark" />
                   </div>
                   <div v-else>
@@ -622,8 +663,10 @@ export default {
         clockRateStatus: false,
       },
       camera: {
-        status: false,
-        resolved: false,
+        openCameraResolved: false,
+        openCameraStatus: false,
+        identityStatus: false,
+        identityResolved: false,
       },
       sound: {
         downloadResolved: false,
@@ -723,7 +766,7 @@ export default {
             video.srcObject = stream;
             try {
               await video.play();
-              // this.camera = true;
+              this.camera.openCameraStatus = true;
             } catch (error) {
               console.log("摄像头没有正常启用", error);
               this.$Message.error({
@@ -758,6 +801,8 @@ export default {
             "摄像头状态",
             "无法启用摄像头",
           ]);
+        } finally {
+          this.camera.openCameraResolved = true;
         }
       } else {
         this.$Message.error({
@@ -772,6 +817,7 @@ export default {
           "没有找到可用的摄像头",
         ]);
       }
+      this.camera.openCameraResolved = true;
     },
   },
   computed: {
@@ -795,10 +841,10 @@ export default {
       return this.time.timeZoneStatus && this.time.clockRateStatus;
     },
     step3StatusResolved() {
-      return this.camera.cameraResolved;
+      return this.camera.identityResolved && this.camera.openCameraResolved;
     },
     step3Status() {
-      return this.camera.status;
+      return this.camera.identityStatus && this.camera.openCameraStatus;
     },
     step4StatusResolved() {
       return this.sound.downloadResolved && this.sound.playedStatusResolved;