修正多处问题
This commit is contained in:
@@ -72,7 +72,10 @@
|
||||
|
||||
<script setup>
|
||||
import { ref, onMounted } from 'vue'
|
||||
import { getGroupCoursePage } from '@/api/main.js'
|
||||
import { onShow } from '@dcloudio/uni-app'
|
||||
import { getActiveRecommendCourses } from '@/api/groupCourse.js'
|
||||
|
||||
console.log('[RecommendCourses] 组件脚本已加载')
|
||||
|
||||
// 推荐课程数据列表
|
||||
const courses = ref([])
|
||||
@@ -105,18 +108,23 @@ const getImageUrl = (coverImage) => {
|
||||
|
||||
// 获取推荐课程
|
||||
const fetchRecommendCourses = async () => {
|
||||
console.log('[RecommendCourses] fetchRecommendCourses 开始请求')
|
||||
try {
|
||||
const res = await getGroupCoursePage({
|
||||
page: 0, size: 10, sort: 'current_members', order: 'desc'
|
||||
}, { cache: true, cacheTime: 5 * 60 * 1000 })
|
||||
if (res && res.content && Array.isArray(res.content)) {
|
||||
// 筛选掉已结束和已满员的课程
|
||||
const filteredCourses = res.content.filter(course => {
|
||||
return course.status !== '2' && course.currentMembers < course.maxMembers
|
||||
const res = await getActiveRecommendCourses()
|
||||
console.log('[RecommendCourses] API 返回:', JSON.stringify(res).substring(0, 200))
|
||||
if (res && Array.isArray(res)) {
|
||||
// 提取推荐中的 groupCourse,只排除已满员的课程(已结束的仍展示,点击时拦截)
|
||||
const filteredCourses = res.filter(recommend => {
|
||||
const course = recommend.groupCourse
|
||||
if (!course) return false
|
||||
const current = Number(course.currentMembers) || 0
|
||||
const max = Number(course.maxMembers) || 999
|
||||
return current < max
|
||||
})
|
||||
|
||||
// 只取前3个符合条件的课程
|
||||
courses.value = filteredCourses.slice(0, 3).map(course => {
|
||||
// 只取前3个符合条件的推荐课程
|
||||
courses.value = filteredCourses.slice(0, 3).map(recommend => {
|
||||
const course = recommend.groupCourse
|
||||
return {
|
||||
id: course.id,
|
||||
image: getImageUrl(course.coverImage),
|
||||
@@ -127,6 +135,9 @@ const fetchRecommendCourses = async () => {
|
||||
rawData: course
|
||||
}
|
||||
})
|
||||
console.log('[RecommendCourses] 最终展示 courses.value 数量:', courses.value.length)
|
||||
} else {
|
||||
console.warn('[RecommendCourses] API 返回格式异常:', res)
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('获取推荐课程失败:', err)
|
||||
@@ -143,7 +154,14 @@ const handleViewMore = () => {
|
||||
uni.navigateTo({ url: '/pages/recommendCourses/index' })
|
||||
}
|
||||
|
||||
onMounted(() => { fetchRecommendCourses() })
|
||||
onMounted(() => { console.log('[RecommendCourses] onMounted 触发'); fetchRecommendCourses() })
|
||||
|
||||
onShow(() => {
|
||||
console.log('[RecommendCourses] onShow 触发,刷新推荐课程')
|
||||
fetchRecommendCourses()
|
||||
})
|
||||
|
||||
defineExpose({ fetchRecommendCourses })
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
|
||||
Reference in New Issue
Block a user