import { useState, useEffect } from "react"; import { useNavigate } from "react-router-dom"; import { jobAPI, interviewAPI, studentAPI } from "@/services/api"; import { mapJobList, mapInterviewList } from "@/utils/dataMapper"; import JobList from "./components/JobList"; import "./index.css"; const CompanyJobsPage = () => { const [jobs, setJobs] = useState([]); const [interviews, setInterviews] = useState([]); const [loading, setLoading] = useState(true); const [isExpand, setIsExpand] = useState(false); // 是否展开 const navigate = useNavigate(); useEffect(() => { fetchData(); }, []); const fetchData = async () => { try { setLoading(true); // Get current user's student ID from API let studentId = null; try { const currentStudent = await studentAPI.getCurrentStudent(); studentId = currentStudent?.id; } catch (err) { console.log('Could not get current student:', err); } // Fetch jobs (and interviews if we have a student ID) const jobsData = await jobAPI.getList({ page: 1, pageSize: 10, isActive: true }); let interviewsData = { data: [] }; if (studentId) { try { interviewsData = await interviewAPI.getList({ studentId: studentId, status: 'SCHEDULED' }); } catch (err) { console.log('No interviews found or API error'); } } // Map data to frontend format const mappedJobs = mapJobList(jobsData.data || jobsData); const mappedInterviews = mapInterviewList(interviewsData.data || interviewsData); setJobs(mappedJobs); setInterviews(mappedInterviews); } catch (error) { console.error("Failed to fetch data:", error); // Fallback to empty data setJobs([]); setInterviews([]); } finally { setLoading(false); } }; const handleJobWrapperClick = () => { navigate("/company-jobs-list"); }; if (loading) { return (
加载中...
企业内推岗位库
内推岗位面试
{item.position}
{item.job?.tags?.length > 0 ? (暂无面试安排
内推岗位简历投递
岗位简历接收
面试时间地点确定
参与企业面试
企业offer发送