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: '审批人', approver: '审批人',
and_approve: '会签', and_approve: '会签',
or_approve: '或签', or_approve: '或签',
notify: '通知', notify: '抄送人',
single_approve: '单人审批', single_approve: '审批人',
} }
return typeMap[nodeType] || nodeType 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 getCurrentApprovers = () => {
const currentNodeIds = detail.current_nodes || [] const currentNodeIds = detail.current_nodes || []
@@ -260,7 +284,8 @@ export default function ApprovalDetail() {
const node = nodes.find((n) => n.id === nodeId) const node = nodes.find((n) => n.id === nodeId)
if (node) { if (node) {
approvers.push({ approvers.push({
name: node.name, nodeId: node.id,
nodeType: node.type,
type: getNodeTypeName(node.type), type: getNodeTypeName(node.type),
approvers: node.approvers, approvers: node.approvers,
}) })
@@ -313,8 +338,7 @@ export default function ApprovalDetail() {
<Card title="当前审批" className={styles.section}> <Card title="当前审批" className={styles.section}>
{currentApprovers.map((item, index) => ( {currentApprovers.map((item, index) => (
<div key={index} className={styles.approverItem}> <div key={index} className={styles.approverItem}>
<div className={styles.approverName}>{item.name}</div> <div className={styles.approverName}>{item.type}-{getNodeApproversNames(item.nodeId, item.nodeType)}</div>
<div className={styles.approverType}>{item.type}</div>
</div> </div>
))} ))}
</Card> </Card>
@@ -369,9 +393,7 @@ export default function ApprovalDetail() {
{status === 'done' ? '✓' : index + 1} {status === 'done' ? '✓' : index + 1}
</div> </div>
<div className={styles.flowNodeContent}> <div className={styles.flowNodeContent}>
<div className={styles.flowNodeName}>{node.name}</div> <div className={styles.flowNodeName}>{getNodeDisplayName(node)}</div>
<div className={styles.flowNodeType}>
{getNodeTypeName(node.type)}
</div> </div>
</div> </div>
</div> </div>