|
@@ -16,7 +16,7 @@
|
|
<td>{{ course.startTime }} <br> ~ <br> {{ course.endTime }}</td>
|
|
<td>{{ course.startTime }} <br> ~ <br> {{ course.endTime }}</td>
|
|
<td>{{ course.allowExamCount }}</td>
|
|
<td>{{ course.allowExamCount }}</td>
|
|
<td style="min-width: 180px">
|
|
<td style="min-width: 180px">
|
|
- <template v-if="!course.isvalid">
|
|
|
|
|
|
+ <template v-if="course.isvalid">
|
|
<div style="display: grid; grid-template-columns: 1fr 1fr; grid-gap: 10px">
|
|
<div style="display: grid; grid-template-columns: 1fr 1fr; grid-gap: 10px">
|
|
<i-button class="qm-primary-button" :disabled="!courseInBetween(course)" @click="enterExam(course)">进入考试</i-button>
|
|
<i-button class="qm-primary-button" :disabled="!courseInBetween(course)" @click="enterExam(course)">进入考试</i-button>
|
|
|
|
|
|
@@ -30,13 +30,19 @@
|
|
</tr>
|
|
</tr>
|
|
</tbody>
|
|
</tbody>
|
|
</table>
|
|
</table>
|
|
|
|
+
|
|
|
|
+ <OnlineExamFaceCheckModal :open="faceCheckModalOpen"></OnlineExamFaceCheckModal>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
+import { createNamespacedHelpers } from "vuex";
|
|
import OnlineExamResultList from "./OnlineExamResultList.vue";
|
|
import OnlineExamResultList from "./OnlineExamResultList.vue";
|
|
|
|
+import OnlineExamFaceCheckModal from "./OnlineExamFaceCheckModal.vue";
|
|
import moment from "moment";
|
|
import moment from "moment";
|
|
|
|
|
|
|
|
+const { mapState, mapMutations } = createNamespacedHelpers("examHomeModule");
|
|
|
|
+
|
|
export default {
|
|
export default {
|
|
name: "EcsOnlineList",
|
|
name: "EcsOnlineList",
|
|
data() {
|
|
data() {
|
|
@@ -53,6 +59,7 @@ export default {
|
|
clearInterval(this.intervalID);
|
|
clearInterval(this.intervalID);
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ ...mapMutations(["toggleFaceCheckModal"]),
|
|
getNow() {
|
|
getNow() {
|
|
this.now = new Date();
|
|
this.now = new Date();
|
|
},
|
|
},
|
|
@@ -69,10 +76,14 @@ export default {
|
|
// if 人脸识别失败 && 考试开启强制人脸识别 return
|
|
// if 人脸识别失败 && 考试开启强制人脸识别 return
|
|
// if 人脸识别失败 && 考试未开启强制人脸识别
|
|
// if 人脸识别失败 && 考试未开启强制人脸识别
|
|
// 让学生手动确认进入考试,若取消,则返回
|
|
// 让学生手动确认进入考试,若取消,则返回
|
|
|
|
+ this.toggleFaceCheckModal(true);
|
|
}
|
|
}
|
|
|
|
|
|
// this.$router.push("/online-exam/exam/:id/overview")
|
|
// this.$router.push("/online-exam/exam/:id/overview")
|
|
},
|
|
},
|
|
|
|
+ async faceCheckResultCallback(course, faceMatched) {
|
|
|
|
+ // if faceMatched
|
|
|
|
+ },
|
|
previewPaper(course) {
|
|
previewPaper(course) {
|
|
var user = {
|
|
var user = {
|
|
loginName: course.examStudentId,
|
|
loginName: course.examStudentId,
|
|
@@ -87,8 +98,12 @@ export default {
|
|
"?isback=true";
|
|
"?isback=true";
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ computed: {
|
|
|
|
+ ...mapState(["faceCheckModalOpen"])
|
|
|
|
+ },
|
|
components: {
|
|
components: {
|
|
- "ecs-online-exam-result-list": OnlineExamResultList
|
|
|
|
|
|
+ "ecs-online-exam-result-list": OnlineExamResultList,
|
|
|
|
+ OnlineExamFaceCheckModal
|
|
}
|
|
}
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|