fix: 修复简历面试页面14个岗位数据显示问题

- 修复resumeInterviewMock.js文件结构错误
- 解决"宠物店经营"数组未正确关闭导致的语法错误
- 修复14个岗位(民宿管家、露营地运营专员等)的数据无法显示问题
- 优化ResumeInterviewPage和ResumeInfoModal组件对content.original结构的处理
- 清理多余的compound_skills数组和重复数据

影响岗位:民宿管家、民宿客房管家、民宿运营专员、露营地运营专员、
新媒体运营专员、文创产品设计师、文创产品策划师、文创产品设计师助理、
品牌策划运营专员、品牌公关、品牌推广专员、ip运营、IP运营总监助理、品牌公关管培生

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
KQL
2025-09-12 14:26:33 +08:00
parent 883f102962
commit d2f289e59a
3 changed files with 113 additions and 25 deletions

View File

@@ -11,6 +11,29 @@ export default ({ visible, onClose, data, initialVersion = "2" }) => {
const [editableData, setEditableData] = useState(null);
const [customVersions, setCustomVersions] = useState([]);
// 调试:检查接收到的数据
useEffect(() => {
if (visible && data) {
console.log('ResumeInfoModal接收到的数据:', {
title: data.title,
hasContent: !!data.content,
contentType: typeof data.content,
contentKeys: data.content ? Object.keys(data.content) : null,
hasSelectedTemplate: !!data.selectedTemplate,
selectedTemplateKeys: data.selectedTemplate ? Object.keys(data.selectedTemplate) : null
});
if (data.content) {
console.log('content详情:', {
hasOriginal: !!data.content.original,
hasModified: !!data.content.modified,
originalType: typeof data.content.original,
originalLength: data.content.original ? data.content.original.length : 0
});
}
}
}, [visible, data]);
// 响应initialVersion变化
useEffect(() => {
setVersion(initialVersion);
@@ -243,6 +266,9 @@ export default ({ visible, onClose, data, initialVersion = "2" }) => {
// 获取简历数据 - 支持新的数据结构
let resumeContent = {};
console.log('开始处理简历内容,当前版本:', version);
console.log('data?.content存在:', !!data?.content);
// 处理自定义版本
if (version.startsWith('custom_')) {
const customVersion = resumeManager.getVersionById(version.replace('custom_', ''));
@@ -250,11 +276,18 @@ export default ({ visible, onClose, data, initialVersion = "2" }) => {
resumeContent = parseResumeMarkdown(customVersion.content) || {};
}
} else if (data?.content) {
console.log('处理data.content结构:', {
hasOriginal: !!data.content.original,
hasModified: !!data.content.modified,
originalType: typeof data.content.original
});
// 新的数据结构 - 来自resume-interview页面
if (data.content.original) {
// 有original字段可能有或没有modified字段
const hasModified = !!data.content.modified;
const selectedContent = (!hasModified || version === "1") ? data.content.original : data.content.modified;
console.log('选择的内容长度:', selectedContent ? selectedContent.length : 0);
// 如果是markdown格式的字符串使用解析器
if (typeof selectedContent === 'string') {
@@ -271,14 +304,27 @@ export default ({ visible, onClose, data, initialVersion = "2" }) => {
resumeContent = parseResumeMarkdown(data.content);
}
} else {
console.log('进入else分支检查selectedTemplate');
// 旧的数据结构 - 兼容现有的company jobs页面
const currentTemplate = data?.selectedTemplate;
const studentInfo = currentTemplate?.studentInfo;
// 检查是否是来自resume-interview页面的数据 (有content和personal_summary字段)
if (currentTemplate && currentTemplate.content && currentTemplate.position) {
// 来自resume-interview页面的新数据结构
const parsedContent = parseResumeMarkdown(currentTemplate.content);
console.log('currentTemplate信息:', {
hasCurrentTemplate: !!currentTemplate,
hasContent: !!currentTemplate?.content,
hasContentOriginal: !!currentTemplate?.content?.original,
hasPosition: !!currentTemplate?.position,
contentKeys: currentTemplate?.content ? Object.keys(currentTemplate.content) : null
});
// 检查是否是来自resume-interview页面的数据 (有content.original字段)
if (currentTemplate && currentTemplate.content && currentTemplate.content.original) {
console.log('处理content.original结构');
// 处理有content.original的数据结构
const hasModified = !!currentTemplate.content.modified;
const selectedContent = (!hasModified || version === "1") ? currentTemplate.content.original : currentTemplate.content.modified;
const parsedContent = parseResumeMarkdown(selectedContent);
if (parsedContent) {
resumeContent = parsedContent;
// 添加个人总结 - 检查多个可能的位置
@@ -354,12 +400,22 @@ export default ({ visible, onClose, data, initialVersion = "2" }) => {
// 数据校验:确保必要字段存在
const isValidData = resumeContent && Object.keys(resumeContent).length > 0 && resumeContent.personalInfo;
// 调试日志 (可以移除)
// console.log('ResumeInfoModal Debug:', { data, resumeContent });
console.log('最终resumeContent:', {
hasResumeContent: !!resumeContent,
keys: resumeContent ? Object.keys(resumeContent) : [],
hasPersonalInfo: !!resumeContent?.personalInfo,
isValidData
});
// 如果数据无效,提供默认值防止渲染异常
if (!isValidData) {
console.warn('ResumeInfoModal: Invalid resume data received', { data, resumeContent });
console.warn('ResumeInfoModal: Invalid resume data received', {
data,
resumeContent,
dataKeys: data ? Object.keys(data) : null,
hasContent: !!data?.content,
hasSelectedTemplate: !!data?.selectedTemplate
});
resumeContent = {
personalInfo: { name: '数据加载中...' },
education: [],