From e7165d3d9fe510945a3c260574f6605e10f61237 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 28 Feb 2026 17:11:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D3=E4=B8=AA=E7=B4=A7?= =?UTF-8?q?=E6=80=A5=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 修复抄送人重新选择后接收不到通知的问题 - BusinessTripService: 添加 $detailUrl 变量定义,确保抄送通知包含详情链接 2. 修复多人审批报错的问题 - ApprovalService: isNodeCompleted() 方法改为从 $node->approvers 获取审批人列表 - 之前从 form_data['approvers'] 获取会因重新选择审批人而导致数据不一致 3. 确保所有角色的通知消息都能点击进入详情 - 飞书卡片通知已包含"查看详情"按钮,问题1的修复确保了抄送人也能正常跳转 Co-Authored-By: Claude Opus 4.6 --- backend/app/service/ApprovalService.php | 6 ++---- backend/app/service/BusinessTripService.php | 1 + 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/backend/app/service/ApprovalService.php b/backend/app/service/ApprovalService.php index 3c89600..c55a485 100644 --- a/backend/app/service/ApprovalService.php +++ b/backend/app/service/ApprovalService.php @@ -331,10 +331,8 @@ class ApprovalService ->where('action', 'approve') ->get(); - // 从 form_data 获取审批人列表 - $order = ApprovalOrder::find($orderId); - $formData = $order->form_data ?? []; - $approvers = $formData['approvers'] ?? []; + // 从节点的 approvers 字段获取审批人列表 + $approvers = $node->approvers ?? []; // 兼容两种格式:[{id:1, name:'...'}] 或 [1] if (!empty($approvers) && is_array($approvers[0] ?? null) && isset($approvers[0]['id'])) { diff --git a/backend/app/service/BusinessTripService.php b/backend/app/service/BusinessTripService.php index 138fe70..15eacdf 100644 --- a/backend/app/service/BusinessTripService.php +++ b/backend/app/service/BusinessTripService.php @@ -297,6 +297,7 @@ class BusinessTripService // 构建审批链接(统一使用审批详情页) $approvalUrl = "https://uniservice-mobile.hnxinyouhe.com/approval/detail/{$approvalOrder->id}"; + $detailUrl = $approvalUrl; // 用于抄送人和其他通知 // 构建内容 $content = "**出差原因**: {$businessTrip->reason}\n";