diff --git a/src/pages/CompanyJobsPage/components/JobInfoModal/index.css b/src/pages/CompanyJobsPage/components/JobInfoModal/index.css
index 5197c1b..97e95ee 100644
--- a/src/pages/CompanyJobsPage/components/JobInfoModal/index.css
+++ b/src/pages/CompanyJobsPage/components/JobInfoModal/index.css
@@ -24,9 +24,14 @@
background-color: #fff;
}
}
-
+ .empty-data-wrapper {
+ width: 100%;
+ min-height: 555px;
+ display: flex;
+ }
.job-info-modal-user-resumes-list {
width: 100%;
+ min-height: 555px;
margin-top: 16px;
display: grid;
grid-template-columns: repeat(2, 1fr); /* 每行两列 */
diff --git a/src/pages/CompanyJobsPage/components/JobInfoModal/index.jsx b/src/pages/CompanyJobsPage/components/JobInfoModal/index.jsx
index 8f0b1f4..a90ed43 100644
--- a/src/pages/CompanyJobsPage/components/JobInfoModal/index.jsx
+++ b/src/pages/CompanyJobsPage/components/JobInfoModal/index.jsx
@@ -1,24 +1,48 @@
import { useState } from "react";
+import { useSelector } from "react-redux";
import { Input } from "@arco-design/web-react";
import Modal from "@/components/Modal";
-import { mockData } from "@/data/mockData";
+import InfiniteScroll from "@/components/InfiniteScroll";
import ResumeInfoModal from "@/pages/CompanyJobsPage/components/ResumeInfoModal";
import FILEICON from "@/assets/images/CompanyJobsPage/file_icon.png";
+import { getResumesList } from "@/services";
import "./index.css";
const InputSearch = Input.Search;
-const { userResumes } = mockData;
+const PAGE_SIZE = 10;
export default ({ visible, onClose, data }) => {
- console.log(data);
+ const studentInfo = useSelector((state) => state.student.studentInfo);
const [resumeModalShow, setResumeModalShow] = useState(false);
const [resumeInfoModalShow, setResumeInfoModalShow] = useState(false);
+ const [resumeList, setResumeList] = useState([]); // 简历列表
+ const [listPage, setListPage] = useState(1);
+ const [listHasMore, setListHasMore] = useState(true);
const handleCloseModal = () => {
setResumeModalShow(false);
onClose();
};
+ const queryResumeList = 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;
+ });
+ }
+ };
+
// 点击立即投递
const handleClickDeliverBtn = (e) => {
e.stopPropagation();
@@ -53,36 +77,46 @@ export default ({ visible, onClose, data }) => {
searchButton
placeholder="搜索简历"
/>
-
-
+
+

+
+
+ {item.title}
+
+ {item?.skills?.length > 0 && (
+
+ {item?.skills?.join("/")}
+
+ )}
+
+
+ userResumesBtnClick(e, item)}
+ >
+ 简历详情
+
+
+ ))}
+
+ }
>
) : (
<>
diff --git a/src/pages/CompanyJobsPage/index.jsx b/src/pages/CompanyJobsPage/index.jsx
index 9da91e2..e66f380 100644
--- a/src/pages/CompanyJobsPage/index.jsx
+++ b/src/pages/CompanyJobsPage/index.jsx
@@ -2,9 +2,10 @@ import { useState } from "react";
import { useSelector } from "react-redux";
import { useNavigate } from "react-router-dom";
import { mapJobList, mapInterviewList } from "@/utils/dataMapper";
+import InfiniteScroll from "@/components/InfiniteScroll";
+import toast from "@/components/Toast";
import JobList from "./components/JobList";
import { getJobsList, getInterviewsList } from "@/services";
-import InfiniteScroll from "@/components/InfiniteScroll";
import "./index.css";
const PAGE_SIZE = 10;
@@ -22,30 +23,28 @@ const CompanyJobsPage = () => {
// 获取面试信息
const fetchInterviewsData = async () => {
- try {
- if (studentInfo?.id) {
- const res = await getInterviewsList({
- page: interviewsPage,
- pageSize: PAGE_SIZE,
- studentId: studentInfo?.id,
- status: "SCHEDULED",
+ if (studentInfo?.id) {
+ const res = await getInterviewsList({
+ page: interviewsPage,
+ pageSize: PAGE_SIZE,
+ studentId: studentInfo?.id,
+ 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;
});
- 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;
- });
- }
+ } else {
+ setInterviews([]);
+ toast.error(res.message);
}
- } catch (error) {
- console.error("Failed to fetch data:", error);
- setInterviews([]);
}
};
diff --git a/src/services/companyJobs.js b/src/services/companyJobs.js
index 354f6d0..3ea965e 100644
--- a/src/services/companyJobs.js
+++ b/src/services/companyJobs.js
@@ -25,3 +25,19 @@ export async function getInterviewsList(params) {
params,
});
}
+
+// 获取简历列表
+export async function getResumesList(params) {
+ return request({
+ url: `/api/resumes`,
+ method: "GET",
+ params: params,
+ });
+}
+// 获取简历详情
+export async function getResumesDetail(id) {
+ return request({
+ url: `/api/resumes/${id}`,
+ method: "GET",
+ });
+}
diff --git a/src/services/index.js b/src/services/index.js
index 8394cc8..77a7098 100644
--- a/src/services/index.js
+++ b/src/services/index.js
@@ -5,7 +5,13 @@ import {
getClassRanking,
} from "./dashboard";
import { getProjectsList } from "./projectLibrary";
-import { getJobsList, getJobsDetail, getInterviewsList } from "./companyJobs";
+import {
+ getJobsList,
+ getJobsDetail,
+ getInterviewsList,
+ getResumesList,
+ getResumesDetail,
+} from "./companyJobs";
import { getLoginStudentInfo } from "./global";
import {
getDashboardStatistics,
@@ -13,7 +19,7 @@ import {
getClassRank,
getMyRanking,
} from "./personalProfile";
-import { getResumesList, getResumesDetail } from "./resumeInterview";
+import {} from "./resumeInterview";
export {
// 仪表盘相关
diff --git a/src/services/resumeInterview.js b/src/services/resumeInterview.js
index 05b5b23..075344e 100644
--- a/src/services/resumeInterview.js
+++ b/src/services/resumeInterview.js
@@ -1,17 +1 @@
import request from "@/utils/request";
-
-// 获取简历列表
-export async function getResumesList(params) {
- return request({
- url: `/api/resumes`,
- method: "GET",
- params: params,
- });
-}
-// 获取简历详情
-export async function getResumesDetail(id) {
- return request({
- url: `/api/resumes/${id}`,
- method: "GET",
- });
-}