document.addEventListener('DOMContentLoaded', function () { // 学科名称映射 const subjectMap = { 'live': '生活', 'language': '语文', 'math': '数学' }; // 年级名称映射 const gradeNames = ['一年级', '二年级', '三年级', '四年级', '五年级', '六年级']; // 学期名称 const semesterNames = ['上册', '下册']; // 当前视图状态 let currentView = { mode: 'semester', // 'semester' | 'courses' subject: null, grade: null, semester: null }; // 根据学科、年级、学期动态生成图片路径的函数 function getCourseImagePath(subject, gradeIndex, semesterIndex) { const subjectPrefix = { 'math': 'math', 'language': 'chinese', // 如果有语文图片的话 'live': 'life' // 如果有生活图片的话 }; const gradeNumber = gradeIndex + 1; // 转换为1-6 const semesterText = semesterIndex === 0 ? '上' : '下'; const prefix = subjectPrefix[subject] || subject; return `../asset/course_img/${prefix}${gradeNumber}${semesterText}.png`; } // 当前选中的筛选条件 let currentFilters = { subject: 'math', // 默认选中数学 grade: 1 // 默认选中二年级 (索引1) }; // 生成学科标签 function generateSubjectTags() { const container = document.getElementById('subject-tags'); const courseList = GLOBAL_CONFIG.courseList; Object.keys(courseList).forEach((subject, index) => { const tag = document.createElement('div'); tag.className = 'filter-tag'; tag.textContent = subjectMap[subject] || subject; tag.dataset.subject = subject; if (subject === currentFilters.subject) { tag.classList.add('active'); } tag.addEventListener('click', function () { container.querySelectorAll('.filter-tag').forEach(t => t.classList.remove('active')); this.classList.add('active'); currentFilters.subject = subject; // 重置视图状态 currentView.mode = 'semester'; updateCourseDisplay(); }); container.appendChild(tag); }); } // 生成类别标签 function getCate() { const container = document.getElementById('Category'); if (!container) { console.warn('Category container not found'); return; } const cates = ['培智学校']; container.innerHTML = ''; cates.forEach((category, index) => { const tag = document.createElement('div'); tag.className = 'filter-tag'; tag.textContent = category; tag.dataset.category = category; if (index === 0) { tag.classList.add('active'); if (typeof currentFilters !== 'undefined') { currentFilters.category = category; } } tag.addEventListener('click', function () { container.querySelectorAll('.filter-tag').forEach(t => t.classList.remove('active')); this.classList.add('active'); if (typeof currentFilters !== 'undefined') { currentFilters.category = category; } // 重置视图状态 currentView.mode = 'semester'; updateCourseDisplay(); }); container.appendChild(tag); }); } // 生成年级标签 function generateGradeTags() { const container = document.getElementById('grade-tags'); gradeNames.forEach((gradeName, index) => { const tag = document.createElement('div'); tag.className = 'filter-tag'; tag.textContent = gradeName; tag.dataset.grade = index; if (index === currentFilters.grade) { tag.classList.add('active'); } tag.addEventListener('click', function () { container.querySelectorAll('.filter-tag').forEach(t => t.classList.remove('active')); this.classList.add('active'); currentFilters.grade = index; // 重置视图状态 currentView.mode = 'semester'; updateCourseDisplay(); }); container.appendChild(tag); }); } // 创建返回按钮 function createBackButton() { const backBtn = document.createElement('div'); backBtn.className = 'back-button'; backBtn.innerHTML = ` 返回学期选择 `; backBtn.addEventListener('click', function () { currentView.mode = 'semester'; updateCourseDisplay(); }); return backBtn; } // 显示学期卡片 function displaySemesterCards() { const container = document.getElementById('materials-container'); const courseList = GLOBAL_CONFIG.courseList; // 清空现有内容 container.innerHTML = ''; container.className = 'materials-grid'; // 重置为学期卡片样式 // 为上册和下册分别创建卡片 semesterNames.forEach((semesterName, semesterIndex) => { const courses = courseList[currentFilters.subject]?.[currentFilters.grade]?.[semesterIndex] || []; const bookImage = getCourseImagePath(currentFilters.subject, currentFilters.grade, semesterIndex); const card = document.createElement('div'); card.className = 'material-card'; if (courses.length === 0) { card.innerHTML = `

${subjectMap[currentFilters.subject]} ${gradeNames[currentFilters.grade]} ${semesterName}

暂无课程内容
此册正在筹备中...
`; } else { card.innerHTML = `

${subjectMap[currentFilters.subject]} ${gradeNames[currentFilters.grade]} ${semesterName}

共${courses.length}个课程
点击进入章节学习
`; // 添加点击事件 card.addEventListener('click', function () { currentView.mode = 'courses'; currentView.subject = currentFilters.subject; currentView.grade = currentFilters.grade; currentView.semester = semesterIndex; updateCourseDisplay(); }); } container.appendChild(card); }); } // 显示课程列表 function displayCourseList() { const container = document.getElementById('materials-container'); const courseList = GLOBAL_CONFIG.courseList; const classObject = GLOBAL_CONFIG.classObject; // 清空现有内容 container.innerHTML = ''; container.className = 'course-grid'; // 使用课程卡片样式 // 添加返回按钮 const backBtn = createBackButton(); container.appendChild(backBtn); // 获取当前学期的课程 const courses = courseList[currentView.subject]?.[currentView.grade]?.[currentView.semester] || []; if (courses.length === 0) { const emptyCourse = document.createElement('div'); emptyCourse.className = 'empty-course'; emptyCourse.innerHTML = `

暂无课程

该学期的课程正在筹备中...

`; container.appendChild(emptyCourse); return; } // 创建课程卡片 courses.forEach((course, index) => { const courseData = classObject[currentView.subject]?.[course.id]; const courseCard = document.createElement('div'); courseCard.className = 'course-card'; // 生成课程图片路径 - 根据实际的命名规则 function getCourseSpecificImagePath(subject, grade, semester, courseIndex) { const subjectPrefix = { 'math': 'math', 'language': 'chinese', 'live': 'life' }; const gradeNumber = grade + 1; const semesterText = semester === 0 ? '上' : '下'; const prefix = subjectPrefix[subject] || subject; // 课程编号从1开始,所以是 courseIndex + 1 return `../asset/course_img/${prefix}${gradeNumber}${semesterText}${courseIndex + 1}.png`; } const courseImage = getCourseSpecificImagePath(currentView.subject, currentView.grade, currentView.semester, index); courseCard.innerHTML = `

${course.name}

${course.des}

${courseData ? '开始学习' : '课程筹备中'}
`; // 如果有课程数据,添加点击事件 if (courseData) { courseCard.addEventListener('click', function () { // 这里可以跳转到具体的课程页面 console.log('进入课程:', course.id); // window.location.href = `course.html?id=${course.id}`; window.open(`./courseHome.html?id=${course.id}`); }); courseCard.style.cursor = 'pointer'; } else { courseCard.classList.add('disabled'); } container.appendChild(courseCard); }); } // 更新课程显示 function updateCourseDisplay() { if (currentView.mode === 'semester') { displaySemesterCards(); } else if (currentView.mode === 'courses') { displayCourseList(); } } // 侧边栏菜单交互 document.querySelectorAll('.sidebar-menu a').forEach(link => { link.addEventListener('click', function () { document.querySelectorAll('.sidebar-menu li').forEach(li => li.classList.remove('active')); this.parentElement.classList.add('active'); }); }); // 初始化页面 generateSubjectTags(); generateGradeTags(); updateCourseDisplay(); getCate(); // 1、导航条切换 const navItems = document.querySelectorAll('.container-header-nav > div'); navItems.forEach(function (item) { item.addEventListener('click', function () { // 移除所有 div 元素的 active 类 navItems.forEach(function (navItem) { navItem.classList.remove('active'); }); // 为当前点击的 div 元素添加 active 类 this.classList.add('active'); // 打开对应的数据 URL 页面 const url = this.getAttribute('data-url'); window.open(`./${url}.html`); }); }); });