{detail.flow.nodes.map((node, index) => {
const isCurrent = detail.current_nodes?.includes(node.id)
- const record = detail.records.find((r) => r.node_id === node.id)
+ const records = detail.records.filter(r => r.node_id === node.id && r.action !== 'submit')
+ const hasApproved = records.length > 0
- let status: 'pending' | 'done' = 'pending'
- if (record) {
- status = 'done'
+ // 判断节点状态
+ let nodeStatus: 'pending' | 'done' = 'pending'
+ if (hasApproved) {
+ nodeStatus = 'done'
} else if (!isCurrent && index > 0) {
- // 检查前面的节点是否完成
const prevNode = detail.flow.nodes[index - 1]
const prevRecord = detail.records.find((r) => r.node_id === prevNode.id)
- if (prevRecord) status = 'done'
+ if (prevRecord) nodeStatus = 'done'
+ }
+
+ // 获取节点类型标签
+ const typeLabel = node.type === 'notify' ? '抄送人' : '审批人'
+
+ // 获取显示名称和审批时间
+ let displayName = node.name || '待定'
+ let approvalTime = ''
+
+ if (hasApproved && records[0]) {
+ displayName = records[0].approver?.name || displayName
+ approvalTime = formatTime(records[0].created_at)
}
return (
-
-
- {status === 'done' ? '✓' : index + 1}
+
+
+ {nodeStatus === 'done' ? '✓' : index + 1}
-
-
{getNodeDisplayName(node)}
+
+
+ {typeLabel}
+ {displayName}
+
+ {approvalTime && (
+
{approvalTime}
+ )}
+ {hasApproved && records[0]?.comment && (
+
备注: {records[0].comment}
+ )}
)