feat: 更新企业内推岗位功能
- 删除岗位陪跑流程图标和弹窗组件 - 导入企业内推岗位库.json新数据源(39个岗位) - 实现岗位按截止时间降序排序 - 添加过期岗位判断逻辑,过期岗位显示已过期且无法投递 - 更新岗位卡片显示截止时间格式(YYYY-MM-DD) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -169,6 +169,23 @@
|
||||
background-size: 100% 100%;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
&.disabled {
|
||||
background-color: #f2f3f5;
|
||||
color: #c9cdd4;
|
||||
cursor: not-allowed;
|
||||
pointer-events: none;
|
||||
|
||||
&:hover {
|
||||
background-color: #f2f3f5;
|
||||
box-shadow: none;
|
||||
transform: none;
|
||||
}
|
||||
|
||||
> i {
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.company-jobs-info-deadline {
|
||||
|
||||
@@ -32,6 +32,12 @@ export default ({ className = "", data = [], backgroundColor }) => {
|
||||
const handleDeliverClick = async (e, item) => {
|
||||
e.stopPropagation(); // 阻止冒泡到li的点击事件
|
||||
|
||||
// 检查岗位是否已过期
|
||||
if (item.isExpired || item.status === 'expired') {
|
||||
toast.error('该岗位已过期,无法投递');
|
||||
return;
|
||||
}
|
||||
|
||||
// 获取岗位详情然后打开投递弹窗
|
||||
const res = await getJobsDetail(item.id);
|
||||
if (res.success) {
|
||||
@@ -147,11 +153,12 @@ export default ({ className = "", data = [], backgroundColor }) => {
|
||||
{item?.salary}
|
||||
</p>
|
||||
<button
|
||||
className="company-jobs-btn"
|
||||
className={`company-jobs-btn ${(item.isExpired || item.status === 'expired') ? 'disabled' : ''}`}
|
||||
onClick={(e) => handleDeliverClick(e, item)}
|
||||
disabled={item.isExpired || item.status === 'expired'}
|
||||
>
|
||||
<i />
|
||||
<span>投递</span>
|
||||
<span>{(item.isExpired || item.status === 'expired') ? '已过期' : '投递'}</span>
|
||||
</button>
|
||||
{item?.deadline && (
|
||||
<p className="company-jobs-info-deadline">
|
||||
|
||||
@@ -17,7 +17,6 @@ const PAGE_SIZE = 10;
|
||||
|
||||
const CompanyJobsPage = () => {
|
||||
const studentInfo = useSelector((state) => state.student.studentInfo);
|
||||
const [isExpand, setIsExpand] = useState(false); // 是否展开
|
||||
const [jobs, setJobs] = useState([]);
|
||||
const [jobsListPage, setJobsListPage] = useState(1);
|
||||
const [jobsListHasMore, setJobsListHasMore] = useState(true);
|
||||
@@ -272,37 +271,6 @@ const CompanyJobsPage = () => {
|
||||
</InfiniteScroll>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
onClick={() => setIsExpand(!isExpand)}
|
||||
className={
|
||||
isExpand
|
||||
? "company-jobs-page-process-wrapper-expand"
|
||||
: "company-jobs-page-process-wrapper-close"
|
||||
}
|
||||
>
|
||||
<div className="company-jobs-page-process-wrapper-title">
|
||||
岗位陪跑流程
|
||||
</div>
|
||||
<div className="company-jobs-page-process-content">
|
||||
<div className="company-jobs-page-process-item-icon icon1">
|
||||
<p>内推岗位简历投递</p>
|
||||
</div>
|
||||
<div className="company-jobs-page-process-item-round-dot icon2" />
|
||||
<div className="company-jobs-page-process-item-icon icon3">
|
||||
<p>岗位简历接收</p>
|
||||
</div>
|
||||
<div className="company-jobs-page-process-item-icon icon4">
|
||||
<p>面试时间地点确定</p>
|
||||
</div>
|
||||
<div className="company-jobs-page-process-item-icon icon5">
|
||||
<p>参与企业面试</p>
|
||||
</div>
|
||||
<div className="company-jobs-page-process-item-round-dot icon6" />
|
||||
<div className="company-jobs-page-process-item-icon icon7">
|
||||
<p>企业offer发送</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</>
|
||||
)}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user