Files
ALL-teach_sys/frontend/verify_remaining_positions_logic.cjs
KQL 38350dca36 更新12个教务系统并优化项目大小
主要更新:
- 更新所有12个产业的教务系统数据和功能
- 删除所有 node_modules 文件夹(节省3.7GB)
- 删除所有 .yoyo 缓存文件夹(节省1.2GB)
- 删除所有 dist 构建文件(节省55MB)

项目优化:
- 项目大小从 8.1GB 减少到 3.2GB(节省60%空间)
- 保留完整的源代码和配置文件
- .gitignore 已配置,防止再次提交大文件

启动脚本:
- start-industry.sh/bat/ps1 脚本会自动检测并安装依赖
- 首次启动时自动运行 npm install
- 支持单个或批量启动产业系统

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 14:36:25 +08:00

100 lines
4.1 KiB
JavaScript
Raw 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');
}