# 课程详情页报名状态功能更新说明 ## 🎯 更新目标 实现课程详情页面的完整报名状态管理,包括: 1. 判断登录和报名状态 2. 未报名状态显示灰色不可点击样式 3. 点击立即报名弹出确认提示框 4. 确认后跳转到已报名的课程详情页面 5. 更新右侧课程章节头部样式 ## 📋 功能实现 ### 1. 报名状态管理 ```javascript // 报名状态管理 const isEnrolled = ref(false) // 用户是否已报名该课程 const enrollmentLoading = ref(false) // 报名加载状态 // 计算用户是否已报名 const isUserEnrolled = computed(() => { // 必须同时满足:用户已登录 AND 已报名该课程 return userStore.isLoggedIn && isEnrolled.value }) // 报名确认弹窗 const enrollConfirmVisible = ref(false) const enrollSuccessVisible = ref(false) ``` ### 2. 报名流程处理 ```javascript // 处理课程报名 const handleEnrollCourse = () => { if (!userStore.isLoggedIn) { // 未登录,显示登录弹窗 showLoginModal() return } if (isEnrolled.value) { // 已报名,直接跳转到学习页面 router.push(`/course/${courseId.value}/study`) return } // 未报名,显示报名确认弹窗 enrollConfirmVisible.value = true } // 确认报名 const confirmEnrollment = async () => { try { enrollmentLoading.value = true // 模拟API调用 await new Promise(resolve => setTimeout(resolve, 1000)) // 报名成功 isEnrolled.value = true enrollConfirmVisible.value = false enrollSuccessVisible.value = true // 2秒后自动跳转 setTimeout(() => { enrollSuccessVisible.value = false router.push(`/course/${courseId.value}/study`) }, 2000) } catch (error) { console.error('报名失败:', error) } finally { enrollmentLoading.value = false } } ``` ### 3. 课程章节状态控制 ```html