fix: 修复审批详情显示实际审批人
- 优先使用后端返回的 actual_approvers 和 actual_cc_users 字段 - 如果后端没有返回完整用户信息,则从 form_data 获取并显示用户名或 ID Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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}`)
|
||||
}
|
||||
}
|
||||
|
||||
// 如果已审批,优先显示已审批的人员名称
|
||||
|
||||
Reference in New Issue
Block a user