feat: 优化课程列表功能和班级排名样式
- 修复课程列表单元展开/收起功能 - 优化日历页面跳转到课程列表的延迟时间 - 恢复复合技能课和垂直技能课的分割线及收缩功能 - 添加班级排名第一二三名的特殊样式图标 - 修复Collapse组件onChange事件处理 - 优化课程自动选中和滚动定位功能 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { useState, useEffect } from "react";
|
||||
import { useState, useEffect, useRef } from "react";
|
||||
import { useSearchParams } from "react-router-dom";
|
||||
import CoursesVideoPlayer from "@/components/CoursesVideoPlayer";
|
||||
import PublicCourseList from "@/components/PublicCourseList";
|
||||
@@ -9,22 +9,25 @@ const PublicCourses = () => {
|
||||
// 默认不选中任何课程,显示黑屏状态
|
||||
const [selectedCourse, setSelectedCourse] = useState(null);
|
||||
const [searchParams] = useSearchParams();
|
||||
const publicCourseListRef = useRef(null);
|
||||
|
||||
// 检查URL参数,如果有courseId则自动打开对应课程
|
||||
useEffect(() => {
|
||||
const courseId = searchParams.get('courseId');
|
||||
const courseTitle = searchParams.get('courseTitle');
|
||||
|
||||
console.log('PublicCourses - URL params:', { courseId, courseTitle });
|
||||
|
||||
if (courseId || courseTitle) {
|
||||
// 查找对应的课程
|
||||
const publicCourses = mockData.publicCourses || [];
|
||||
const targetCourse = publicCourses.find(course =>
|
||||
course.id === courseId || course.title === courseTitle
|
||||
);
|
||||
// 需要给组件时间加载数据
|
||||
const timer = setTimeout(() => {
|
||||
if (publicCourseListRef.current) {
|
||||
console.log('PublicCourses - Calling selectCourse via ref');
|
||||
publicCourseListRef.current.selectCourse(courseId, courseTitle);
|
||||
}
|
||||
}, 500); // 等待数据加载
|
||||
|
||||
if (targetCourse) {
|
||||
setSelectedCourse(targetCourse);
|
||||
}
|
||||
return () => clearTimeout(timer);
|
||||
}
|
||||
}, [searchParams]);
|
||||
|
||||
@@ -41,7 +44,10 @@ const PublicCourses = () => {
|
||||
unitPosters={mockData.publicCourseBackgrounds}
|
||||
isPublicCourse={true}
|
||||
/>
|
||||
<PublicCourseList onCourseClick={handleCourseClick} />
|
||||
<PublicCourseList
|
||||
ref={publicCourseListRef}
|
||||
onCourseClick={handleCourseClick}
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user