精品课
This commit is contained in:
@@ -6,7 +6,7 @@
|
||||
<view class="nav-left" @click="goBack">
|
||||
<uni-icons type="left" size="24" color="#333"></uni-icons>
|
||||
</view>
|
||||
<view class="nav-title">课程详情02</view>
|
||||
<view class="nav-title">{{ courseDetail.title || '肝硬化与重症肝病' }}</view>
|
||||
<view class="nav-right" @click="goShare">
|
||||
<uni-icons type="redo" size="24" color="#333"></uni-icons>
|
||||
</view>
|
||||
@@ -106,7 +106,7 @@
|
||||
<!-- 课程目录内容 -->
|
||||
<view class="course-catalog" v-if="activeTab === 'catalog'">
|
||||
<!-- 课程概览 -->
|
||||
<view class="catalog-overview">
|
||||
<!-- <view class="catalog-overview">
|
||||
<view class="overview-item">
|
||||
<text class="overview-label">总课时</text>
|
||||
<text class="overview-value">{{ courseDetail.video_num || 0 }}节课</text>
|
||||
@@ -119,7 +119,7 @@
|
||||
<text class="overview-label">学习进度</text>
|
||||
<text class="overview-value">{{ courseDetail.study_status || 0 }}%</text>
|
||||
</view>
|
||||
</view>
|
||||
</view> -->
|
||||
|
||||
<!-- 课程章节列表 -->
|
||||
<view class="chapter-list">
|
||||
@@ -130,14 +130,14 @@
|
||||
<uni-icons :type="chapter.expanded ? 'down' : 'right'" size="16" color="#666"></uni-icons>
|
||||
<text class="chapter-name">{{ chapter.title }}</text>
|
||||
</view>
|
||||
<view class="chapter-meta">
|
||||
<!-- <view class="chapter-meta">
|
||||
<text class="lesson-count">{{ chapter.lessons.length }}节课</text>
|
||||
<text class="duration">{{ chapter.duration }}</text>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
<view class="chapter-status">
|
||||
<!-- <view class="chapter-status">
|
||||
<text class="status-text" :class="chapter.status">{{ chapter.statusText }}</text>
|
||||
</view>
|
||||
</view> -->
|
||||
</view>
|
||||
|
||||
<!-- 课时列表 -->
|
||||
@@ -150,7 +150,7 @@
|
||||
</view>
|
||||
<view class="lesson-meta">
|
||||
<text class="lesson-duration">{{ lesson.duration }}</text>
|
||||
<text class="lesson-teacher">{{ lesson.teacher }}</text>
|
||||
<!-- <text class="lesson-teacher">{{ lesson.teacher }}</text> -->
|
||||
</view>
|
||||
</view>
|
||||
<view class="lesson-status">
|
||||
@@ -168,7 +168,9 @@
|
||||
<text class="review-title">课程评价</text>
|
||||
<view class="review-actions-header">
|
||||
<text class="review-count">共{{ reviewTotal || courseDetail.comment_num || 0 }}条评价</text>
|
||||
<button class="write-review-btn" @click="goToReview" v-if="courseDetail.is_buy === 1">写评价</button>
|
||||
<button class="write-review-btn" @click="goToReview" v-if="courseDetail.is_buy === 1">
|
||||
{{ courseDetail.is_commented === 1 ? '追加评论' : '写评价' }}
|
||||
</button>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -254,7 +256,15 @@
|
||||
<uni-icons type="chat" size="80" color="#E0E0E0"></uni-icons>
|
||||
</view>
|
||||
<text class="empty-text">暂无评价</text>
|
||||
<text class="empty-desc">成为第一个评价的人吧</text>
|
||||
<text class="empty-desc" v-if="courseDetail.is_buy === 1 && courseDetail.is_commented === 1">
|
||||
您已经评价过此课程,可以追加评论
|
||||
</text>
|
||||
<text class="empty-desc" v-else-if="courseDetail.is_buy === 1">
|
||||
成为第一个评价的人吧
|
||||
</text>
|
||||
<text class="empty-desc" v-else>
|
||||
购买课程后即可评价
|
||||
</text>
|
||||
</view>
|
||||
|
||||
<!-- 加载中状态 -->
|
||||
@@ -268,15 +278,17 @@
|
||||
</view>
|
||||
|
||||
<!-- 底部购买栏 -->
|
||||
<view class="bottom-bar">
|
||||
<view class="bottom-bar" v-if="courseDetail.is_buy === 0">
|
||||
<view class="price-section">
|
||||
<text class="price">¥{{ currentPriceYuan.toFixed(2) }}</text>
|
||||
<text class="price" >¥{{ currentPriceYuan.toFixed(2) }}</text>
|
||||
</view>
|
||||
<view class="buy-section">
|
||||
<button class="buy-btn" @click="goBuy" v-if="courseDetail.is_buy === 0">{{ courseDetail.is_buy === 0 ? '立即购买' : '已购买' }}</button>
|
||||
<button class="buy-btn" @click="goStudy" v-else style="background-color: #4CAF50;">开始学习</button>
|
||||
<button class="buy-btn" @click="goBuy" >立即购买</button>
|
||||
</view>
|
||||
</view>
|
||||
<view class="bottom-bar" v-else>
|
||||
<button class="buy-btn" @click="goStudy" style=" width: 100%;background-color: #4CAF50;color: #fff;">开始学习</button>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
|
||||
@@ -569,48 +581,70 @@ const submitReply = (reviewId) => {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 找到对应的评价
|
||||
const review = reviewList.value.find(item => item.id === reviewId)
|
||||
|
||||
|
||||
if (review) {
|
||||
// 添加新回复
|
||||
const newReply = {
|
||||
id: Date.now(),
|
||||
userName: '我',
|
||||
avatar: '/static/icon_home_my_patient.png',
|
||||
time: new Date().toLocaleDateString(),
|
||||
content: replyText.value.trim(),
|
||||
isAuthor: false
|
||||
}
|
||||
|
||||
if (!review.replies) {
|
||||
review.replies = []
|
||||
}
|
||||
review.replies.push(newReply)
|
||||
|
||||
// 重置状态
|
||||
activeReplyId.value = null
|
||||
replyText.value = ''
|
||||
|
||||
uni.showToast({
|
||||
title: '回复成功',
|
||||
icon: 'success'
|
||||
course_api.addExcellencourseComment({
|
||||
excellentcourse_id: courseId.value,
|
||||
comment: replyText.value.trim(),
|
||||
p_id: reviewId,
|
||||
star:0,
|
||||
type:0
|
||||
}).then(res => {
|
||||
console.log('评价提交结果:', res)
|
||||
if(res.code == 200){
|
||||
uni.hideLoading()
|
||||
// 添加新回复
|
||||
const newReply = {
|
||||
id: Date.now(),
|
||||
userName: '我',
|
||||
avatar: '/static/icon_home_my_patient.png',
|
||||
time: new Date().toLocaleDateString(),
|
||||
content: replyText.value.trim(),
|
||||
isAuthor: false
|
||||
}
|
||||
|
||||
if (!review.replies) {
|
||||
review.replies = []
|
||||
}
|
||||
review.replies.push(newReply)
|
||||
|
||||
// 重置状态
|
||||
activeReplyId.value = null
|
||||
replyText.value = ''
|
||||
|
||||
uni.showToast({
|
||||
title: '回复成功',
|
||||
icon: 'success'
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
const goToReview = () => {
|
||||
uni.navigateTo({
|
||||
url: '/pages_course/course_review/course_review'
|
||||
url: '/pages_course/course_review/course_review?id=' + courseId.value + '&is_commented=' + courseDetail.value.is_commented
|
||||
})
|
||||
}
|
||||
|
||||
const getCourseDetail = () => {
|
||||
course_api.excellencourseDetail(courseId.value).then(res => {
|
||||
course_api.excellencourseDetail(courseId.value).then(res => {
|
||||
console.log('课程详情数据:', res)
|
||||
if(res.code == 200){
|
||||
const data = res.data
|
||||
courseDetail.value = data
|
||||
|
||||
// 调试 is_commented 字段
|
||||
console.log('is_commented 字段值:', data.is_commented)
|
||||
console.log('is_buy 字段值:', data.is_buy)
|
||||
|
||||
// 更新页面数据
|
||||
updatePageData(data)
|
||||
// 优惠价格与倒计时
|
||||
@@ -694,8 +728,8 @@ const updatePageData = (data) => {
|
||||
title: lesson.title,
|
||||
duration: lesson.time || '未知时长',
|
||||
teacher: teacherName,
|
||||
status: (data.is_buy === 1 || data.type === 0) ? 'unlocked' : 'locked',
|
||||
statusText: (data.is_buy === 1 || data.type === 0) ? (data.type === 0 ? '试播' : '已解锁') : '未解锁',
|
||||
status: (data.is_buy === 1 || lesson.type === 0) ? 'unlocked' : 'locked',
|
||||
statusText: (data.is_buy === 1 || lesson.type === 0) ? (lesson.type === 0 ? '试播' : '已解锁') : '未解锁',
|
||||
vid: lesson.vid,
|
||||
type: lesson.type
|
||||
}
|
||||
@@ -1570,7 +1604,7 @@ onUnmounted(() => {
|
||||
border-top: 1rpx solid #e5e5e5;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 24rpx;
|
||||
padding: 0 24rpx 20rpx 24rpx;
|
||||
z-index: 999;
|
||||
|
||||
.price-section {
|
||||
|
||||
Reference in New Issue
Block a user