This commit is contained in:
sajjadtalkhabi
2026-05-21 15:51:32 +03:30
parent 8990ceaddd
commit 74227d5021
71 changed files with 2014 additions and 1666 deletions
@@ -166,12 +166,12 @@ import PaginationBlock from '@/components/blocks/PaginationBlock.vue'
import SkeletonLoaderBlock from '@/components/blocks/SkeletonLoaderBlock.vue'
import CourseSessionItem from '@/features/admin/courses/components/CourseSessionItem.vue'
import {
adminCourseTemplatesKeys,
useAdminCourseTemplateQuery,
useAdminTemplateSessionsQuery,
useAdminTemplateStudentsQuery,
useRemoveAdminTemplateStudentMutation,
} from '@/services/query/admin-course-templates'
adminCoursesKeys,
useAdminCourseQuery,
useAdminCourseSessionsQuery,
useAdminCourseStudentsQuery,
useRemoveAdminCourseStudentMutation,
} from '@/services/query/admin-courses'
defineOptions({ name: 'CourseDetailsModal' })
@@ -179,14 +179,14 @@ const queryClient = useQueryClient()
const { openModal, getModal } = useModal()
const modalData = computed(() => getModal('CourseDetailsModal')?.data ?? {})
const templateId = computed(() => modalData.value.id ?? null)
const courseId = computed(() => modalData.value.id ?? null)
const { data: course, isLoading } = useAdminCourseTemplateQuery(templateId, {
enabled: () => !!templateId.value,
const { data: course, isLoading } = useAdminCourseQuery(courseId, {
enabled: () => !!courseId.value,
})
const teacherName = computed(() => {
const t = course.value?.defaultTeacher || course.value?.teacher
const t = course.value?.teacher
if (!t) return '—'
return `${t.firstName || ''} ${t.lastName || ''}`.trim() || t.fullName || '—'
})
@@ -203,12 +203,12 @@ const { pagination: sessionsPagination, setPage: setSessionsPage } = usePaginati
perPage: 10,
})
const { data: sessionsData, isLoading: sessionsPending } = useAdminTemplateSessionsQuery(
templateId,
const { data: sessionsData, isLoading: sessionsPending } = useAdminCourseSessionsQuery(
courseId,
sessionsFilters,
sessionsPagination,
{
enabled: () => !!templateId.value && activeTab.value === 'sessions',
enabled: () => !!courseId.value && activeTab.value === 'sessions',
keepPreviousData: true,
}
)
@@ -226,12 +226,12 @@ const { pagination: studentsPagination, setPage: setStudentsPage } = usePaginati
perPage: 10,
})
const { data: studentsData, isLoading: studentsPending } = useAdminTemplateStudentsQuery(
templateId,
const { data: studentsData, isLoading: studentsPending } = useAdminCourseStudentsQuery(
courseId,
studentsFilters,
studentsPagination,
{
enabled: () => !!templateId.value && activeTab.value === 'students',
enabled: () => !!courseId.value && activeTab.value === 'students',
keepPreviousData: true,
}
)
@@ -249,16 +249,16 @@ const studentName = (student) =>
student.phoneNumber ||
'—'
const invalidate = () => queryClient.invalidateQueries({ queryKey: adminCourseTemplatesKeys.all })
const invalidate = () => queryClient.invalidateQueries({ queryKey: adminCoursesKeys.all })
const removeStudentMutation = useRemoveAdminTemplateStudentMutation()
const removeStudentMutation = useRemoveAdminCourseStudentMutation()
const onOpenAddSession = () => {
openModal('AddSessionToCourseModal', { templateId: templateId.value })
openModal('AddSessionToCourseModal', { courseId: courseId.value })
}
const onOpenAddStudent = () => {
openModal('AddCourseStudentModal', { templateId: templateId.value })
openModal('AddCourseStudentModal', { courseId: courseId.value })
}
const onAskRemoveStudent = (student) => {
@@ -267,7 +267,7 @@ const onAskRemoveStudent = (student) => {
message: `آیا از حذف <strong>${studentName(student)}</strong> از این دوره اطمینان دارید؟`,
onConfirm: () =>
removeStudentMutation.mutate(
{ templateId: templateId.value, userId: student.id },
{ courseId: courseId.value, userId: student.id },
{ onSuccess: invalidate }
),
})