电话咨询
This commit is contained in:
@@ -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' })
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user