This commit is contained in:
parent
c3a4f06c51
commit
2a82ab22ee
|
|
@ -15,7 +15,6 @@ import { onInvoke, onSignalr, offSignalr, onStart } from '@/utils/package/signal
|
||||||
import dayjs from 'dayjs';
|
import dayjs from 'dayjs';
|
||||||
import durationPlugin from 'dayjs/plugin/duration';
|
import durationPlugin from 'dayjs/plugin/duration';
|
||||||
import { VideoSourceType } from 'agora-electron-sdk';
|
import { VideoSourceType } from 'agora-electron-sdk';
|
||||||
import { GetUserList } from '@/api/Home/User';
|
|
||||||
import Avatar from '@/components/Avatar';
|
import Avatar from '@/components/Avatar';
|
||||||
import SharedFilesModel from '@/components/SharedFilesModel';
|
import SharedFilesModel from '@/components/SharedFilesModel';
|
||||||
import StupWizard from '@/components/StupWizard';
|
import StupWizard from '@/components/StupWizard';
|
||||||
|
|
@ -104,7 +103,6 @@ const Meeting: React.FC = () => {
|
||||||
rowIndex: 0,
|
rowIndex: 0,
|
||||||
});
|
});
|
||||||
const [roomUserList, setRoomUserList] = useState<any>([])
|
const [roomUserList, setRoomUserList] = useState<any>([])
|
||||||
const [allUserList, setAllUserList] = useState<any>([])
|
|
||||||
const [chatList, setChatList] = useState<any>([])
|
const [chatList, setChatList] = useState<any>([])
|
||||||
const [currentVideoId, setCurrentVideoId] = useState('')
|
const [currentVideoId, setCurrentVideoId] = useState('')
|
||||||
let [currentSeconds, setCurrentSeconds] = useState(0)
|
let [currentSeconds, setCurrentSeconds] = useState(0)
|
||||||
|
|
@ -230,7 +228,7 @@ const Meeting: React.FC = () => {
|
||||||
}, [(navigator as any).connection.effectiveType]);
|
}, [(navigator as any).connection.effectiveType]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
let currentVideoUserItem = allUserList.find((item: any) => item.uid === currentVideoId || item.screenShareId === currentVideoId)
|
let currentVideoUserItem = roomUserList.find((item: any) => item.uid === currentVideoId || item.screenShareId === currentVideoId)
|
||||||
if (currentVideoUserItem) {
|
if (currentVideoUserItem) {
|
||||||
setCurrentLookUserAccount(currentVideoUserItem)
|
setCurrentLookUserAccount(currentVideoUserItem)
|
||||||
}
|
}
|
||||||
|
|
@ -362,50 +360,35 @@ const Meeting: React.FC = () => {
|
||||||
case 'OperMicr':
|
case 'OperMicr':
|
||||||
case 'OperCamera':
|
case 'OperCamera':
|
||||||
case 'ManagerRefresh':
|
case 'ManagerRefresh':
|
||||||
setAllUserList((res: any) => {
|
setRoomUserList((res: any) => {
|
||||||
let userItem = res.find((row: any) => row.uid === item.user.uid)
|
let userItem = res.find((row: any) => row.uid === item.user.uid)
|
||||||
if (userItem) {
|
if (userItem) {
|
||||||
for (const key in item.user) {
|
for (const key in item.user) {
|
||||||
userItem[key] = item.user[key];
|
userItem[key] = item.user[key];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let inRoomList = res.filter((row: any) => row.isRoom);
|
setRoomUserList(res)
|
||||||
setRoomUserList(inRoomList)
|
|
||||||
return res
|
return res
|
||||||
})
|
})
|
||||||
break;
|
break;
|
||||||
case 'UserJoined':
|
case 'UserJoined':
|
||||||
setAllUserList((res: any) => {
|
setRoomUserList((res: any) => [...res, item.user])
|
||||||
let userItem = res.find((row: any) => row.uid === item.user.uid)
|
|
||||||
if (userItem) {
|
|
||||||
userItem.isRoom = true
|
|
||||||
for (const key in item.user) {
|
|
||||||
userItem[key] = item.user[key];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let inRoomList = res.filter((row: any) => row.isRoom);
|
|
||||||
setRoomUserList(inRoomList)
|
|
||||||
return res
|
|
||||||
})
|
|
||||||
break;
|
break;
|
||||||
case 'UserLeave':
|
case 'UserLeave':
|
||||||
setAllUserList((res: any) => {
|
setRoomUserList((res: any) => {
|
||||||
let userItem = res.find((row: any) => row.uid === item.uid)
|
let userItemIndex = res.findIndex((row: any) => row.uid === item.uid)
|
||||||
if (userItem) {
|
res.splice(userItemIndex, 1)
|
||||||
userItem.isRoom = false
|
|
||||||
}
|
|
||||||
let inRoomList = res.filter((row: any) => row.isRoom);
|
|
||||||
setRoomUserList(inRoomList)
|
|
||||||
return res
|
return res
|
||||||
})
|
})
|
||||||
break;
|
break;
|
||||||
case 'OperAllMicr':
|
case 'OperAllMicr':
|
||||||
setAllUserList((res: any) => {
|
setRoomUserList((res: any) => {
|
||||||
res.forEach((row: any) => {
|
res.forEach((row: any) => {
|
||||||
row.enableMicr = item.enableMicr
|
if (row.uid !== userInfo.uid) {
|
||||||
|
row.enableMicr = item.enableMicr
|
||||||
|
}
|
||||||
})
|
})
|
||||||
let inRoomList = res.filter((row: any) => row.isRoom);
|
setRoomUserList(res)
|
||||||
setRoomUserList(inRoomList)
|
|
||||||
return res
|
return res
|
||||||
})
|
})
|
||||||
break;
|
break;
|
||||||
|
|
@ -672,32 +655,13 @@ const Meeting: React.FC = () => {
|
||||||
|
|
||||||
// 获取房间用户
|
// 获取房间用户
|
||||||
const getRoomUser = async (callback?: Function): Promise<void> => {
|
const getRoomUser = async (callback?: Function): Promise<void> => {
|
||||||
Promise.all([
|
GetRoomUser(state.channelId).then(res => {
|
||||||
GetRoomUser(state.channelId),
|
if (res.code === 200) {
|
||||||
GetUserList({
|
res.data.forEach((item: any) => {
|
||||||
pageIndex: 1,
|
|
||||||
pageSize: 9999,
|
|
||||||
searchKeywod: '',
|
|
||||||
isOnline: true,
|
|
||||||
})
|
|
||||||
]).then(res => {
|
|
||||||
if (res[0].code === 200 && res[1].code === 200) {
|
|
||||||
res[0].data.forEach((item: any) => {
|
|
||||||
item.isShow = true;
|
item.isShow = true;
|
||||||
})
|
})
|
||||||
setRoomUserList(res[0].data)
|
setRoomUserList(res.data)
|
||||||
res[1].data.items.forEach((item: any) => {
|
callback && callback(res.data)
|
||||||
item.uid = item.id;
|
|
||||||
const itemUser = res[0].data.find((row: any) => row.uid === item.id)
|
|
||||||
item.isRoom = itemUser ? true : false;
|
|
||||||
for (const itemUserKey in itemUser) {
|
|
||||||
item[itemUserKey] = itemUser[itemUserKey];
|
|
||||||
}
|
|
||||||
});
|
|
||||||
setAllUserList(res[1].data.items);
|
|
||||||
if (callback) {
|
|
||||||
callback(res[1].data.items)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
@ -875,33 +839,30 @@ const Meeting: React.FC = () => {
|
||||||
<div className={styles.meetingContentBody}>
|
<div className={styles.meetingContentBody}>
|
||||||
<div className={`${styles.meetingContentBodyLeft} drag`}>
|
<div className={`${styles.meetingContentBodyLeft} drag`}>
|
||||||
<div className={getMeetingContentBodyLeftModeClass()} >
|
<div className={getMeetingContentBodyLeftModeClass()} >
|
||||||
{allUserList.map((item: any, index: number) => {
|
{roomUserList.map((item: any, index: number) => {
|
||||||
return (
|
return <div
|
||||||
item.isRoom ?
|
className={`${styles.meetingContentSwiperCard}`}
|
||||||
<div
|
key={index}
|
||||||
className={`${styles.meetingContentSwiperCard}`}
|
onClick={() => {
|
||||||
key={index}
|
setCurrentVideoId(item.uid)
|
||||||
onClick={() => {
|
if (String(isShare) === item.screenShareId) {
|
||||||
setCurrentVideoId(item.uid)
|
renderVideo(item.screenShareId)
|
||||||
if (String(isShare) === item.screenShareId) {
|
} else {
|
||||||
renderVideo(item.screenShareId)
|
renderVideo(item.uid)
|
||||||
} else {
|
}
|
||||||
renderVideo(item.uid)
|
}}
|
||||||
}
|
>
|
||||||
}}
|
<div className={`${styles.meetingContentSwiperCardVdeio} ${currentVideoId === item.uid ? styles.active : ''}`} id={`video-${item.uid}`}>
|
||||||
>
|
<div className={styles.meetingContentSwiperCardVdeioLoading}>
|
||||||
<div className={`${styles.meetingContentSwiperCardVdeio} ${currentVideoId === item.uid ? styles.active : ''}`} id={`video-${item.uid}`}>
|
<Avatar name={item.userName} />
|
||||||
<div className={styles.meetingContentSwiperCardVdeioLoading}>
|
</div>
|
||||||
<Avatar name={item.userName} />
|
</div>
|
||||||
</div>
|
{meetingContentUser(item)}
|
||||||
</div>
|
{item.enableCamera ? null : meetingContentError(currentVideoId, item)}
|
||||||
{meetingContentUser(item)}
|
{String(isShare) === item.screenShareId ? <div className={styles.meetingContentSwiperCardShare}>
|
||||||
{item.enableCamera ? null : meetingContentError(currentVideoId, item)}
|
屏幕分享中
|
||||||
{String(isShare) === item.screenShareId ? <div className={styles.meetingContentSwiperCardShare}>
|
</div> : null}
|
||||||
屏幕分享中
|
</div>
|
||||||
</div> : null}
|
|
||||||
</div> : null
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
)}
|
)}
|
||||||
{currentLookUserStatus === 1 && currentLookUserAccount ?
|
{currentLookUserStatus === 1 && currentLookUserAccount ?
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue