fix: 过程数据关闭问题修复

This commit is contained in:
wangzhongjie 2025-10-29 11:57:52 +08:00
parent 06ad18fccb
commit 0f400c7467
3 changed files with 30 additions and 16 deletions

View File

@ -174,6 +174,7 @@ export struct JudgePage {
builder: ConfirmDialog({ builder: ConfirmDialog({
text: "确认结束考试?", text: "确认结束考试?",
onConfirm: async () => { onConfirm: async () => {
dConsole.log(JudgeTag, "点击确认结束")
if (this.isErrorMsgEnd) { if (this.isErrorMsgEnd) {
dConsole.log(JudgeTag, "router back1") dConsole.log(JudgeTag, "router back1")
router.back() router.back()

View File

@ -282,6 +282,7 @@ export class BaseJudge {
if (!judgeUI.singlePlay && that.isManual && !judgeUI.isAllProjectsEnd && judgeUI.totalScore >= judgeUI.passingScore) { if (!judgeUI.singlePlay && that.isManual && !judgeUI.isAllProjectsEnd && judgeUI.totalScore >= judgeUI.passingScore) {
that.avPlayer?.playAudio(['voice/empty.mp3'], true, () => { that.avPlayer?.playAudio(['voice/empty.mp3'], true, () => {
this.isUdpEnd = true this.isUdpEnd = true
dConsole.log(JudgeTag, "考试结束自动退出1")
router.back(); router.back();
}) })
return return
@ -309,13 +310,16 @@ export class BaseJudge {
} catch (e) { } catch (e) {
console.info(JudgeTag, JSON.stringify(e)) console.info(JudgeTag, JSON.stringify(e))
} }
if (judgeUI.singlePlay) {
// 单机结束
await this.endExam(judgeUI, that)
} else {
TheExamIsOver(judgeUI, that, async (res: WR) => { TheExamIsOver(judgeUI, that, async (res: WR) => {
dConsole.log(JudgeTag, ExamProcessDataTag, "考试结束接口完成", res) dConsole.log(JudgeTag, ExamProcessDataTag, "考试结束接口完成", res)
const code = res.code!.toString() const code = res.code!.toString()
if (code !== "1") { if (code !== "1") {
that?.avPlayer?.playAudio(['voice/监管失败.mp3']) that?.avPlayer?.playAudio(['voice/监管失败.mp3'])
judgeUI.errorMsg = decodeURIComponent(res?.message || "") judgeUI.errorMsg = decodeURIComponent(res?.message || "")
if (code.toString() === "2300028" || code.toString() === "2300007") { if (code.toString() === "2300028" || code.toString() === "2300007") {
judgeUI.errorMsg = '当前的考试过程信息监管审核未通过,程序将退出!' judgeUI.errorMsg = '当前的考试过程信息监管审核未通过,程序将退出!'
} }
@ -325,6 +329,8 @@ export class BaseJudge {
await this.endExam(judgeUI, that) await this.endExam(judgeUI, that)
} }
}) })
}
}) })
} }
@ -412,6 +418,7 @@ export class BaseJudge {
if (judgeUI.kfArr.length - 1 === index) { if (judgeUI.kfArr.length - 1 === index) {
that.avPlayer?.playAudio([`voice/${kf.markcatalog}.mp3`, voiceURL], false, () => { that.avPlayer?.playAudio([`voice/${kf.markcatalog}.mp3`, voiceURL], false, () => {
this.isUdpEnd = true this.isUdpEnd = true
dConsole.log(JudgeTag, "考试结束自动退出2")
router.back(); router.back();
}) })
throw new Error('End Loop') throw new Error('End Loop')
@ -420,6 +427,7 @@ export class BaseJudge {
} else { } else {
that.avPlayer?.playAudio([`voice/${kf.markcatalog}.mp3`, voiceURL], false, () => { that.avPlayer?.playAudio([`voice/${kf.markcatalog}.mp3`, voiceURL], false, () => {
this.isUdpEnd = true this.isUdpEnd = true
dConsole.log(JudgeTag, "考试结束自动退出3")
router.back(); router.back();
}) })
throw new Error('End Loop') throw new Error('End Loop')
@ -433,6 +441,7 @@ export class BaseJudge {
that.avPlayer?.playAudio([voiceURL], true, () => { that.avPlayer?.playAudio([voiceURL], true, () => {
setTimeout(() => { setTimeout(() => {
this.isUdpEnd = true this.isUdpEnd = true
dConsole.log(JudgeTag, "考试结束自动退出5")
router.back(); router.back();
}, param302 === "8" ? 3000 : 0) }, param302 === "8" ? 3000 : 0)
}) })
@ -761,9 +770,12 @@ export class BaseJudge {
const passingScore = Number(judgeUI.passingScore) const passingScore = Number(judgeUI.passingScore)
const jl = judgeUI.jl const jl = judgeUI.jl
if (that.isExamEnd) { if (that.isExamEnd) {
dConsole.log("JudgeTag", "已经结束考试")
return return
} }
if (isManual) { if (isManual) {
dConsole.log(JudgeTag, '收到远程结束考试消息5')
judgeUI.generateExamRecordsDialogController.close()
// 考试不合格 // 考试不合格
await examJudgeEndExam() await examJudgeEndExam()
that.isExamEnd = true that.isExamEnd = true
@ -772,7 +784,7 @@ export class BaseJudge {
const param302: number = Reflect.get(judgeConfigObj, '302') const param302: number = Reflect.get(judgeConfigObj, '302')
const param342: number = Reflect.get(judgeConfigObj, '342') const param342: number = Reflect.get(judgeConfigObj, '342')
const param512: number[] = (Reflect.get(judgeConfigObj, '512') || '').split(','); const param512: number[] = (Reflect.get(judgeConfigObj, '512') || '').split(',');
dConsole.log(JudgeTag, '收到远程结束考试消息4')
//单机模式 //单机模式
if (singlePlay) { if (singlePlay) {
dConsole.info(JudgeTag + ' 单机模式结束 => ', isAllProjectsEnd) dConsole.info(JudgeTag + ' 单机模式结束 => ', isAllProjectsEnd)

View File

@ -119,6 +119,7 @@ function CloseProcessData() {
fileFdArr.forEach((item: number) => { fileFdArr.forEach((item: number) => {
fs.closeSync(item) fs.closeSync(item)
}) })
fileFdArr = []
} }
} }