From 235e71fba36bd09acd07bf685a66e08de25998a4 Mon Sep 17 00:00:00 2001 From: AfyerCu <20569838@qq.com> Date: Sat, 18 Oct 2025 12:33:34 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=87=8F=E5=88=86=E4=BB=8E?= =?UTF-8?q?=E6=BB=A1=E5=88=86=E5=BC=80=E5=A7=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/renderer/QuestionRenderer.vue | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/components/marking/components/renderer/QuestionRenderer.vue b/src/components/marking/components/renderer/QuestionRenderer.vue index 978a9bd..f84a227 100644 --- a/src/components/marking/components/renderer/QuestionRenderer.vue +++ b/src/components/marking/components/renderer/QuestionRenderer.vue @@ -145,10 +145,28 @@ function undo() { */ function handleQuickScore(value: number) { if (currentMarkingData.value) { - const currentScore = currentMarkingData.value.score === -1 ? 0 : currentMarkingData.value.score + // 减分模式:如果当前分数是-1(未打分),则从满分开始减 + const currentScore = + currentMarkingData.value.score === -1 + ? markingSettings.value.scoreMode === 'subtract' + ? props.question.fullScore + : 0 + : currentMarkingData.value.score + + // 检查边界 + if (value > 0 && currentScore >= props.question.fullScore) { + return false + } + if (value < 0 && currentScore <= 0) { + return false + } + const newScore = Math.max(0, Math.min(props.question.fullScore, currentScore + value)) currentMarkingData.value.score = newScore + return true } + + return false } // 问题卷对话框引用