import { useState, useCallback, useEffect } from "react"; import { useSelector } from "react-redux"; import { Input } from "@arco-design/web-react"; import Modal from "@/components/Modal"; import InfiniteScroll from "@/components/InfiniteScroll"; import toast from "@/components/Toast"; import FILEICON from "@/assets/images/CompanyJobsPage/file_icon.png"; import ResumeInfoModal from "../ResumeInfoModal"; import { getResumesList, submitResume, getPageData } from "@/services"; import "./index.css"; const InputSearch = Input.Search; const PAGE_SIZE = 10; export default ({ visible, onClose, data, directToResume = false }) => { const studentInfo = useSelector((state) => state.student.studentInfo); const [resumeModalShow, setResumeModalShow] = useState(directToResume); const [resumeInfoModalShow, setResumeInfoModalShow] = useState(false); const [resumeInfoData, setResumeInfoData] = useState(null); const [resumeList, setResumeList] = useState([]); // 简历列表 const [listPage, setListPage] = useState(1); const [listHasMore, setListHasMore] = useState(true); // 处理directToResume参数变化 useEffect(() => { if (visible && directToResume) { setResumeModalShow(true); } else if (visible && !directToResume) { setResumeModalShow(false); } }, [visible, directToResume]); const handleCloseModal = () => { setResumeModalShow(false); setResumeList([]); // 清空简历列表 setListPage(1); // 重置分页 setListHasMore(true); // 重置加载更多状态 onClose(); }; const queryResumeList = useCallback(async () => { const res = await getResumesList({ page: listPage, pageSize: PAGE_SIZE, studentId: studentInfo?.id }); if (res.success) { setResumeList((prevList) => { const newList = [...prevList, ...res.data]; if (res.total === newList?.length) { setListHasMore(false); } else { setListPage((prevPage) => prevPage + 1); } return newList; }); } }, [listPage, studentInfo?.id]); // 点击立即投递 const handleClickDeliverBtn = (e) => { e.stopPropagation(); setResumeModalShow(true); }; // 选择简历投递 const userResumesClick = async (item) => { try { // 调用投递服务 const result = await submitResume({ resumeId: item.id, jobId: data?.id, studentId: studentInfo?.id, resumeTitle: item.title, jobPosition: data?.position, company: data?.company }); if (result.success) { // 投递成功,显示成功提示 toast.success(`简历"${item.title}"投递成功!`); // 关闭模态框 handleCloseModal(); // 输出投递成功信息 console.log('投递成功', { applicationId: result.data.applicationId, resumeId: item.id, jobId: data?.id, resumeTitle: item.title, jobPosition: data?.position, submittedAt: result.data.submittedAt }); } else { toast.error(result.message || '投递失败,请重试'); } } catch (error) { toast.error('投递失败,请重试'); console.error('投递失败:', error); } }; // 点击简历详情 const userResumesBtnClick = async (e, item) => { e.stopPropagation(); try { // 获取岗位与面试题页面的数据 const pageDataResponse = await getPageData(); if (pageDataResponse.success) { const pageData = pageDataResponse.data; // 直接使用简历列表中的模板数据 const selectedTemplate = item.template; // 找到对应的行业信息 const matchedIndustry = pageData.industries?.find(industry => industry.name === item.industry ); // 传递数据给 ResumeInfoModal const resumeData = { selectedTemplate, studentResume: pageData.myResume, industry: matchedIndustry, jobPosition: item.position }; console.log('加载简历数据:', { resumeTitle: item.title, position: item.position, industry: item.industry }); setResumeInfoData(resumeData); setResumeInfoModalShow(true); } else { toast.error('加载简历数据失败'); } } catch (error) { console.error('获取简历数据失败:', error); toast.error('加载简历数据失败'); } };;; return ( <>
{resumeModalShow ? ( <> { {resumeList.map((item) => (
  • userResumesBtnClick(e, item)} >

    {item.title}

    {item?.skills?.length > 0 && (

    {item?.skills?.join("/")}

    )}
    { e.stopPropagation(); userResumesClick(item); }} > 投递
  • ))}
    } ) : ( <>
    {data?.position} 该岗位仅剩{data?.remainingPositions}人 {data?.salary}
    {data?.tags?.length > 0 && ( )} {data?.details?.description && (

    岗位描述

    {data?.details?.description}

    )} {data?.details?.requirements?.length > 0 && (

    岗位要求

      {data?.details?.requirements?.map((item, index) => (
    • {index + 1}. {item}
    • ))}
    )} {/* {data?.details?.requirements?.length > 0 && (

    岗位要求

      {data?.details?.requirements?.map((item, index) => (
    • {index + 1}.{item}
    • ))}
    )} */} {data?.details?.companyInfo && (

    公司介绍

    {data?.details?.companyInfo}

    )}
    立即投递
    )}
    { setResumeInfoModalShow(false); setResumeInfoData(null); }} /> ); };