|
@@ -216,7 +216,12 @@ function disagreeCommittment() {
|
|
}
|
|
}
|
|
|
|
|
|
let passedAllChecks = false;
|
|
let passedAllChecks = false;
|
|
|
|
+let loading = $ref(false)
|
|
async function enterExam() {
|
|
async function enterExam() {
|
|
|
|
+ if(loading){
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ loading = true
|
|
let hstate = { examStudentId: course.examStudentId };
|
|
let hstate = { examStudentId: course.examStudentId };
|
|
/** 为了代码加密混淆效果更好,隐藏在线考试开始考试的启动逻辑,将在线考试启动接口调用放在该组件内部 */
|
|
/** 为了代码加密混淆效果更好,隐藏在线考试开始考试的启动逻辑,将在线考试启动接口调用放在该组件内部 */
|
|
if (course.examType === "ONLINE") {
|
|
if (course.examType === "ONLINE") {
|
|
@@ -283,6 +288,7 @@ async function enterExam() {
|
|
possibleError: error,
|
|
possibleError: error,
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
+ loading = false
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -292,6 +298,7 @@ async function enterExam() {
|
|
params: { examId: course.examId },
|
|
params: { examId: course.examId },
|
|
query: hstate,
|
|
query: hstate,
|
|
});
|
|
});
|
|
|
|
+ loading = false
|
|
}
|
|
}
|
|
|
|
|
|
onUnmounted(() => {
|
|
onUnmounted(() => {
|
|
@@ -384,6 +391,7 @@ onUnmounted(() => {
|
|
<n-button
|
|
<n-button
|
|
type="success"
|
|
type="success"
|
|
style="margin-right: 5px; min-width: 120px"
|
|
style="margin-right: 5px; min-width: 120px"
|
|
|
|
+ :loading="loading"
|
|
@click="enterExam"
|
|
@click="enterExam"
|
|
>
|
|
>
|
|
确定
|
|
确定
|