mirror of
https://github.com/Zippland/worth-calculator.git
synced 2026-01-19 01:21:03 +08:00
优化薪资计算器中的薪资倍数计算逻辑,调整了工作单位类型对薪资增长的影响系数,同时移除了分享卡片中的广告单元,提升了组件的整洁性和可读性。
This commit is contained in:
@@ -651,58 +651,36 @@ const ShareCard: React.FC<ShareCardProps> = (props) => {
|
||||
{/* 性价比评语卡片 - 移动端更紧凑 */}
|
||||
<div className="space-y-4 md:space-y-6">
|
||||
{isClient && personalizedComments.map((comment, index) => (
|
||||
<React.Fragment key={index}>
|
||||
<div className="bg-gradient-to-r from-gray-50 to-gray-100 rounded-lg md:rounded-xl p-3 md:p-5 shadow-sm transition-all hover:shadow-md">
|
||||
<div className="flex items-start gap-2.5 md:gap-4">
|
||||
<div className="text-2xl md:text-4xl flex-shrink-0 mt-0.5">{comment.emoji}</div>
|
||||
<div className="flex-1">
|
||||
<h3 className="text-base md:text-lg font-bold mb-1 md:mb-2 text-gray-800">{comment.title}</h3>
|
||||
<p className="text-xs md:text-sm text-gray-700 leading-relaxed mb-2 md:mb-3">{comment.content}</p>
|
||||
|
||||
{/* 用户选项详情 - 移动端使用行内排列 */}
|
||||
{comment.details && comment.details.length > 0 && (
|
||||
<div className="mt-2 pt-2 border-t border-gray-200">
|
||||
<div className={isMobile ? "flex flex-wrap gap-x-4 gap-y-1.5" : "grid grid-cols-2 gap-2"}>
|
||||
{comment.details.map((detail, i) => (
|
||||
isMobile ? (
|
||||
<div key={i} className="flex items-center text-xs">
|
||||
<span className="text-gray-500 mr-1">{detail.label}:</span>
|
||||
<span className="font-medium text-gray-800">{detail.value}</span>
|
||||
</div>
|
||||
) : (
|
||||
<div key={i} className="flex justify-between items-center">
|
||||
<span className="text-xs text-gray-500">{detail.label}</span>
|
||||
<span className="text-xs md:text-sm font-medium text-gray-800">{detail.value}</span>
|
||||
</div>
|
||||
)
|
||||
))}
|
||||
</div>
|
||||
<div key={index} className="bg-gradient-to-r from-gray-50 to-gray-100 rounded-lg md:rounded-xl p-3 md:p-5 shadow-sm transition-all hover:shadow-md">
|
||||
<div className="flex items-start gap-2.5 md:gap-4">
|
||||
<div className="text-2xl md:text-4xl flex-shrink-0 mt-0.5">{comment.emoji}</div>
|
||||
<div className="flex-1">
|
||||
<h3 className="text-base md:text-lg font-bold mb-1 md:mb-2 text-gray-800">{comment.title}</h3>
|
||||
<p className="text-xs md:text-sm text-gray-700 leading-relaxed mb-2 md:mb-3">{comment.content}</p>
|
||||
|
||||
{/* 用户选项详情 - 移动端使用行内排列 */}
|
||||
{comment.details && comment.details.length > 0 && (
|
||||
<div className="mt-2 pt-2 border-t border-gray-200">
|
||||
<div className={isMobile ? "flex flex-wrap gap-x-4 gap-y-1.5" : "grid grid-cols-2 gap-2"}>
|
||||
{comment.details.map((detail, i) => (
|
||||
isMobile ? (
|
||||
<div key={i} className="flex items-center text-xs">
|
||||
<span className="text-gray-500 mr-1">{detail.label}:</span>
|
||||
<span className="font-medium text-gray-800">{detail.value}</span>
|
||||
</div>
|
||||
) : (
|
||||
<div key={i} className="flex justify-between items-center">
|
||||
<span className="text-xs text-gray-500">{detail.label}</span>
|
||||
<span className="text-xs md:text-sm font-medium text-gray-800">{detail.value}</span>
|
||||
</div>
|
||||
)
|
||||
))}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* 在第2个评语卡片后插入广告 */}
|
||||
{index === 1 && (
|
||||
<>
|
||||
{/* Google AdSense 广告单元 */}
|
||||
<div className="my-6 flex justify-center">
|
||||
<ins className="adsbygoogle"
|
||||
style={{display:'block', textAlign:'center'}}
|
||||
data-ad-layout="in-article"
|
||||
data-ad-format="fluid"
|
||||
data-ad-client="ca-pub-8196371508613271"
|
||||
data-ad-slot="1659127609"></ins>
|
||||
</div>
|
||||
<script
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: '(adsbygoogle = window.adsbygoogle || []).push({});'
|
||||
}}
|
||||
/>
|
||||
</>
|
||||
)}
|
||||
</React.Fragment>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
|
||||
|
||||
@@ -715,31 +715,31 @@ const SalaryCalculator = () => {
|
||||
} else {
|
||||
// 非应届生:使用基于增长预期的模型
|
||||
|
||||
// 基准薪资增长曲线(适用于私企)
|
||||
let baseSalaryMultiplier = 1.0;
|
||||
// 基准薪资增长曲线(适用于私企)
|
||||
let baseSalaryMultiplier = 1.0;
|
||||
if (workYears === 1) baseSalaryMultiplier = 1.5; // 1年:1.50-2.00,取中间值
|
||||
else if (workYears <= 3) baseSalaryMultiplier = 2.2; // 2-3年:2.20-2.50,取中间值
|
||||
else if (workYears <= 5) baseSalaryMultiplier = 2.7; // 4-5年:2.70-3.00,取中间值
|
||||
else if (workYears <= 8) baseSalaryMultiplier = 3.2; // 6-8年:3.20-3.50,取中间值
|
||||
else if (workYears <= 10) baseSalaryMultiplier = 3.6; // 9-10年:3.60-3.80,取中间值
|
||||
else baseSalaryMultiplier = 3.9; // 11-13年:3.90-4.20,取中间值
|
||||
|
||||
// 工作单位类型对涨薪幅度的影响系数
|
||||
let salaryGrowthFactor = 1.0; // 私企基准
|
||||
if (formData.jobStability === 'foreign') {
|
||||
salaryGrowthFactor = 0.8; // 外企涨薪幅度为私企的80%
|
||||
} else if (formData.jobStability === 'state') {
|
||||
salaryGrowthFactor = 0.4; // 央/国企涨薪幅度为私企的40%
|
||||
} else if (formData.jobStability === 'government') {
|
||||
salaryGrowthFactor = 0.2; // 体制内涨薪幅度为私企的20%
|
||||
} else if (formData.jobStability === 'dispatch') {
|
||||
salaryGrowthFactor = 1.2; // 派遣社员涨薪幅度为私企的120%(体现不稳定性)
|
||||
} else if (formData.jobStability === 'freelance') {
|
||||
salaryGrowthFactor = 1.2; // 自由职业涨薪幅度为私企的120%(体现不稳定性)
|
||||
}
|
||||
|
||||
// 根据公式: 1 + (对应幅度-1) * 工作单位系数,计算最终薪资倍数
|
||||
experienceSalaryMultiplier = 1 + (baseSalaryMultiplier - 1) * salaryGrowthFactor;
|
||||
else if (workYears <= 3) baseSalaryMultiplier = 2.2; // 2-3年:2.20-2.50,取中间值
|
||||
else if (workYears <= 5) baseSalaryMultiplier = 2.7; // 4-5年:2.70-3.00,取中间值
|
||||
else if (workYears <= 8) baseSalaryMultiplier = 3.2; // 6-8年:3.20-3.50,取中间值
|
||||
else if (workYears <= 10) baseSalaryMultiplier = 3.6; // 9-10年:3.60-3.80,取中间值
|
||||
else baseSalaryMultiplier = 3.9; // 11-13年:3.90-4.20,取中间值
|
||||
|
||||
// 工作单位类型对涨薪幅度的影响系数
|
||||
let salaryGrowthFactor = 1.0; // 私企基准
|
||||
if (formData.jobStability === 'foreign') {
|
||||
salaryGrowthFactor = 0.8; // 外企涨薪幅度为私企的80%
|
||||
} else if (formData.jobStability === 'state') {
|
||||
salaryGrowthFactor = 0.4; // 央/国企涨薪幅度为私企的40%
|
||||
} else if (formData.jobStability === 'government') {
|
||||
salaryGrowthFactor = 0.2; // 体制内涨薪幅度为私企的20%
|
||||
} else if (formData.jobStability === 'dispatch') {
|
||||
salaryGrowthFactor = 1.2; // 派遣社员涨薪幅度为私企的120%(体现不稳定性)
|
||||
} else if (formData.jobStability === 'freelance') {
|
||||
salaryGrowthFactor = 1.2; // 自由职业涨薪幅度为私企的120%(体现不稳定性)
|
||||
}
|
||||
|
||||
// 根据公式: 1 + (对应幅度-1) * 工作单位系数,计算最终薪资倍数
|
||||
experienceSalaryMultiplier = 1 + (baseSalaryMultiplier - 1) * salaryGrowthFactor;
|
||||
}
|
||||
|
||||
// 薪资满意度应该受到经验薪资倍数的影响
|
||||
@@ -1372,21 +1372,6 @@ const SalaryCalculator = () => {
|
||||
|
||||
<div className="border-t border-gray-200 dark:border-gray-700 my-6"></div>
|
||||
|
||||
{/* Google AdSense 广告单元 */}
|
||||
<div className="my-8 flex justify-center">
|
||||
<ins className="adsbygoogle"
|
||||
style={{display:'block', textAlign:'center'}}
|
||||
data-ad-layout="in-article"
|
||||
data-ad-format="fluid"
|
||||
data-ad-client="ca-pub-8196371508613271"
|
||||
data-ad-slot="1659127609"></ins>
|
||||
</div>
|
||||
<script
|
||||
dangerouslySetInnerHTML={{
|
||||
__html: '(adsbygoogle = window.adsbygoogle || []).push({});'
|
||||
}}
|
||||
/>
|
||||
|
||||
{/* 环境系数 */}
|
||||
<div className="space-y-4">
|
||||
{/* 学历和工作年限 */}
|
||||
|
||||
Reference in New Issue
Block a user