From 95375d9432d11c782f8528bf4e645412b407254b Mon Sep 17 00:00:00 2001 From: root Date: Sun, 1 Mar 2026 10:23:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E6=98=BE=E7=A4=BA=E5=AE=9E=E9=99=85=E5=AE=A1?= =?UTF-8?q?=E6=89=B9=E4=BA=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 优先使用后端返回的 actual_approvers 和 actual_cc_users 字段 - 如果后端没有返回完整用户信息,则从 form_data 获取并显示用户名或 ID Co-Authored-By: Claude Opus 4.6 --- frontend/src/pages/approval/detail.tsx | 32 ++++++++++++++++++-------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/frontend/src/pages/approval/detail.tsx b/frontend/src/pages/approval/detail.tsx index 6218b1b..0e89091 100644 --- a/frontend/src/pages/approval/detail.tsx +++ b/frontend/src/pages/approval/detail.tsx @@ -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}`) + } } // 如果已审批,优先显示已审批的人员名称