import router from "@/router"; import { useTimers } from "@/setups/useTimers"; import { store } from "@/store/store"; import { answerAllQuestions } from "./useAnswerQuestions"; export function useRealSubmitPaper( examId: number, examRecordDataId: number, doSnap: () => void ) { const { addTimeout } = useTimers(); async function userSubmitPaper(usedExamTimes: { usedExamSeconds: number; startTimestamp: number; }) { // if ( // store.exam.freezeTime && // store.exam.remainTime > // (store.exam.duration - store.exam.freezeTime) * 60 * 1000 // ) { // $message.info(`考试开始${store.exam.freezeTime}分钟后才允许交卷。`); // return; // } if ( store.exam.freezeTime && usedExamTimes.usedExamSeconds * 1000 + Date.now() - usedExamTimes.startTimestamp < store.exam.freezeTime * 60 * 1000 ) { $message.info(`考试开始${store.exam.freezeTime}分钟后才允许交卷。`); return; } logger({ cnl: ["server", "local", "console"], act: "学生点击交卷" }); try { // 交卷前强制提交所有答案 const ret = await answerAllQuestions(true); if (!ret) { // 提交答案失败,停止交卷逻辑。 return; } } catch (error) { return; } const answered = store.exam.examQuestionList.filter( (q) => q.studentAnswer !== null ).length; const unanswered = store.exam.examQuestionList.filter( (q) => q.studentAnswer === null ).length; const signed = store.exam.examQuestionList.filter( (q) => q.isStarred ).length; $dialog.info({ title: "确认交卷", content: () => (
已答题目:{answered}
未答题目:{unanswered}
标记题目:{signed}