From cb86920015c5491fb0da1ee9013d328a0395a60c Mon Sep 17 00:00:00 2001 From: sajjadtalkhabi <97734061+sajjadtalkhabi@users.noreply.github.com> Date: Wed, 27 May 2026 14:47:19 +0330 Subject: [PATCH] fix: admin courses --- .env | 2 +- src/components/form/FileUploader.vue | 2 +- src/composables/useAuth.js | 4 +- src/constants/fields.js | 16 + src/enums/index.js | 3 +- .../components/AssignmentsFilters.vue | 4 +- .../components/modals/AddAssignmentModal.vue | 22 +- .../components/ConsultationItem.vue | 31 +- .../modals/ConsultationDetailsModal.vue | 21 +- .../courses/components/CoursesFilters.vue | 2 +- .../modals/AddOfferedCourseModal.vue | 4 +- .../components/modals/CourseDetailsModal.vue | 61 +-- .../admin/courses/pages/CourseFormPage.vue | 67 +-- .../admin/courses/pages/CoursesListPage.vue | 10 +- .../admin/exams/components/ExamsFilters.vue | 2 +- .../admin/exams/pages/ExamFormPage.vue | 2 +- .../admin/messages/components/TicketItem.vue | 6 +- .../sessions/components/SessionsFilters.vue | 2 +- .../modals/SessionAttendanceModal.vue | 13 +- .../components/modals/SessionDetailsModal.vue | 239 ++++------ .../admin/sessions/pages/SessionFormPage.vue | 417 ++++++++++-------- src/features/admin/sessions/schema/index.js | 10 +- .../components/modals/TermDetailsModal.vue | 68 +-- src/features/auth/components/LoginForm.vue | 6 +- src/features/auth/components/SignupForm.vue | 8 +- .../EducationalInformation.vue | 11 +- .../studentRegister/MediaRecorder.vue | 3 +- .../studentRegister/PersonalInformation.vue | 20 +- .../ProfessionalInformation.vue | 14 +- .../studentRegister/SkillAssessmentPart6.vue | 24 +- .../studentRegister/SkillAssessmentPart7.vue | 34 +- .../studentRegister/SkillSelectStep.vue | 11 +- src/features/auth/pages/ResetPasswordPage.vue | 4 +- .../auth/pages/StudentRegisterPage.vue | 10 + src/features/auth/schema/student-register.js | 2 +- .../auth/store/student-registration.js | 89 ++++ .../student/profile/pages/EditProfilePage.vue | 30 +- src/services/api/admin-consultations.js | 3 +- src/services/api/admin-courses.js | 3 + src/services/api/admin-terms.js | 3 + src/services/api/auth.js | 13 +- src/services/api/endpoints.js | 29 +- src/services/api/http.js | 2 +- src/services/mock/routes/auth.js | 2 +- src/services/query/admin-consultations.js | 4 + src/services/query/admin-courses.js | 16 + src/services/query/admin-terms.js | 23 + src/services/query/auth.js | 19 + src/services/query/common.js | 38 ++ src/store/auth.js | 7 +- 50 files changed, 787 insertions(+), 649 deletions(-) diff --git a/.env b/.env index 7c747cc..d20d38d 100644 --- a/.env +++ b/.env @@ -1,2 +1,2 @@ -VITE_API_BASE_URL=https://tripwisedaily.ir/api +VITE_API_BASE_URL=http://109.122.252.86/api VITE_USE_MOCKS=false diff --git a/src/components/form/FileUploader.vue b/src/components/form/FileUploader.vue index 72ea1e0..56701eb 100644 --- a/src/components/form/FileUploader.vue +++ b/src/components/form/FileUploader.vue @@ -49,7 +49,7 @@ @click="removeFile(index, file)" > diff --git a/src/composables/useAuth.js b/src/composables/useAuth.js index 5134831..940a8d2 100644 --- a/src/composables/useAuth.js +++ b/src/composables/useAuth.js @@ -15,8 +15,8 @@ export default function useAuth() { const savePhoneNumber = (phoneNumber) => { if (!phoneNumber) return const current = tokenService.getUserInfo() || {} - if (!current.phoneNumber) { - store.setUser({ ...current, phoneNumber }) + if (!current.phone && !current.phoneNumber) { + store.setUser({ ...current, phone: phoneNumber }) } } diff --git a/src/constants/fields.js b/src/constants/fields.js index 6904b50..5750cd8 100644 --- a/src/constants/fields.js +++ b/src/constants/fields.js @@ -36,6 +36,7 @@ export const fields = { activitySummary: 'خلاصهٔ فعالیت', avatar: 'تصویر پروفایل', + avatarId: 'تصویر پروفایل', image: 'تصویر', status: 'وضعیت', @@ -71,6 +72,9 @@ export const fields = { educationStatus: 'وضعیت تحصیلی', fieldOfStudy: 'رشتهٔ تحصیلی', seminaryLevel: 'مقطع حوزه', + universityLevel: 'مقطع دانشگاهی', + universityName: 'نام حوزه علمیه / دانشگاه', + workExperienceSummary: 'خلاصهٔ سوابق شغلی', hijabApproach: 'رویکرد حجاب', prerequisites: 'پیش‌نیازها', @@ -84,5 +88,17 @@ export const fields = { otherPlatformDetails: 'جزئیات سایر بسترها', faithProductionAudio: 'صدای تولید ایمانی', + faithProductionId: 'صدای تولید ایمانی', leaderMessageVideo: 'ویدیوی پیام رهبر', + leaderMessageId: 'ویدیوی پیام رهبر', + + responseToLowSatisfaction: 'واکنش به رضایت پایین مخاطب', + responseToLowSatisfactionDescription: 'توضیح واکنش به رضایت پایین مخاطب', + responseToSessionCancellation: 'واکنش به لغو جلسه', + responseToSessionCancellationDescription: 'توضیح واکنش به لغو جلسه', + responseToAudienceConflict: 'واکنش به تعارض با مخاطب', + responseToAudienceConflictDescription: 'توضیح واکنش به تعارض با مخاطب', + responseToCompetingPropagator: 'واکنش به مبلغ رقیب', + responseToCompetingPropagatorDescription: 'توضیح واکنش به مبلغ رقیب', + responseToUnqualifiedAdvisors: 'واکنش به مشاوران غیرمتخصص', } diff --git a/src/enums/index.js b/src/enums/index.js index ff7082f..0f25b56 100644 --- a/src/enums/index.js +++ b/src/enums/index.js @@ -148,6 +148,7 @@ export const COURSE_CONTENT_TYPE_ACCEPT = Object.freeze({ export const SESSION_TYPE = Object.freeze({ in_person: 'حضوری', online: 'آنلاین', + offline: 'آفلاین', video: 'ویدئو', audio: 'صوتی', text: 'متن', @@ -201,7 +202,7 @@ export const SERVICE_TYPE = Object.freeze({ }) export const CONSULTATION_STATUS = Object.freeze({ - in_progress: 'در حال گفتگو', + open: 'در حال گفتگو', answered: 'پاسخ داده شده', closed: 'بسته شده', }) diff --git a/src/features/admin/assignments/components/AssignmentsFilters.vue b/src/features/admin/assignments/components/AssignmentsFilters.vue index e8f7700..909b91d 100644 --- a/src/features/admin/assignments/components/AssignmentsFilters.vue +++ b/src/features/admin/assignments/components/AssignmentsFilters.vue @@ -104,7 +104,7 @@ const todayIso = new Date().toISOString() const templateSearch = ref('') const templateFilters = computed(() => ({ title: templateSearch.value })) -const templatePagination = ref({ page: 1, perPage: 30 }) +const templatePagination = ref({ page: 1, perPage: 10 }) const { data: templatesResponse } = useAdminCoursesListQuery(templateFilters, templatePagination) const templateOptions = computed(() => templatesResponse.value?.data ?? []) @@ -113,7 +113,7 @@ const sessionListFilters = computed(() => ({ title: sessionSearch.value, courseId: form.value.courseId || undefined, })) -const sessionPagination = ref({ page: 1, perPage: 30 }) +const sessionPagination = ref({ page: 1, perPage: 10 }) const { data: sessionsResponse } = useAdminSessionsListQuery(sessionListFilters, sessionPagination) const sessionOptions = computed(() => sessionsResponse.value?.data ?? []) diff --git a/src/features/admin/assignments/components/modals/AddAssignmentModal.vue b/src/features/admin/assignments/components/modals/AddAssignmentModal.vue index 4263209..64cfbac 100644 --- a/src/features/admin/assignments/components/modals/AddAssignmentModal.vue +++ b/src/features/admin/assignments/components/modals/AddAssignmentModal.vue @@ -1,12 +1,14 @@