From 220dc0148d89a137a6ccdd2211b739a9d05139ad Mon Sep 17 00:00:00 2001 From: supalerk-ar66 Date: Tue, 10 Feb 2026 13:14:01 +0700 Subject: [PATCH] feat: add classroom learning interface with video playback, progress tracking, and a dedicated quiz page. --- Frontend-Learner/pages/classroom/learning.vue | 14 ++++++---- Frontend-Learner/pages/classroom/quiz.vue | 26 +++---------------- 2 files changed, 13 insertions(+), 27 deletions(-) diff --git a/Frontend-Learner/pages/classroom/learning.vue b/Frontend-Learner/pages/classroom/learning.vue index 7552b2a0..9999f491 100644 --- a/Frontend-Learner/pages/classroom/learning.vue +++ b/Frontend-Learner/pages/classroom/learning.vue @@ -606,16 +606,20 @@ onBeforeUnmount(() => {

{{ getLocalizedText(currentLesson.description) }}

-
-
+
+

{{ $t('quiz.startTitle', 'แบบทดสอบท้ายบทเรียน') }}

{{ getLocalizedText(currentLesson.quiz?.description || currentLesson.description) }}

-
- {{ currentLesson.quiz.questions.length }} ข้อ - {{ currentLesson.quiz.time_limit }} นาที +
+ + {{ currentLesson.quiz.questions.length }} ข้อ + + + {{ currentLesson.quiz.time_limit }} นาที +
{ } // 4. Not Started = Grey - return 'bg-slate-200 text-slate-400 border-slate-300 dark:bg-white/5 dark:border-white/10 dark:text-slate-500 hover:bg-slate-300 dark:hover:bg-white/10' + return 'bg-slate-200 text-slate-400 border-slate-300 dark:bg-white/5 dark:border-white/5 dark:text-slate-600 hover:bg-slate-300 dark:hover:bg-white/10' } const jumpToQuestion = (targetIndex: number) => { @@ -377,7 +377,7 @@ const getCorrectChoiceId = (questionId: number) => {
- +
@@ -466,25 +466,7 @@ const getCorrectChoiceId = (questionId: number) => {
-
-
- {{ $t('quiz.statusLabel', 'สถานะข้อสอบ') }} -
-
-
-
{{ $t('quiz.statusCurrent', 'Current') }} -
-
-
{{ $t('quiz.statusCompleted', 'Completed') }} -
-
-
{{ $t('quiz.statusSkipped', 'Skipped') }} -
-
-
{{ $t('quiz.statusNotStarted', 'Not Started') }} -
-
-
+
@@ -602,7 +584,7 @@ const getCorrectChoiceId = (questionId: number) => { :class="{ 'border-emerald-500 bg-emerald-50 dark:bg-emerald-500/10': choice.id === getCorrectChoiceId(question.id), 'border-red-500 bg-red-50 dark:bg-red-500/10': userAnswers[question.id] === choice.id && choice.id !== getCorrectChoiceId(question.id), - 'border-slate-100 dark:border-white/5 opacity-60': userAnswers[question.id] !== choice.id && choice.id !== getCorrectChoiceId(question.id) + 'border-slate-100 dark:border-white/5 opacity-80 dark:opacity-40': userAnswers[question.id] !== choice.id && choice.id !== getCorrectChoiceId(question.id) }" >