This commit is contained in:
team3
2026-06-14 22:53:10 +02:00
parent 08dd0ccd69
commit 25a07ede4d
5 changed files with 79 additions and 30 deletions

View File

@@ -80,6 +80,7 @@ const pruefLoading = ref(false)
const aktuelleFrage = ref('') // ankert Bewertung/Diskussion
const letztesFeedback = ref('') // Kontext für die Diskussion über eine Bewertung
const scoreVorFrage = ref(0) // Score, als die aktuelle Frage gestellt wurde → driftfreies (Re-)Bewerten
const nachfrageRunde = ref(0) // mündliche Prüfung: bisherige Folgefragen dieser Frage
const pruefMessagesEl = ref(null)
const pruefInputEl = ref(null)
const pruefStick = ref(true) // nur auto-scrollen, wenn der Nutzer (fast) unten ist
@@ -133,6 +134,7 @@ function frageAnfordern() {
aktuelleFrage.value = res.frage
letztesFeedback.value = ''
scoreVorFrage.value = res.gute_antworten // Basis für (Re-)Bewertung dieser Frage
nachfrageRunde.value = 0 // neue Frage → Folgefragen-Zähler zurücksetzen
pruefMessages.value.push({ role: 'assistant', kind: 'frage', content: res.frage })
pruefPhase.value = 'frage_offen'
})
@@ -151,21 +153,36 @@ function nachfragen() {
function bewerten(res) {
letztesFeedback.value = res.feedback || ''
// Mündliche Prüfung: Folgefrage statt Wertung (bewertung null, frage gesetzt).
if (res.bewertung == null && res.frage) {
nachfrageRunde.value += 1
const inhalt = (res.feedback ? res.feedback + '\n\n' : '') + res.frage
pruefMessages.value.push({ role: 'assistant', kind: 'folgefrage', content: inhalt })
pruefPhase.value = 'frage_offen' // weiter antworten — kein Punkt
return
}
pruefMessages.value.push({ role: 'assistant', kind: 'feedback', content: res.feedback || '', bewertung: res.bewertung })
pruefPhase.value = 'bewertet'
}
function antwortPayload() {
return {
aktion: 'antwort', frage: aktuelleFrage.value, score_vor_frage: scoreVorFrage.value,
nachfrage_runde: nachfrageRunde.value, tier2: props.tier2, tier3: props.tier3,
}
}
function antwortAbgeben() {
const text = pruefInput.value.trim()
if (!text || pruefLoading.value) return
pruefMessages.value.push({ role: 'user', kind: 'antwort', content: text })
pruefInput.value = ''
pruefSenden({ aktion: 'antwort', frage: aktuelleFrage.value, score_vor_frage: scoreVorFrage.value, tier2: props.tier2, tier3: props.tier3 }, bewerten)
pruefSenden(antwortPayload(), bewerten)
}
function neuBewerten() {
if (pruefLoading.value) return
pruefSenden({ aktion: 'antwort', frage: aktuelleFrage.value, score_vor_frage: scoreVorFrage.value, tier2: props.tier2, tier3: props.tier3 }, bewerten)
pruefSenden(antwortPayload(), bewerten)
}
</script>