import Vue from "vue"; import { createLog } from "@/utils/logger"; 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 serverLog(level, logText) { try { await this.$http.post( "/api/ecs_core/log/studentClient/" + level, logText, { headers: { "Content-Type": "text/plain", }, } ); } catch (error) { console.log(error); } }, 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 "调用断点续考接口超过次数"; } examingRes = examingRes.data.data; // 保持和原接口一致 if (examingRes && examingRes.isExceed) { // 超出断点续考次数的逻辑,仅此block this.$Message.info({ content: `超出最大断点续考次数(${examingRes.maxInterruptNum}),正在自动交卷...`, duration: 15, closable: true, }); this.$Spin.show({ render: () => { return (