import { useState } from "react"; import { useNavigate } from "react-router-dom"; import { mapJobList, mapInterviewList } from "@/utils/dataMapper"; import JobList from "./components/JobList"; import { getJobsList, getInterviewsList, getCurrentStudent } from "@/services"; import InfiniteScroll from "@/components/InfiniteScroll"; import "./index.css"; const PAGE_SIZE = 10; const CompanyJobsPage = () => { const [isExpand, setIsExpand] = useState(false); // 是否展开 const [jobs, setJobs] = useState([]); const [jobsListPage, setJobsListPage] = useState(1); const [joblistHasMore, setJobsListHasMore] = useState(true); const [interviews, setInterviews] = useState([]); const [interviewsPage, setInterviewsPage] = useState(1); const [interviewsHasMore, setInterviewsHasMore] = useState(true); const navigate = useNavigate(); // 获取面试信息 const fetchInterviewsData = async () => { try { let studentId = null; const currentStudent = await getCurrentStudent(); studentId = currentStudent?.id; if (studentId) { const res = await getInterviewsList({ page: interviewsPage, pageSize: PAGE_SIZE, studentId: studentId, status: "SCHEDULED", }); if (res.success) { const mappedInterviews = mapInterviewList(res.data || []); setInterviews((prevList) => { const newList = [...prevList, ...mappedInterviews]; if (res.total === newList?.length) { setInterviewsHasMore(false); } else { setInterviewsPage((prevPage) => prevPage + 1); } return newList; }); } } } catch (error) { console.error("Failed to fetch data:", error); setInterviews([]); } }; // 获取企业内推岗位 const fetchJobsList = async () => { try { const res = await getJobsList({ page: jobsListPage, pageSize: PAGE_SIZE, isActive: true, }); if (res.success) { const mappedJobs = mapJobList(res.data); setJobs((prevList) => { const newList = [...prevList, ...mappedJobs]; if (res.total === newList?.length) { setJobsListHasMore(false); } else { setJobsListPage((prevPage) => prevPage + 1); } return newList; }); } } catch (error) { console.error("Failed to fetch data:", error); setJobs([]); } }; const handleJobWrapperClick = () => { navigate("/company-jobs-list"); }; return (

企业内推岗位库

内推岗位面试

{interviews.map((item) => (
  • {item.position}

    {item.job?.tags?.length > 0 ? (
      {item.job.tags.map((tag) => (
    • {tag}
    • ))}
    ) : null} {item.job?.salary || "面议"}
    {item.interviewTime}
    {item.statusText}
  • ))}
    setIsExpand(!isExpand)} > 岗位陪跑流程

    内推岗位简历投递

    岗位简历接收

    面试时间地点确定

    参与企业面试

    企业offer发送

    ); }; export default CompanyJobsPage;