fix: 修复审批详情显示实际审批人

- 优先使用后端返回的 actual_approvers 和 actual_cc_users 字段
- 如果后端没有返回完整用户信息,则从 form_data 获取并显示用户名或 ID

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
root
2026-03-01 10:23:41 +08:00
parent 78a1921f06
commit 95375d9432
+23 -9
View File
@@ -503,11 +503,15 @@ export default function ApprovalDetail() {
for (const nodeId of currentNodeIds) {
const node = nodes.find((n) => n.id === nodeId)
if (node) {
// 优先使用 actual_approvers(包含完整用户信息)
const actualApprovers = (node as any).actual_approvers || []
const approverList = actualApprovers.length > 0 ? actualApprovers : node.approvers
approvers.push({
nodeId: node.id,
nodeType: node.type,
type: getNodeTypeName(node.type),
approvers: node.approvers,
approvers: approverList,
})
}
}
@@ -610,18 +614,28 @@ export default function ApprovalDetail() {
const typeLabel = node.type === 'notify' ? '抄送人' : '审批人'
const typeClass = node.type === 'notify' ? styles.typeNotify : styles.typeApprover
// 从 form_data 获取实际选择的审批人/抄送人列表
const formDataApprovers = detail.form_data?.approvers || []
const formDataCcUsers = detail.form_data?.cc_users || []
// 优先使用 actual_approvers 和 actual_cc_users(包含完整用户信息)
// 如果没有,则从 form_data 获取并转换为用户名
const actualApprovers = (node as any).actual_approvers || []
const actualCcUsers = (node as any).actual_cc_users || []
// 根据节点类型获取显示名称列表
let displayNames: string[] = []
if (node.type === 'notify') {
// 抄送节点:显示 form_data 中的抄送人
displayNames = formDataCcUsers.map((u: any) => typeof u === 'object' ? u.name : u)
// 抄送节点:显示 actual_cc_users 或 form_data 中的抄送人
if (actualCcUsers.length > 0) {
displayNames = actualCcUsers.map((u: any) => u.name)
} else {
const formDataCcUsers = detail.form_data?.cc_users || []
displayNames = formDataCcUsers.map((u: any) => typeof u === 'object' ? u.name : `用户${u}`)
}
} else {
// 审批节点:显示 form_data 中的审批人
displayNames = formDataApprovers.map((u: any) => typeof u === 'object' ? u.name : u)
// 审批节点:显示 actual_approvers 或 form_data 中的审批人
if (actualApprovers.length > 0) {
displayNames = actualApprovers.map((u: any) => u.name)
} else {
const formDataApprovers = detail.form_data?.approvers || []
displayNames = formDataApprovers.map((u: any) => typeof u === 'object' ? u.name : `用户${u}`)
}
}
// 如果已审批,优先显示已审批的人员名称