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}>
|
<div className={styles.authTab__assessments}>
|
||||||
<h3>月度考核记录</h3>
|
<h3>月度考核记录</h3>
|
||||||
{(() => {
|
{(() => {
|
||||||
// 只显示用户实际拥有且未撤销角色的考核记录
|
// 只显示用户实际拥有且未撤销角色的考核记录(按 authorization_id 匹配)
|
||||||
const activeRoleTypes = new Set(
|
const activeRoleIds = new Set(
|
||||||
authData.roles
|
authData.roles
|
||||||
.filter(r => r.status !== 'REVOKED')
|
.filter(r => r.status !== 'REVOKED')
|
||||||
.map(r => r.roleType)
|
.map(r => r.id)
|
||||||
);
|
);
|
||||||
const filteredAssessments = authData.assessments.filter(
|
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 ? (
|
return filteredAssessments.length === 0 ? (
|
||||||
<div className={styles.authTab__empty}>暂无考核记录</div>
|
<div className={styles.authTab__empty}>暂无考核记录</div>
|
||||||
) : (
|
) : (
|
||||||
|
|
@ -730,6 +736,7 @@ export default function UserDetailPage() {
|
||||||
<div className={styles.ledgerTable__header}>
|
<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>
|
<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}>
|
<div className={styles.ledgerTable__cell}>
|
||||||
{roleTypeLabels[assessment.roleType] || assessment.roleType}
|
{roleTypeLabels[assessment.roleType] || assessment.roleType}
|
||||||
</div>
|
</div>
|
||||||
|
<div className={styles.ledgerTable__cell}>
|
||||||
|
{roleIdToRegion.get(assessment.authorizationId) || getRegionName(assessment.regionCode)}
|
||||||
|
</div>
|
||||||
<div className={styles.ledgerTable__cell}>
|
<div className={styles.ledgerTable__cell}>
|
||||||
{formatNumber(assessment.monthlyCompleted)} / {formatNumber(assessment.monthlyTarget)}
|
{formatNumber(assessment.monthlyCompleted)} / {formatNumber(assessment.monthlyTarget)}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue