+
+
+
+
+ {{ studentsPagination.total }}
+ ผู้เรียนทั้งหมด
+
+
+
+
+ {{ completedStudentsCount }}
+ จบหลักสูตร
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
ยังไม่มีผู้เรียนในหลักสูตรนี้
+
{{ studentSearch || studentStatusFilter !== 'all' ? 'ไม่พบผู้เรียนที่ค้นหา' : 'ยังไม่มีผู้เรียนในหลักสูตรนี้' }}
+
+
+
+
+
+
+
+
+
+
+ {{ student.username.charAt(0).toUpperCase() }}
+
+
+
+
+
+ {{ student.first_name }} {{ student.last_name }}
+
+ {{ student.email }}
+
+
+
+ ความคืบหน้า
+
+
+ {{ student.progress_percentage }}%
+
+
+
+
+
+ {{ getStudentStatusLabel(student.status) }}
+
+
+ ลงทะเบียน {{ formatEnrollDate(student.enrolled_at) }}
+
+
+
+
+
+
+
+
+
+
@@ -510,6 +643,132 @@
+
+
+
+
+
+
+
+
+
+ {{ studentDetail.student.username.charAt(0).toUpperCase() }}
+
+
+
{{ studentDetail.student.first_name }} {{ studentDetail.student.last_name }}
+
{{ studentDetail.student.email }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ความคืบหน้าทั้งหมด
+
+
+ {{ getStudentStatusLabel(studentDetail.enrollment.status) }}
+
+ {{ studentDetail.enrollment.progress_percentage }}%
+
+
+
+
+ เรียนจบ {{ studentDetail.total_completed_lessons }} / {{ studentDetail.total_lessons }} บทเรียน
+ ลงทะเบียน {{ formatEnrollDate(studentDetail.enrollment.enrolled_at) }}
+
+
+
+
+
+
+
+
+
+
+ {{ chapter.completed_lessons }}/{{ chapter.total_lessons }}
+
+
+
+ {{ chapter.chapter_title.th }}
+ {{ chapter.completed_lessons }} จาก {{ chapter.total_lessons }} บทเรียน
+
+
+
+
+
+
+
+
+
+
+ {{ lesson.lesson_title.th }}
+
+
+ {{ getLessonTypeLabel(lesson.lesson_type) }}
+
+ • {{ formatVideoTime(lesson.video_progress_seconds) }} / {{ formatVideoTime(lesson.video_duration_seconds) }}
+ ({{ lesson.video_progress_percentage }}%)
+
+
+
+
+
+ เสร็จ {{ formatCompletedDate(lesson.completed_at) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -523,7 +782,9 @@ import {
type AnnouncementResponse,
type CreateAnnouncementRequest,
type CourseInstructorResponse,
- type SearchInstructorResult
+ type SearchInstructorResult,
+ type EnrolledStudentResponse,
+ type StudentDetailData
} from '~/services/instructor.service';
definePageMeta({
@@ -567,6 +828,34 @@ const loadingSearch = ref(false);
const addingInstructor = ref(false);
const searchQuery = ref('');
+// Students data
+const students = ref