fix: 全面优化安全、性能和代码质量
P0: 环境变量校验/事务保护/RBAC权限 P1: 花名册分页/密码重置验证码/ErrorBoundary/N+1查询优化 P2: 导出限制/自定义错误类/body大小限制/代码去重 P3: 自定义确认弹窗替换window.confirm
This commit is contained in:
@@ -19,6 +19,7 @@ const REASONS = [
|
||||
{ value: 'LAYOFF', label: '公司裁员(经营困难/技术调整等)', legalBasis: '《劳动合同法》第41条' },
|
||||
{ value: 'EXPIRED', label: '合同到期不续签', legalBasis: '《劳动合同法》第44条、第46条' },
|
||||
{ value: 'ILLEGAL', label: '违法解除(赔偿金×2)', legalBasis: '《劳动合同法》第87条' },
|
||||
{ value: 'RESIGNATION', label: '员工主动离职', legalBasis: '《劳动合同法》第37条' },
|
||||
]
|
||||
|
||||
const STEPS = ['选择员工', '解聘方式', '合规检查', '费用结算', '工作交接', '确认提交']
|
||||
@@ -667,6 +668,7 @@ export default function Termination() {
|
||||
onClick={() => handleEditDraft(item)}
|
||||
className="p-1 text-gray-500 hover:text-primary"
|
||||
aria-label="编辑"
|
||||
title="编辑"
|
||||
>
|
||||
<Edit className="w-3.5 h-3.5" />
|
||||
</button>
|
||||
@@ -677,6 +679,7 @@ export default function Termination() {
|
||||
onClick={() => { setDraftId(item.id); setView('detail') }}
|
||||
className="p-1 text-safe hover:opacity-70"
|
||||
aria-label="审批通过"
|
||||
title="审批通过"
|
||||
>
|
||||
<CheckCircle className="w-3.5 h-3.5" />
|
||||
</button>
|
||||
@@ -684,6 +687,7 @@ export default function Termination() {
|
||||
onClick={() => { setDraftId(item.id); setView('detail') }}
|
||||
className="p-1 text-danger hover:opacity-70"
|
||||
aria-label="驳回"
|
||||
title="驳回"
|
||||
>
|
||||
<XCircle className="w-3.5 h-3.5" />
|
||||
</button>
|
||||
@@ -694,6 +698,7 @@ export default function Termination() {
|
||||
onClick={() => { setDraftId(item.id); executeMutation.mutate() }}
|
||||
className="p-1 text-primary hover:opacity-70"
|
||||
aria-label="执行"
|
||||
title="执行解聘"
|
||||
>
|
||||
<Play className="w-3.5 h-3.5" />
|
||||
</button>
|
||||
@@ -703,6 +708,7 @@ export default function Termination() {
|
||||
onClick={() => { setDraftId(item.id); cancelMutation.mutate() }}
|
||||
className="p-1 text-gray-400 hover:text-danger"
|
||||
aria-label="撤销"
|
||||
title="撤销"
|
||||
>
|
||||
<Ban className="w-3.5 h-3.5" />
|
||||
</button>
|
||||
@@ -711,6 +717,7 @@ export default function Termination() {
|
||||
onClick={() => handleViewDetail(item.id)}
|
||||
className="p-1 text-gray-500 hover:text-primary"
|
||||
aria-label="详情"
|
||||
title="详情"
|
||||
>
|
||||
<FileText className="w-3.5 h-3.5" />
|
||||
</button>
|
||||
|
||||
Reference in New Issue
Block a user