重新打开应用是否自动登录判断优化 #18

Merged
yangqiang merged 14 commits from yangjie into master 2024-10-11 14:15:18 +08:00
1 changed files with 67 additions and 16 deletions
Showing only changes of commit 55e0bbec39 - Show all commits

View File

@ -160,6 +160,7 @@ const Meeting: React.FC = () => {
const [noViewChatList, setNoViewChatList] = useState(0)
const [currentLookUserAccount, setCurrentLookUserAccount] = useState<any>('')
const [recorder, setRecorder] = useState<any>('')
const [_currentRequestSpeakType, setCurrentRequestSpeakType] = useState<'video' | 'audio' | ''>('')
const [_mediaStream, setMediaStream] = useState<any>('')
const [isShare, setIsShare] = useState<any>(null)
const [isSharePopConfirm, setIsSharePopConfirm] = useState<any>(false)
@ -413,13 +414,23 @@ const Meeting: React.FC = () => {
}
} else {
if (item.user.uid === userInfo.uid) {
if (!item.user.isRoomManage) {
if (!item.user.isRoomManager) {
await agora.allLeaveChannelEx()
}
message.success(`管理员${item.user.isRoomManager ? '设置' : '取消'}您为发言人`)
await agora.updateChannelMediaOptions(item.user.isRoomManager)
await postOpenMicrApi(item.user.isRoomManager, userInfo.uid, false)
await postOpenCameraApi(item.user.isRoomManager, userInfo.uid)
setCurrentRequestSpeakType(res => {
if (res === 'video') {
postOpenCameraApi(item.user.isRoomManager, userInfo.uid)
} else if (res === 'audio') {
postOpenMicrApi(item.user.isRoomManager, userInfo.uid, false)
} else {
postOpenMicrApi(item.user.isRoomManager, userInfo.uid, false)
postOpenCameraApi(item.user.isRoomManager, userInfo.uid)
}
return ''
})
await stopScreenCapture()
} else {
message.success(`管理员${item.user.isRoomManager ? '设置' : '取消'}${item.user.userName}为发言人`)
@ -602,6 +613,7 @@ const Meeting: React.FC = () => {
if (isClicked) {
timer = setTimeout(() => {
setIsClicked(false);
setCurrentRequestSpeakType('')
}, 10000);
}
@ -999,6 +1011,25 @@ const Meeting: React.FC = () => {
}
// 操作按钮
const changeStatusList = async (row: any, itemIndex: number, rowIndex: number): Promise<void> => {
function requestSpeak() {
confirm({
title: '提示',
icon: <ExclamationCircleFilled />,
content: `该操作需向管理员申请权限`,
centered: true,
okText: '申请',
cancelText: '取消',
async onOk() {
GetApplySpeak(state.channelId).then(res => {
if (res.code === 200) {
message.success('申请发言成功')
}
})
},
onCancel() {
}
})
}
const footerListTemplate = [...footerList]
setFooterListIndex({
itemIndex,
@ -1046,13 +1077,37 @@ const Meeting: React.FC = () => {
await postOpenMicr(false, user.uid)
break;
case '解除静音':
await postOpenMicr(true, user.uid)
await getUserRoomInfo().then(async (res) => {
if (res) {
await postOpenMicr(true, user.uid)
} else {
if (!isClicked) {
setCurrentRequestSpeakType('audio')
setIsClicked(true);
requestSpeak()
} else {
message.error('申请太频繁了,请稍后重试!');
}
}
})
break;
case '关闭视频':
await postOpenCamera(false, user.uid)
break;
case '开启视频':
await postOpenCamera(true, user.uid)
await getUserRoomInfo().then(async (res) => {
if (res) {
await postOpenCamera(true, user.uid)
} else {
if (!isClicked) {
setCurrentRequestSpeakType('video')
setIsClicked(true);
requestSpeak()
} else {
message.error('申请太频繁了,请稍后重试!');
}
}
})
break;
case '设置':
stupWizardRef.current.changeModal()
@ -1141,11 +1196,7 @@ const Meeting: React.FC = () => {
case '申请发言':
if (!isClicked) {
setIsClicked(true);
GetApplySpeak(state.channelId).then(res => {
if (res.code === 200) {
message.success('申请发言成功')
}
})
requestSpeak()
} else {
message.error('申请太频繁了,请稍后重试!');
}
@ -2200,12 +2251,12 @@ const Meeting: React.FC = () => {
</div>
</Popover>
case '申请发言':
if (!role.ID.includes(user.roleId)) {
return <div className='drag' onClick={() => changeStatusList(row, itemIndex, rowIndex)} key={rowIndex}>
<img src={row.active ? row.iconActive : row.icon} alt="" />
<span>{row.title}</span>
</div>
}
// if (!role.ID.includes(user.roleId)) {
// return <div className='drag' onClick={() => changeStatusList(row, itemIndex, rowIndex)} key={rowIndex}>
// <img src={row.active ? row.iconActive : row.icon} alt="" />
// <span>{row.title}</span>
// </div>
// }
return null
case '结束发言':
if (!role.ID.includes(user.roleId)) {