import Vue from "vue"; import { createLog } from "@/utils/logger"; import moment from "moment"; Vue.mixin({ beforeCreate() { if (document.getElementById("app-placeholder")) document.getElementById("app-placeholder").remove(); }, mounted() { // console.log("mixin hook called"); [...document.getElementsByTagName("a")].forEach(e => { e.addEventListener("click", function(event) { event.preventDefault(); }); }); }, methods: { logger(logs) { createLog(logs); }, async checkExamInProgress() { try { // 断点续考 // const examingRes = (await this.$http.get( // "/api/ecs_oe_student/examControl/checkExamInProgress" // )).data; let examingRes; for (let i = 0; i < 4; i++) { examingRes = await this.$http.get( "/api/ecs_oe_student/examControl/checkExamInProgress" ); if ( examingRes.status === 503 || examingRes.data.code === "S-101000" ) { await new Promise(resolve => setTimeout(() => resolve(), 2000)); continue; } else if (examingRes.data.code === "000000") { break; } } if (examingRes.status !== 200 || examingRes.data.code !== "000000") { window._hmt.push([ "_trackEvent", "断点续考处理异常", "调用断点续考接口超过次数", ]); throw new Error("调用断点续考接口超过次数"); } this.$store.commit( "updateTimeDifference", moment(examingRes.headers.date).diff(moment()) ); examingRes = examingRes.data.data; // 保持和原接口一致 if (examingRes && examingRes.isExceed) { // 超出断点续考次数的逻辑,仅此block this.$Message.info({ content: `超出最大断点续考次数(${examingRes.maxInterruptNum}),正在自动交卷...`, duration: 15, closable: true, }); this.$Spin.show({ render: () => { return (