diff --git a/src/views/Home.vue b/src/views/Home.vue index 31b9d59..419d682 100644 --- a/src/views/Home.vue +++ b/src/views/Home.vue @@ -523,12 +523,12 @@ import { computed, ref, onMounted, onUnmounted } from 'vue' import { useI18n } from 'vue-i18n' import { useRouter } from 'vue-router' +import { useMessage } from 'naive-ui' import { useCourseStore } from '@/stores/course' import { useUserStore } from '@/stores/user' import { useAuth } from '@/composables/useAuth' import LoginModal from '@/components/auth/LoginModal.vue' import RegisterModal from '@/components/auth/RegisterModal.vue' -import { enrollCourseExample } from '@/api/examples/usage' import { CourseApi } from '@/api/modules/course' import { ContentApi } from '@/api/modules/content' @@ -536,6 +536,7 @@ import { ContentApi } from '@/api/modules/content' const { t, locale } = useI18n() const router = useRouter() +const message = useMessage() const courseStore = useCourseStore() // @ts-ignore const userStore = useUserStore() @@ -561,6 +562,9 @@ const goToCoursesPage = () => { // 跳转到课程详情页面 const goToCourseDetail = async (courseId: string) => { + console.log('🔍 点击课程卡片,课程ID:', courseId) + console.log('🔍 用户登录状态:', userStore.isLoggedIn) + try { // 检查用户是否已登录 if (!userStore.isLoggedIn) { @@ -599,12 +603,49 @@ const goToCourseDetail = async (courseId: string) => { } // 处理课程报名 -const handleEnrollCourse = (courseId: string | number, event?: Event) => { +const handleEnrollCourse = async (courseId: string | number, event?: Event) => { // 阻止事件冒泡,避免触发卡片点击事件 if (event) { event.stopPropagation() } - enrollCourseExample(Number(courseId)) + + console.log('🎯 点击报名按钮,课程ID:', courseId) + + try { + // 检查用户是否已登录 + if (!userStore.isLoggedIn) { + console.log('用户未登录,显示登录模态框') + loginModalVisible.value = true + return + } + + // 调用报名API + const response = await CourseApi.enrollCourse(String(courseId)) + + if (response.code === 200 || response.code === 0) { + console.log('✅ 报名成功:', response.data) + // 显示成功提示 + message.success('报名成功!') + + // 报名成功后跳转到课程详情页 + router.push(`/course/${courseId}/exchanged`) + } else { + console.error('❌ 报名失败:', response.message) + message.error(response.message || '报名失败,请稍后重试') + } + } catch (error: any) { + console.error('❌ 报名异常:', error) + + // 处理不同类型的错误 + if (error.response?.status === 401) { + message.error('请先登录') + loginModalVisible.value = true + } else if (error.response?.data?.message) { + message.error(error.response.data.message) + } else { + message.error('报名失败,请检查网络连接') + } + } } // 显示问题反馈模态框 diff --git a/src/views/Login.vue b/src/views/Login.vue index 4ce4318..d93ed5a 100644 --- a/src/views/Login.vue +++ b/src/views/Login.vue @@ -197,7 +197,7 @@ const getIdPlaceholder = () => { if (isRegisterMode.value) { return '请输入您的工号' } - return activeTab.value === 'teacher' ? '请输入您的工号' : '2014195268' + return activeTab.value === 'teacher' ? '请输入您的工号' : '请输入您的学号' } // 处理表单提交 diff --git a/src/views/Profile.vue b/src/views/Profile.vue index f489a73..791eb7f 100644 --- a/src/views/Profile.vue +++ b/src/views/Profile.vue @@ -539,7 +539,7 @@
- {{ practice.score }} + {{ practice.score }}