feat: 实现日历课程点击跳转到直播间功能

- 添加日历课程详情弹窗的点击跳转功能
- 公共课直播间和课程直播间支持URL参数自动选中课程
- 优化岗位详情页面样式,复用简洁卡片样式
- 为岗位详情标题添加图标
- 调整不同类型课程的跳转逻辑

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
KQL
2025-09-11 14:14:45 +08:00
parent 60bd9bb142
commit 561d5c286d
107 changed files with 101383 additions and 478 deletions

View File

@@ -1,4 +1,5 @@
import { useState } from "react";
import { useState, useEffect } from "react";
import { useSearchParams } from "react-router-dom";
import CoursesVideoPlayer from "@/components/CoursesVideoPlayer";
import CourseList from "@/components/CourseList";
import { mockData } from "@/data/mockData";
@@ -6,6 +7,29 @@ import "./index.css";
const LivePage = () => {
const [selectedCourse, setSelectedCourse] = useState(null);
const [searchParams] = useSearchParams();
// 检查URL参数如果有courseId或courseTitle则自动打开对应课程
useEffect(() => {
const courseId = searchParams.get('courseId');
const courseTitle = searchParams.get('courseTitle');
if (courseId || courseTitle) {
// 查找对应的课程
const allCourses = [
...(mockData.compoundSkillCourses || []),
...(mockData.verticalSkillCourses || [])
];
const targetCourse = allCourses.find(course =>
course.id === courseId || course.title === courseTitle
);
if (targetCourse) {
setSelectedCourse(targetCourse);
}
}
}, [searchParams]);
const handleCourseClick = (course) => {
setSelectedCourse(course);