fix: 修改审批流程显示格式为"审批人-姓名"或"抄送人-姓名"

- 添加 getNodeApproversNames 函数获取审批人姓名
- 添加 getNodeDisplayName 函数生成节点显示名称
- 更新审批流程和当前审批的显示逻辑

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
root
2026-02-26 00:14:11 +08:00
parent 40384d7f26
commit 4c48b01144
+30 -8
View File
@@ -244,12 +244,36 @@ export default function ApprovalDetail() {
approver: '审批人',
and_approve: '会签',
or_approve: '或签',
notify: '通知',
single_approve: '单人审批',
notify: '抄送人',
single_approve: '审批人',
}
return typeMap[nodeType] || nodeType
}
// 获取节点的审批人姓名
const getNodeApproversNames = (nodeId: number, nodeType: string): string => {
// 从审批记录中获取已审批的审批人姓名
const approverRecords = detail.records.filter(r => r.node_id === nodeId && r.action !== 'submit')
if (approverRecords.length > 0) {
return approverRecords.map(r => r.approver?.name).join('、')
}
// 对于通知节点,显示节点名称
if (nodeType === 'notify') {
return '待通知'
}
// 未审批的节点,显示节点名称
return '待审批'
}
// 获取节点显示名称(格式:审批人-姓名 或 抄送人-姓名)
const getNodeDisplayName = (node: any): string => {
const typeLabel = getNodeTypeName(node.type)
const approversNames = getNodeApproversNames(node.id, node.type)
return `${typeLabel}-${approversNames}`
}
// 获取当前审批人
const getCurrentApprovers = () => {
const currentNodeIds = detail.current_nodes || []
@@ -260,7 +284,8 @@ export default function ApprovalDetail() {
const node = nodes.find((n) => n.id === nodeId)
if (node) {
approvers.push({
name: node.name,
nodeId: node.id,
nodeType: node.type,
type: getNodeTypeName(node.type),
approvers: node.approvers,
})
@@ -313,8 +338,7 @@ export default function ApprovalDetail() {
<Card title="当前审批" className={styles.section}>
{currentApprovers.map((item, index) => (
<div key={index} className={styles.approverItem}>
<div className={styles.approverName}>{item.name}</div>
<div className={styles.approverType}>{item.type}</div>
<div className={styles.approverName}>{item.type}-{getNodeApproversNames(item.nodeId, item.nodeType)}</div>
</div>
))}
</Card>
@@ -369,9 +393,7 @@ export default function ApprovalDetail() {
{status === 'done' ? '✓' : index + 1}
</div>
<div className={styles.flowNodeContent}>
<div className={styles.flowNodeName}>{node.name}</div>
<div className={styles.flowNodeType}>
{getNodeTypeName(node.type)}
<div className={styles.flowNodeName}>{getNodeDisplayName(node)}</div>
</div>
</div>
</div>