电话咨询

This commit is contained in:
duoaohui
2026-06-04 12:23:14 +08:00
parent 6727259e8b
commit 3b51aba8ec
8 changed files with 172 additions and 48 deletions

View File

@@ -739,15 +739,21 @@ const onLeaveClick = () => { leaveDialogVisible.value = true }
const confirmLeaveSelf = async () => {
leaveDialogVisible.value = false
let failed = false
try {
await meetingStore.leave()
} catch (err) {
failed = true
uni.showToast({ title: err?.message || '操作失败', icon: 'none' })
} finally {
redirectHome()
leaveAndExit(failed ? '' : '已离开会议')
}
}
const confirmEndOrLeave = async () => {
leaveDialogVisible.value = false
const tip = isHost.value ? '会议已结束' : '已离开会议'
let failed = false
try {
if (isHost.value) {
await meetingStore.endMeeting()
@@ -757,13 +763,61 @@ const confirmEndOrLeave = async () => {
await meetingStore.leave()
}
} catch (err) {
failed = true
uni.showToast({ title: err?.message || '操作失败', icon: 'none' })
} finally {
redirectHome()
leaveAndExit(failed ? '' : tip)
}
}
// 是否运行在云律小程序 web-view 内SSO 进入时打的标记)
const isCloudLawEmbed = () => {
try {
return typeof window !== 'undefined'
&& !!window.sessionStorage
&& window.sessionStorage.getItem('echo_cloud_law_meeting_embed') === '1'
} catch (e) {
return false
}
}
const getMiniProgram = () => {
return typeof window !== 'undefined' && window.wx && window.wx.miniProgram ? window.wx.miniProgram : null
}
// 退出会议视频界面:先给提示,再退出。
// 在云律小程序 web-view 内 → 通知并 navigateBack 回到小程序(关闭会议 web-view 页);
// 普通浏览器/PC → 回 EchoChat 首页。
const leaveAndExit = (tip) => {
if (tip) {
uni.showToast({ title: tip, icon: 'none', duration: 1200 })
}
// 留一点时间让提示可见,再退出视频界面
setTimeout(redirectHome, tip ? 600 : 200)
}
let meetingExited = false
const redirectHome = () => {
if (meetingExited) return
const miniProgram = getMiniProgram()
if (isCloudLawEmbed() && miniProgram) {
meetingExited = true
try {
miniProgram.postMessage({ data: { type: 'cloudLawCallEnded', action: 'cloudLawCallEnded' } })
} catch (e) {}
try {
if (typeof miniProgram.navigateBack === 'function') {
miniProgram.navigateBack({ delta: 1 })
return
}
if (typeof miniProgram.redirectTo === 'function') {
miniProgram.redirectTo({ url: '/pages/index/home_page/home_page' })
return
}
} catch (e) {
meetingExited = false
}
}
uni.reLaunch({ url: '/pages/index/index' })
}