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: '审批人',
|
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>
|
||||||
|
|||||||
Reference in New Issue
Block a user