import React, { useState, useEffect } from "react"; import "./index.css"; const ResumeEditModal = ({ resume, isOpen, onClose, onSave, isEditMode = false, }) => { const [editData, setEditData] = useState({ personalInfo: { name: "", phone: "", email: "", location: "", }, education: { university: "", major: "", degree: "", graduationYear: "", }, experience: { company: "", position: "", duration: "", responsibilities: [], }, skills: [], }); const [isEditing, setIsEditing] = useState(isEditMode); const [currentSkill, setCurrentSkill] = useState(""); useEffect(() => { if (resume && isOpen) { setEditData({ personalInfo: { name: resume.personalInfo?.name || "", phone: resume.personalInfo?.phone || "", email: resume.personalInfo?.email || "", location: resume.personalInfo?.location || "", }, education: { university: resume.education?.university || "", major: resume.education?.major || "", degree: resume.education?.degree || "", graduationYear: resume.education?.graduationYear || "", }, experience: { company: resume.company || "", position: resume.name || "", duration: resume.experience || "", responsibilities: [ "负责核心业务开发与维护", "参与系统架构设计", "协助团队制定技术规范", ], }, skills: resume.skills || [], }); } }, [resume, isOpen]); if (!isOpen || !resume) return null; const handleInputChange = (section, field, value) => { setEditData((prev) => ({ ...prev, [section]: { ...prev[section], [field]: value, }, })); }; const handleAddSkill = () => { if (currentSkill.trim() && !editData.skills.includes(currentSkill.trim())) { setEditData((prev) => ({ ...prev, skills: [...prev.skills, currentSkill.trim()], })); setCurrentSkill(""); } }; const handleRemoveSkill = (skillToRemove) => { setEditData((prev) => ({ ...prev, skills: prev.skills.filter((skill) => skill !== skillToRemove), })); }; const handleSave = () => { onSave({ ...resume, personalInfo: editData.personalInfo, education: editData.education, experience: editData.experience, skills: editData.skills, }); setIsEditing(false); }; const handleOverlayClick = (e) => { if (e.target === e.currentTarget) { onClose(); } }; return (

{isEditing ? "编辑简历" : "简历详情"}

{!isEditing && ( )}
{/* 个人信息 */}

个人信息

{isEditing ? ( handleInputChange( "personalInfo", "name", e.target.value ) } /> ) : ( {editData.personalInfo.name} )}
{isEditing ? ( handleInputChange( "personalInfo", "phone", e.target.value ) } /> ) : ( {editData.personalInfo.phone} )}
{isEditing ? ( handleInputChange( "personalInfo", "email", e.target.value ) } /> ) : ( {editData.personalInfo.email} )}
{isEditing ? ( handleInputChange( "personalInfo", "location", e.target.value ) } /> ) : ( {editData.personalInfo.location} )}
{/* 教育背景 */}

教育背景

{isEditing ? ( handleInputChange( "education", "university", e.target.value ) } /> ) : ( {editData.education.university} )}
{isEditing ? ( handleInputChange("education", "major", e.target.value) } /> ) : ( {editData.education.major} )}
{isEditing ? ( ) : ( {editData.education.degree} )}
{isEditing ? ( handleInputChange( "education", "graduationYear", e.target.value ) } /> ) : ( {editData.education.graduationYear} )}
{/* 工作经历 */}

工作经历

{isEditing ? ( handleInputChange( "experience", "company", e.target.value ) } /> ) : ( {editData.experience.company} )}
{isEditing ? ( handleInputChange( "experience", "position", e.target.value ) } /> ) : ( {editData.experience.position} )}
{isEditing ? ( handleInputChange( "experience", "duration", e.target.value ) } /> ) : ( {editData.experience.duration} )}
    {editData.experience.responsibilities.map((resp, index) => (
  • {resp}
  • ))}
{/* 技能特长 */}

技能特长

{editData.skills.map((skill, index) => (
{skill} {isEditing && ( )}
))}
{isEditing && (
setCurrentSkill(e.target.value)} placeholder="添加技能" onKeyPress={(e) => e.key === "Enter" && handleAddSkill()} />
)}
{isEditing && ( )}
); }; export default ResumeEditModal;