From a47be29bf1c374db7cb14befb4e436e9239d61c4 Mon Sep 17 00:00:00 2001 From: jeremygan2021 Date: Fri, 27 Feb 2026 14:09:11 +0800 Subject: [PATCH] video curcse --- frontend/src/pages/VCCourseDetail.jsx | 34 +++++++++++++++++------ miniprogram/src/pages/courses/detail.scss | 32 ++++++++++++++++++--- miniprogram/src/pages/courses/detail.tsx | 13 ++++++--- miniprogram/src/pages/user/index.tsx | 2 +- 4 files changed, 64 insertions(+), 17 deletions(-) diff --git a/frontend/src/pages/VCCourseDetail.jsx b/frontend/src/pages/VCCourseDetail.jsx index 289f522..a05d87f 100644 --- a/frontend/src/pages/VCCourseDetail.jsx +++ b/frontend/src/pages/VCCourseDetail.jsx @@ -106,6 +106,16 @@ const VCCourseDetail = () => { message.success('支付成功!报名已完成。'); setTimeout(() => { setIsModalOpen(false); + // 刷新课程详情以获取解锁后的视频URL + const fetchDetail = async () => { + try { + const res = await getVCCourseDetail(id); + setCourse(res.data); + } catch (error) { + console.error("Failed to refresh course detail:", error); + } + }; + fetchDetail(); }, 2000); // Wait 2 seconds before closing clearInterval(timer); } @@ -115,7 +125,7 @@ const VCCourseDetail = () => { }, 3000); } return () => clearInterval(timer); - }, [payMode, paySuccess, currentOrderId]); + }, [payMode, paySuccess, currentOrderId, id]); const handleEnroll = async (values) => { setSubmitting(true); @@ -396,7 +406,9 @@ const VCCourseDetail = () => { border: `1px solid rgba(0, 240, 255, 0.2)`, boxShadow: `0 0 20px rgba(0, 240, 255, 0.05)` }}> - 报名咨询 + + {course.is_video_course ? '购买课程' : '报名咨询'} +
{parseFloat(course.price) > 0 ? ( @@ -412,7 +424,7 @@ const VCCourseDetail = () => { type="primary" size="large" block - icon={} + icon={course.is_video_course ? : } style={{ height: 50, background: '#00f0ff', @@ -423,10 +435,12 @@ const VCCourseDetail = () => { }} onClick={() => setIsModalOpen(true)} > - 立即报名 / 咨询 + {course.is_video_course ? '购买视频课程' : '立即报名 / 咨询'}

- * 提交后我们的顾问将尽快与您联系确认 + {course.is_video_course + ? '* 支付成功后自动解锁视频内容' + : '* 提交后我们的顾问将尽快与您联系确认'}

@@ -436,7 +450,7 @@ const VCCourseDetail = () => { {/* Enroll Modal */} setIsModalOpen(false)} footer={null} @@ -463,14 +477,18 @@ const VCCourseDetail = () => {

¥{course.price}

请使用微信扫一扫支付

- 支付完成后将自动完成报名 + 支付完成后将自动{course.is_video_course ? '解锁视频' : '完成报名'}
)} ) : ( <> -

请填写您的联系方式,我们将为您安排课程顾问。

+

+ {course.is_video_course + ? '请确认您的联系方式,以便我们记录您的购买信息。' + : '请填写您的联系方式,我们将为您安排课程顾问。'} +

) : ( - 🔒 - 购买课程后解锁视频 - + + + 🔒 + 购买课程后解锁视频 + + )} @@ -193,7 +196,9 @@ export default function CourseDetail() { 总价: ¥{detail.price} - + ) diff --git a/miniprogram/src/pages/user/index.tsx b/miniprogram/src/pages/user/index.tsx index 4178e4c..79cf15d 100644 --- a/miniprogram/src/pages/user/index.tsx +++ b/miniprogram/src/pages/user/index.tsx @@ -342,7 +342,7 @@ export default function UserIndex() { )} ID: {userInfo ? (userInfo.phone_number || userInfo.id || '----') : '----'} - {!userInfo && ( + {!userInfo?.phone_number && (