fix: 全部员工显示改为姓名+完整身份证号,不再脱敏
- 花名册列表显示完整身份证号 - 社保公积金月度办理列表姓名下显示身份证号 - 员工详情页显示完整身份证号 - 商业保险列表显示完整身份证号 - 后端去掉 idCardMasked 脱敏逻辑
This commit is contained in:
@@ -475,7 +475,7 @@ export default function Roster() {
|
||||
formData: {
|
||||
employeeId: id,
|
||||
employeeName: emp.name,
|
||||
idCardNumber: emp.idCardMasked || '',
|
||||
idCardNumber: emp.idCardNumber || '',
|
||||
position: emp.position || '',
|
||||
monthlyIncome: emp.monthlySalary ? `¥${emp.monthlySalary}` : '',
|
||||
purpose: '批量开具',
|
||||
@@ -564,7 +564,7 @@ export default function Roster() {
|
||||
const [showColSettings, setShowColSettings] = useState(false)
|
||||
|
||||
const filtered = employees?.filter((e: any) =>
|
||||
!search || e.name.includes(search) || e.department.includes(search) || (e.idCardMasked && e.idCardMasked.includes(search))
|
||||
!search || e.name.includes(search) || e.department.includes(search) || (e.idCardNumber && e.idCardNumber.includes(search))
|
||||
) || []
|
||||
|
||||
// 通讯录视图数据
|
||||
@@ -800,7 +800,7 @@ export default function Roster() {
|
||||
if (e.idCardNumber) {
|
||||
copyToClipboard(e.idCardNumber, '已复制证件号码')
|
||||
}
|
||||
}}>{e.idCardMasked || '—'}</span>
|
||||
}}>{e.idCardNumber || '—'}</span>
|
||||
</div>
|
||||
</td>
|
||||
{colVisible('department') && <td className="px-4 py-2.5 text-gray-500">{e.department}</td>}
|
||||
@@ -1213,7 +1213,7 @@ export default function Roster() {
|
||||
formData: {
|
||||
employeeId: certEmployee.id,
|
||||
employeeName: certEmployee.name,
|
||||
idCardNumber: certEmployee.idCardMasked || '',
|
||||
idCardNumber: certEmployee.idCardNumber || '',
|
||||
position: certEmployee.position || '',
|
||||
monthlyIncome: certEmployee.monthlySalary ? `¥${certEmployee.monthlySalary}` : '',
|
||||
purpose: certPurpose || '通用',
|
||||
|
||||
@@ -18,7 +18,7 @@ interface EmployeeSummary {
|
||||
phone?: string
|
||||
email?: string
|
||||
city?: string
|
||||
idCardMasked?: string
|
||||
idCardNumber?: string
|
||||
probationInfo?: {
|
||||
isProbation: boolean
|
||||
isExpiring: boolean
|
||||
@@ -175,8 +175,8 @@ export default function EmployeeProfileShell({
|
||||
<MapPin className="w-3 h-3" />{profile.city}
|
||||
</span>
|
||||
)}
|
||||
{profile.idCardMasked && (
|
||||
<span className="font-mono">{profile.idCardMasked}</span>
|
||||
{profile.idCardNumber && (
|
||||
<span className="font-mono">{profile.idCardNumber}</span>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -210,7 +210,7 @@ export default function CommercialInsuranceTab() {
|
||||
<tr key={e.id || e.employeeId} className="border-b last:border-0 hover:bg-gray-50">
|
||||
<td className="py-2 font-medium">{e.name}</td>
|
||||
<td className="py-2 text-gray-500">{e.department}</td>
|
||||
<td className="py-2 text-gray-400 font-mono text-xs">{e.idCardMasked || '—'}</td>
|
||||
<td className="py-2 text-gray-400 font-mono text-xs">{e.idCardNumber || '—'}</td>
|
||||
<td className="py-2 text-right">¥{fmt(e.premium || 0)}</td>
|
||||
<td className="py-2 text-gray-500 text-xs">{e.effectiveFrom || '—'}</td>
|
||||
<td className="py-2">
|
||||
|
||||
@@ -34,7 +34,12 @@ export function MonthlyRow({ item: i, type, onCorrected }: { item: any; type: 'a
|
||||
return (
|
||||
<>
|
||||
<tr className="border-b last:border-0 hover:bg-gray-50 cursor-pointer" onClick={() => setExpanded(!expanded)}>
|
||||
<td className="py-1.5">{i.name} {d && <span className="text-gray-300 text-xs">{expanded ? '▾' : '▸'}</span>}</td>
|
||||
<td className="py-1.5">
|
||||
<div className="flex flex-col gap-0.5">
|
||||
<span>{i.name} {d && <span className="text-gray-300 text-xs">{expanded ? '▾' : '▸'}</span>}</span>
|
||||
{i.idCardNumber && <span className="text-gray-400 text-[11px] font-mono">{i.idCardNumber}</span>}
|
||||
</div>
|
||||
</td>
|
||||
<td className="py-1.5 text-gray-500">{i.department}</td>
|
||||
<td className="py-1.5"><span className={`px-2 py-0.5 rounded text-xs ${typeClass}`}>{typeLabel}</span></td>
|
||||
<td className="py-1.5 text-right">
|
||||
@@ -121,7 +126,12 @@ export function MonthlyHousingRow({ item: i, type, onCorrected }: { item: any; t
|
||||
|
||||
return (
|
||||
<tr className="border-b last:border-0 hover:bg-gray-50">
|
||||
<td className="py-1.5">{i.name}</td>
|
||||
<td className="py-1.5">
|
||||
<div className="flex flex-col gap-0.5">
|
||||
<span>{i.name}</span>
|
||||
{i.idCardNumber && <span className="text-gray-400 text-[11px] font-mono">{i.idCardNumber}</span>}
|
||||
</div>
|
||||
</td>
|
||||
<td className="py-1.5 text-gray-500">{i.department}</td>
|
||||
<td className="py-1.5"><span className={`px-2 py-0.5 rounded text-xs ${typeClass}`}>{typeLabel}</span></td>
|
||||
<td className="py-1.5 text-right">
|
||||
|
||||
Reference in New Issue
Block a user