diff --git a/main.js b/main.js index 1186bd0..b9eb67a 100644 --- a/main.js +++ b/main.js @@ -203,7 +203,7 @@ app.on('ready', () => { break; case 'joinChannel': // 设置某个人的设备列表 - await connection.invoke(str, data.roomNum, data.enableMicr, data.enableCamera) + await connection.invoke(str, data.roomNum, data.enableMicr, data.enableCamera, data.isRoomManager || false) break; case 'levelChannel': // 设置某个人的设备列表 diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 6987d97..86774d1 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -191,6 +191,7 @@ const Meeting: React.FC = () => { let userInfo = JSON.parse(storage.getItem('user') as string) const msgTips = '您不是管理员或发言人,无法开启此功能!' const channel = new BroadcastChannel('meeting_channel'); + let storeDevice: any; useEffect(() => { let time: NodeJS.Timeout; setUser(userInfo) @@ -1736,22 +1737,20 @@ const Meeting: React.FC = () => { break; case 'reconnect': if (e.value == true) { - await window.electron.onInvoke('joinChannel', { - roomNum: state.channelId, - enableMicr: !footerList[0][0].active, - enableCamera: !footerList[0][1].active - }) message.success('网络已连接。') meetingDisconnectedRef.current.changeModal(false) - setRoomUserList((res: any) => { + async function setUserStatus(res: any) { let userItem = res.find((item: any) => item.uid === userInfo.uid) + await window.electron.onInvoke('joinChannel', { + roomNum: state.channelId, + enableMicr: !storeDevice[0][0].active, + enableCamera: !storeDevice[0][1].active, + isRoomManager: userItem.isRoomManager + }) if (userItem.isRoomManager) { - stopScreenCapture() - postRoomManager({ - roomId: state.roomId, - roomNum: state.channelId, - userId: userItem.uid - }) + await stopScreenCapture() + await postOpenMicr(!storeDevice[0][0].active, userInfo.uid) + await postOpenCamera(!storeDevice[0][1].active, userInfo.uid) allUserLook(userItem.uid, userItem.userName) } else { setIsNetworkDisconnected(bool => { @@ -1767,8 +1766,13 @@ const Meeting: React.FC = () => { return bool }) } + } + setRoomUserList((res: any) => { + setUserStatus(res) return res }) + } else { + storeDevice = JSON.parse(JSON.stringify(footerList)) } break; }