fix: 优化最低工资保护tooltip文案,明确免扣社保/公积金与额外补齐的区分
minWageApplied 包含免扣社保+免扣公积金+额外补齐三部分, 原tooltip统称"补齐"容易误解为额外补了这么多现金。 改为分项显示:免扣社保 ¥X + 免扣公积金 ¥Y + 额外补齐 ¥Z Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
@@ -970,7 +970,7 @@ function BatchDetail({ batchId, onBack }: { batchId: string; onBack: () => void
|
||||
)}
|
||||
{batch.entries.some((e: any) => (e.minWageApplied || 0) > 0) && (
|
||||
<InlineAlert type="warning" title="最低工资保护已触发">
|
||||
{batch.entries.filter((e: any) => (e.minWageApplied || 0) > 0).length} 名员工已补齐到最低工资标准,递延扣款(社保/公积金/补齐差额)将在次月工资中补扣。
|
||||
{batch.entries.filter((e: any) => (e.minWageApplied || 0) > 0).length} 名员工实发已补齐到最低工资标准。免扣的社保/公积金及额外补齐差额已递延,将在次月工资中补扣,请在「递延扣款」列查看明细。
|
||||
</InlineAlert>
|
||||
)}
|
||||
{batch.entries.some((e: any) => (e.prevDeferredSocialEmp || 0) + (e.prevDeferredHousingEmp || 0) + (e.prevDeferredMinWage || 0) > 0) && (
|
||||
@@ -1111,7 +1111,7 @@ function BatchDetail({ batchId, onBack }: { batchId: string; onBack: () => void
|
||||
{renderCell(entry, 'housingEmp')}
|
||||
<td className="py-2 px-2 text-right text-gray-500 cursor-pointer hover:text-primary hover:underline" onClick={() => handleTaxDetailClick(entry.employeeId, entry.employee.name)} title="点击查看个税计算明细">{fmt(entry.tax)}</td>
|
||||
{/* 实发:最低工资保护触发时高亮显示 */}
|
||||
<td className={`py-2 px-2 text-right font-bold ${(entry.minWageApplied || 0) > 0 ? 'text-amber-600' : 'text-safe'}`} title={(entry.minWageApplied || 0) > 0 ? `最低工资保护:补齐 ¥${entry.minWageApplied},递延扣款 ¥${(entry.deferredSocialEmp || 0) + (entry.deferredHousingEmp || 0) + (entry.deferredMinWage || 0)} 将在次月补扣` : ''}>
|
||||
<td className={`py-2 px-2 text-right font-bold ${(entry.minWageApplied || 0) > 0 ? 'text-amber-600' : 'text-safe'}`} title={(entry.minWageApplied || 0) > 0 ? `最低工资保护已触发\n应发 ¥${fmt(entry.totalPay)} → 实发补齐到 ¥${fmt(entry.minWage)}\n免扣社保 ¥${fmt(entry.deferredSocialEmp || 0)} + 免扣公积金 ¥${fmt(entry.deferredHousingEmp || 0)} + 额外补齐 ¥${fmt(entry.deferredMinWage || 0)} = 递延 ¥${fmt((entry.deferredSocialEmp || 0) + (entry.deferredHousingEmp || 0) + (entry.deferredMinWage || 0))}(次月补扣)` : ''}>
|
||||
{fmt(entry.netPay)}
|
||||
{(entry.minWageApplied || 0) > 0 && <span className="text-xs text-amber-500 ml-1">★</span>}
|
||||
</td>
|
||||
@@ -1121,10 +1121,10 @@ function BatchDetail({ batchId, onBack }: { batchId: string; onBack: () => void
|
||||
const deferred = (entry.deferredSocialEmp || 0) + (entry.deferredHousingEmp || 0) + (entry.deferredMinWage || 0)
|
||||
const prevDeferred = (entry.prevDeferredSocialEmp || 0) + (entry.prevDeferredHousingEmp || 0) + (entry.prevDeferredMinWage || 0)
|
||||
if (deferred > 0) {
|
||||
return <span className="text-amber-600 cursor-help" title={`递延到次月:社保 ¥${entry.deferredSocialEmp || 0} + 公积金 ¥${entry.deferredHousingEmp || 0} + 最低工资补齐 ¥${entry.deferredMinWage || 0}`}>递延 ¥{fmt(deferred)}</span>
|
||||
return <span className="text-amber-600 cursor-help" title={`递延到次月补扣:\n免扣社保 ¥${fmt(entry.deferredSocialEmp || 0)}\n免扣公积金 ¥${fmt(entry.deferredHousingEmp || 0)}\n额外补齐 ¥${fmt(entry.deferredMinWage || 0)}\n合计 ¥${fmt(deferred)}`}>递延 ¥{fmt(deferred)}</span>
|
||||
}
|
||||
if (prevDeferred > 0) {
|
||||
return <span className="text-blue-600 cursor-help" title={`本月补扣上月递延:社保 ¥${entry.prevDeferredSocialEmp || 0} + 公积金 ¥${entry.prevDeferredHousingEmp || 0} + 最低工资补齐 ¥${entry.prevDeferredMinWage || 0}`}>补扣 ¥{fmt(prevDeferred)}</span>
|
||||
return <span className="text-blue-600 cursor-help" title={`本月补扣上月递延:\n社保 ¥${fmt(entry.prevDeferredSocialEmp || 0)}\n公积金 ¥${fmt(entry.prevDeferredHousingEmp || 0)}\n最低工资补齐 ¥${fmt(entry.prevDeferredMinWage || 0)}\n合计 ¥${fmt(prevDeferred)}`}>补扣 ¥{fmt(prevDeferred)}</span>
|
||||
}
|
||||
return <span className="text-gray-300">—</span>
|
||||
})()}
|
||||
@@ -1135,7 +1135,7 @@ function BatchDetail({ batchId, onBack }: { batchId: string; onBack: () => void
|
||||
<AlertTriangle className="w-4 h-4" />
|
||||
</span>
|
||||
) : (entry.minWageApplied || 0) > 0 ? (
|
||||
<span className="text-amber-500 cursor-help" title={`最低工资保护已触发:实发补齐到 ¥${entry.minWage},递延 ¥${(entry.deferredSocialEmp || 0) + (entry.deferredHousingEmp || 0) + (entry.deferredMinWage || 0)} 次月补扣`}>
|
||||
<span className="text-amber-500 cursor-help" title={`最低工资保护已触发\n应发 ¥${fmt(entry.totalPay)} → 实发 ¥${fmt(entry.minWage)}\n递延 ¥${fmt((entry.deferredSocialEmp || 0) + (entry.deferredHousingEmp || 0) + (entry.deferredMinWage || 0))} 次月补扣`}>
|
||||
<AlertTriangle className="w-4 h-4" />
|
||||
</span>
|
||||
) : (
|
||||
|
||||
Reference in New Issue
Block a user