fix: 修改审批流程显示格式为"审批人-姓名"或"抄送人-姓名"
- 添加 getNodeApproversNames 函数获取审批人姓名 - 添加 getNodeDisplayName 函数生成节点显示名称 - 更新审批流程和当前审批的显示逻辑 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user