From 91c3bce0af7a488507d976b6c5369ffe0e014c47 Mon Sep 17 00:00:00 2001 From: duoaohui <928970622@qq.com> Date: Sat, 23 May 2026 22:00:29 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=86=E9=A2=91=E4=BC=9A=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/pages/cloud-law/video-call.vue | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/frontend/src/pages/cloud-law/video-call.vue b/frontend/src/pages/cloud-law/video-call.vue index 9ff1e26..4e8ae22 100644 --- a/frontend/src/pages/cloud-law/video-call.vue +++ b/frontend/src/pages/cloud-law/video-call.vue @@ -494,9 +494,18 @@ const hangup = async () => { if (leaving.value) return leaving.value = true try { - await meetingStore.leave() + // 云律视频咨询:发起人(小程序端用户)在 CreateRoomForInternal 时被加成 host, + // 用户挂机即视为整个咨询结束,直接 endMeeting 让另一端(律师 iframe)也收到 room.ended 退出。 + // 非 host 兜底走 leave,避免异常会议状态下挂机被卡住。 + if (meetingStore.isHost) { + await meetingStore.endMeeting() + } else { + await meetingStore.leave() + } } catch (err) { - console.warn('[CloudLawVideoCall] leave failed', err) + console.warn('[CloudLawVideoCall] hangup failed', err) + // endMeeting 失败时兜底 leave,至少自己先退出 + try { await meetingStore.leave() } catch (leaveErr) { console.warn('[CloudLawVideoCall] fallback leave failed', leaveErr) } } finally { ended.value = true leaving.value = false