Files
ALL-teach_sys/frontend_智能制造/公司图片功能实现总结.md

98 lines
3.6 KiB
Markdown
Raw Permalink Normal View History

# 企业内推岗位公司图片展示功能实现总结
## 实施时间
2025-10-08
## 问题诊断与修复
### 初始问题
- 功能实现后图片未显示
- 原因:数据源配置错误,数据流理解不完整
### 解决方案
1. 发现页面使用`mockData.companyJobs.companyPositions`作为数据源
2. 修改`mockData.js`中的`transformCompanyJobs`函数以包含图片数据
3. 不再需要修改`companyJobsNew.js`(该文件未被使用)
## 修改的文件
### 1. 核心数据文件(关键修复)
- **src/data/mockData.js**
- 导入企业图片数据文件
- 创建岗位名称到图片URL数组的映射companyImagesMap
- 在transformCompanyJobs函数中添加companyImages字段到details对象
### 2. 组件文件
- **src/pages/CompanyJobsPage/components/JobInfoModal/index.jsx**
- 添加了图片相关状态管理currentImageIndex, imageModalVisible
- 添加了图片轮播和预览功能
- 在公司介绍板块下方添加了图片网格展示
- 添加了全屏图片预览模态框
### 3. 样式文件
- **src/pages/CompanyJobsPage/components/JobInfoModal/index.css**
- 添加了公司图片网格布局样式 (.company-images-grid)
- 添加了响应式图片数量适配1-4张自适应布局
- 添加了图片项悬停效果 (.company-image-item)
- 添加了全屏图片预览模态框样式 (.image-preview-modal)
- 添加了图片预览控制按钮(关闭、上一张、下一张、计数器)
### 4. 数据服务文件(已还原)
- **src/services/companyJobsNew.js**
- 已修改导入路径为智能制造岗位数据
- 注意此文件实际未被页面使用页面使用mockData.js
## 数据源
- **网页未导入数据/智能制造产业/智能制造_内推岗位企业图片.json**
- 包含24个智能制造岗位的企业图片数据
- 每个岗位包含2-35张不等的企业现场图片
## 功能特点
### 1. 响应式网格布局
- 1张图片单列显示
- 2张图片双列显示
- 3张图片三列显示
- 4张及以上四列显示最多一行4张
### 2. 交互功能
- 图片悬停:放大效果和阴影变化
- 点击图片:打开全屏预览
- 全屏预览:支持左右切换、关闭、显示当前位置
### 3. 样式一致性
- 完全复用参考项目frontend的样式和交互逻辑
- 保持与其他教务系统页面的视觉统一
## 数据流程
1. **数据导入**`mockData.js` 导入 `companyJobsNew.json``智能制造_内推岗位企业图片.json`
2. **数据映射**:创建 `companyImagesMap` 映射岗位名称到图片数组
3. **数据转换**`transformCompanyJobs` 函数为每个岗位添加 `companyImages` 字段
4. **数据提供**:通过 `mockData.companyJobs.companyPositions` 提供给页面
5. **数据使用**`CompanyJobsPage``JobInfoModal` → 图片展示
## 备份文件
所有修改前的文件都已备份(带时间戳):
- JobInfoModal/index.jsx.backup_*
- JobInfoModal/index.css.backup_*
- companyJobsNew.js.backup_*
- mockData.js.backup_*
## 数据验证
✅ 成功导入24个岗位的企业图片数据
✅ 图片URL格式正确逗号分隔转数组
✅ 岗位名称映射准确
✅ 数据结构符合组件预期
## 使用说明
1. 打开企业内推岗位页面
2. 点击任意岗位查看详情
3. 在公司介绍板块下方可看到企业图片网格
4. 点击任意图片可全屏预览
5. 使用左右箭头或点击切换图片
6. 点击关闭按钮或背景区域退出预览
## 注意事项
- 仅有智能制造_内推岗位企业图片.json中的岗位会显示图片
- 其他岗位保持原样,不会显示图片板块
- 图片加载失败时会显示浏览器默认的占位符