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