feat: 优化教务系统多项功能

主要更新:
1. 项目库功能优化
   - 添加项目效果图点击预览功能,支持图片放大查看和切换
   - 新增ImagePreviewModal组件,提供完整的图片预览体验

2. 企业内推岗位页面改进
   - 右侧岗位面试状态卡片支持点击查看岗位详情
   - 从企业内推岗位库直接导入岗位数据
   - 面试状态查看的岗位详情隐藏投递按钮
   - 岗位要求显示优化,添加数字编号格式

3. 课堂作业板块完善
   - 修复垂直能力课只显示4个单元的问题,现可显示全部12个单元
   - 为"展会主题与品牌定位"课程添加"可试看"标签
   - 调整"可试看"标签位置,避免遮挡课程名称
   - 在全部视图中将"展会主题与品牌定位"课程置顶

4. 课程直播间页面优化
   - 为复合能力课添加文字虚线分割线,与垂直能力课保持一致
   - 删除页面顶部的进度条,简化界面

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
KQL
2025-09-08 11:00:54 +08:00
parent 9a14678a12
commit 9198c67caf
13 changed files with 1753 additions and 35 deletions

View File

@@ -0,0 +1,47 @@
import companyJobsData from "@/mocks/companyJobsData.json";
// 将原始数据转换为前端格式
function transformJobData(rawJob, index) {
// 从招聘人数中提取数字
const recruitNumberMatch = rawJob["招聘人数"]?.match(/\d+/);
const remainingPositions = recruitNumberMatch ? recruitNumberMatch[0] : "若干";
return {
id: index + 1,
position: rawJob["内推岗位名称"],
salary: rawJob["薪资"],
location: rawJob["工作地点"],
education: rawJob["学历要求"],
recruitNumber: rawJob["招聘人数"],
remainingPositions: remainingPositions,
tags: rawJob["职位标签"] || [],
benefits: rawJob["福利标签"] || [],
deadline: rawJob["截止时间"],
jobCategory: rawJob["岗位相关标签"],
// details对象包含描述、要求和公司介绍
details: {
description: rawJob["职位描述"] || "",
requirementsText: rawJob["任职要求"] || "",
companyInfo: rawJob["公司介绍"] || ""
},
// 保留原始数据以备需要
_raw: rawJob
};
}
// 获取所有岗位数据
export function getAllCompanyJobs() {
return companyJobsData.map((job, index) => transformJobData(job, index));
}
// 根据岗位名称获取岗位详情
export function getJobByPosition(positionName) {
const allJobs = getAllCompanyJobs();
return allJobs.find(job => job.position === positionName);
}
// 根据ID获取岗位详情
export function getJobById(id) {
const allJobs = getAllCompanyJobs();
return allJobs.find(job => job.id === id);
}