From 693e7ed1f7a84aebacd75266dee90da890b32e76 Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Wed, 21 Aug 2024 13:46:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/page/Meeting/index.tsx | 47 +++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/src/page/Meeting/index.tsx b/src/page/Meeting/index.tsx index 7af7831..5073a8d 100644 --- a/src/page/Meeting/index.tsx +++ b/src/page/Meeting/index.tsx @@ -464,29 +464,9 @@ const Meeting: React.FC = () => { item.isShow = true; } }); - // RefreshVideoView(res) return res }) } - // 刷新视图 - const RefreshVideoView = async (list: any): Promise => { - list.forEach(async (item: any) => { - if (item.uid === userInfo.uid) { - await agora.setupLocalVideo({ - uid: Number(item.uid), - view: document.getElementById(`video-${item.uid}`), - channelId: state.channelId, - sourceType: VideoSourceType.VideoSourceCameraPrimary, - }) - } else { - await agora.setupRemoteVideo({ - uid: Number(item.uid), - view: document.getElementById(`video-${item.uid}`), - channelId: state.channelId, - }) - } - }); - } // 替换数据 const setAllUserListData = async (key: string, item: any, callBack?: Function): Promise => { switch (key) { @@ -507,12 +487,26 @@ const Meeting: React.FC = () => { }) break; case 'UserJoined': - setRoomUserList((res: any) => [...res, item.user]) + setRoomUserList((res: any) => { + let userItem = res.find((row: any) => row.uid === item.user.uid) + if (userItem) { + for (const key in item.user) { + userItem[key] = item.user[key]; + } + userItem.isRoom = true; + return [...res] + } else { + item.user.isRoom = true; + return [...res, item.user] + } + }) break; case 'UserLeave': setRoomUserList((res: any) => { - let userItemIndex = res.findIndex((row: any) => row.uid === item.uid) - res.splice(userItemIndex, 1) + let userItem = res.find((row: any) => row.uid === item.uid) + if (userItem) { + userItem.isRoom = false + } return res }) break; @@ -815,6 +809,7 @@ const Meeting: React.FC = () => { if (res.code === 200) { res.data.forEach((item: any) => { item.isShow = true; + item.isRoom = true; }) setRoomUserList(res.data) getUserRoomInfo().then(async (res) => { @@ -1109,7 +1104,7 @@ const Meeting: React.FC = () => {
{roomUserList.map((item: any, index: number) => { - return (index <= 19 ?
{
{roomUserList.map((item: any, index: number) => { return ( - item.isShow ?
+ item.isShow && item.isRoom ?
@@ -1564,7 +1559,7 @@ const Meeting: React.FC = () => {
changeStatusList(row, itemIndex, rowIndex)} key={rowIndex}> {row.title} - {row.title === '成员列表' ?
{roomUserList.length}
: null} + {row.title === '成员列表' ?
{roomUserList.filter((item: any) => item.isRoom).length}
: null} {row.title === '聊天' && noViewChatList > 0 ?