fix(admin-web): 月度考核按授权ID过滤并显示区域名称
- 改用 authorization_id 匹配考核记录,而非 roleType - 同类型但已撤销的角色考核不再显示 - 新增"区域"列显示角色对应的区域名称(如胜门、广州) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
c9626ac82b
commit
6a58a55997
|
|
@ -714,15 +714,21 @@ export default function UserDetailPage() {
|
|||
<div className={styles.authTab__assessments}>
|
||||
<h3>月度考核记录</h3>
|
||||
{(() => {
|
||||
// 只显示用户实际拥有且未撤销角色的考核记录
|
||||
const activeRoleTypes = new Set(
|
||||
// 只显示用户实际拥有且未撤销角色的考核记录(按 authorization_id 匹配)
|
||||
const activeRoleIds = new Set(
|
||||
authData.roles
|
||||
.filter(r => r.status !== 'REVOKED')
|
||||
.map(r => r.roleType)
|
||||
.map(r => r.id)
|
||||
);
|
||||
const filteredAssessments = authData.assessments.filter(
|
||||
a => activeRoleTypes.has(a.roleType)
|
||||
a => activeRoleIds.has(a.authorizationId)
|
||||
);
|
||||
|
||||
// 创建角色ID到区域名称的映射,用于显示角色的区域信息
|
||||
const roleIdToRegion = new Map(
|
||||
authData.roles.map(r => [r.id, r.regionName])
|
||||
);
|
||||
|
||||
return filteredAssessments.length === 0 ? (
|
||||
<div className={styles.authTab__empty}>暂无考核记录</div>
|
||||
) : (
|
||||
|
|
@ -730,6 +736,7 @@ export default function UserDetailPage() {
|
|||
<div className={styles.ledgerTable__header}>
|
||||
<div className={styles.ledgerTable__cell}>考核月份</div>
|
||||
<div className={styles.ledgerTable__cell}>角色</div>
|
||||
<div className={styles.ledgerTable__cell}>区域</div>
|
||||
<div className={styles.ledgerTable__cell}>月度目标/完成</div>
|
||||
<div className={styles.ledgerTable__cell}>累计目标/完成</div>
|
||||
<div className={styles.ledgerTable__cell}>结果</div>
|
||||
|
|
@ -741,6 +748,9 @@ export default function UserDetailPage() {
|
|||
<div className={styles.ledgerTable__cell}>
|
||||
{roleTypeLabels[assessment.roleType] || assessment.roleType}
|
||||
</div>
|
||||
<div className={styles.ledgerTable__cell}>
|
||||
{roleIdToRegion.get(assessment.authorizationId) || getRegionName(assessment.regionCode)}
|
||||
</div>
|
||||
<div className={styles.ledgerTable__cell}>
|
||||
{formatNumber(assessment.monthlyCompleted)} / {formatNumber(assessment.monthlyTarget)}
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue