Files
teach_sys_Demo/verify_remaining_positions_logic.cjs
KQL 1b964b3886 chore: 更新数据文件和组件优化
主要更新内容:
- 优化UI组件(视频播放器、HR访问模态框、岗位信息展示等)
- 更新数据文件(简历、岗位、项目案例等)
- 添加新的图片资源(面试状态图标等)
- 新增AgentPage等页面组件
- 清理旧的备份文件,提升代码库整洁度
- 优化岗位等级和面试状态的数据结构

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-15 15:55:25 +08:00

100 lines
4.1 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 验证岗位剩余招聘量隐藏逻辑
const fs = require('fs');
const path = require('path');
console.log('🔍 验证岗位剩余招聘量隐藏逻辑\n');
console.log('='.repeat(80));
// 检查 JobInfoModal 组件
console.log('\n1. 检查 JobInfoModal/index.jsx');
const jsxContent = fs.readFileSync(
path.join(__dirname, 'src/pages/CompanyJobsPage/components/JobInfoModal/index.jsx'),
'utf-8'
);
// 查找剩余招聘量的展示逻辑
const remainingPositionsMatch = jsxContent.match(/\{[^}]*!data\?\.\isDelivered[^}]*[^}]*\}/s);
if (remainingPositionsMatch) {
console.log(' ✅ 找到岗位剩余招聘量展示逻辑');
const logicBlock = remainingPositionsMatch[0];
// 检查各个条件
const hasIsDeliveredCheck = logicBlock.includes('!data?.isDelivered');
console.log(` ${hasIsDeliveredCheck ? '✅' : '❌'} 检查已投递状态 (!data?.isDelivered)`);
const hasIsExpiredCheck = logicBlock.includes('!data?.isExpired');
console.log(` ${hasIsExpiredCheck ? '✅' : '❌'} 检查已过期状态 (!data?.isExpired)`);
const hasStatusExpiredCheck = logicBlock.includes("data?.status !== 'expired'");
console.log(` ${hasStatusExpiredCheck ? '✅' : '❌'} 检查status过期状态 (data?.status !== 'expired')`);
const hasHideDeliverButtonCheck = logicBlock.includes('!hideDeliverButton');
console.log(` ${hasHideDeliverButtonCheck ? '✅' : '❌'} 检查面试状态 (!hideDeliverButton)`);
const hasRemainingPositionsCheck = logicBlock.includes('data?.remainingPositions');
console.log(` ${hasRemainingPositionsCheck ? '✅' : '❌'} 检查剩余招聘量存在 (data?.remainingPositions)`);
console.log('\n 📋 完整逻辑:');
console.log(' 只有同时满足以下所有条件时才显示剩余招聘量:');
console.log(' 1. 岗位未投递 (!isDelivered)');
console.log(' 2. 岗位未过期 (!isExpired)');
console.log(' 3. 岗位状态不是expired (status !== "expired")');
console.log(' 4. 不隐藏投递按钮,即非面试状态点击 (!hideDeliverButton)');
console.log(' 5. 存在剩余招聘量数据 (remainingPositions)');
const allConditionsMet =
hasIsDeliveredCheck &&
hasIsExpiredCheck &&
hasStatusExpiredCheck &&
hasHideDeliverButtonCheck &&
hasRemainingPositionsCheck;
console.log(`\n ${allConditionsMet ? '✅' : '❌'} 所有必要条件都已实现`);
} else {
console.log(' ❌ 未找到岗位剩余招聘量展示逻辑');
}
// 检查 CompanyJobsPage 组件中的数据传递
console.log('\n2. 检查 CompanyJobsPage/index.jsx 数据传递');
const pageContent = fs.readFileSync(
path.join(__dirname, 'src/pages/CompanyJobsPage/index.jsx'),
'utf-8'
);
const hasIsFromInterviewFlag = pageContent.includes('isFromInterview');
console.log(` ${hasIsFromInterviewFlag ? '✅' : '❌'} 使用 isFromInterview 标识`);
const hasHideDeliverButtonProp = pageContent.includes('hideDeliverButton={isFromInterview}');
console.log(` ${hasHideDeliverButtonProp ? '✅' : '❌'} 将 isFromInterview 传递给 hideDeliverButton`);
const hasDeliveredJobsFlag = pageContent.includes('isDelivered: true');
console.log(` ${hasDeliveredJobsFlag ? '✅' : '❌'} 已投递岗位标记 isDelivered: true`);
console.log('\n' + '='.repeat(80));
const allChecksPassed =
remainingPositionsMatch &&
hasIsDeliveredCheck &&
hasIsExpiredCheck &&
hasStatusExpiredCheck &&
hasHideDeliverButtonCheck &&
hasRemainingPositionsCheck &&
hasIsFromInterviewFlag &&
hasHideDeliverButtonProp &&
hasDeliveredJobsFlag;
if (allChecksPassed) {
console.log('\n✅ 所有检查通过!岗位剩余招聘量隐藏逻辑已正确实现。\n');
console.log('📝 功能说明:');
console.log(' - ✅ 已投递岗位:不显示剩余招聘量');
console.log(' - ✅ 已过期岗位:不显示剩余招聘量');
console.log(' - ✅ 岗位面试状态中的岗位:不显示剩余招聘量');
console.log(' - ✅ 只有未投递、未过期的普通岗位才显示剩余招聘量');
} else {
console.log('\n⚠ 部分检查未通过,请检查上述标记为❌的项目。\n');
}