This commit is contained in:
parent
d3a19c53b6
commit
eee009ab9f
Binary file not shown.
|
After Width: | Height: | Size: 460 B |
Binary file not shown.
|
After Width: | Height: | Size: 395 B |
|
|
@ -139,7 +139,14 @@ const SharedFilesModel = forwardRef((props: any, ref: any) => {
|
||||||
DeleteRoomFile(selectedRowKeys).then(res => {
|
DeleteRoomFile(selectedRowKeys).then(res => {
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
message.success('删除成功!')
|
message.success('删除成功!')
|
||||||
|
if (fileList.pageIndex === 1) {
|
||||||
getRoomFile()
|
getRoomFile()
|
||||||
|
} else {
|
||||||
|
setFileList({
|
||||||
|
...fileList,
|
||||||
|
pageIndex: 1
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -28,8 +28,8 @@ const StupWizard = forwardRef((props: any, ref: any) => {
|
||||||
const [list, setList] = useState([
|
const [list, setList] = useState([
|
||||||
{
|
{
|
||||||
title: '通用',
|
title: '通用',
|
||||||
icon: ImageUrl.icon39,
|
icon: ImageUrl.icon45,
|
||||||
iconActive: ImageUrl.icon39Active,
|
iconActive: ImageUrl.icon45Active,
|
||||||
active: true,
|
active: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -476,7 +476,6 @@
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
border-bottom: 1px solid #23272E;
|
|
||||||
|
|
||||||
.meetingUserChatContentLeft {
|
.meetingUserChatContentLeft {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|
@ -542,6 +541,18 @@
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.meetingUserChatButton {
|
||||||
|
display: flex;
|
||||||
|
flex-shrink: 0;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
padding: 10px 20px;
|
||||||
|
box-sizing: border-box;
|
||||||
|
|
||||||
|
>button {
|
||||||
|
margin: 4px 4px 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.meetingUserChatInput {
|
.meetingUserChatInput {
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
padding: 10px 20px;
|
padding: 10px 20px;
|
||||||
|
|
@ -550,6 +561,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: flex-end;
|
align-items: flex-end;
|
||||||
|
border-top: 1px solid #23272E;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -122,6 +122,12 @@ const Meeting: React.FC = () => {
|
||||||
const [isShareUser, setIsShareUser] = useState<any>(null)
|
const [isShareUser, setIsShareUser] = useState<any>(null)
|
||||||
const [currentLookUserStatus, setCurrentLookUserStatus] = useState<0 | 1 | 2 | 3 | 4>(1)
|
const [currentLookUserStatus, setCurrentLookUserStatus] = useState<0 | 1 | 2 | 3 | 4>(1)
|
||||||
const [clickCurrentLookUserStatus, setClickCurrentLookUserStatus] = useState<boolean>(true)
|
const [clickCurrentLookUserStatus, setClickCurrentLookUserStatus] = useState<boolean>(true)
|
||||||
|
const [commonlyChatList] = useState<any>([
|
||||||
|
'能听到我说话吗?',
|
||||||
|
'听得到',
|
||||||
|
'听不到',
|
||||||
|
'我要发言',
|
||||||
|
])
|
||||||
let userInfo = JSON.parse(storage.getItem('user') as string)
|
let userInfo = JSON.parse(storage.getItem('user') as string)
|
||||||
const msgTips = '您不是管理员或发言人,无法开启此功能!'
|
const msgTips = '您不是管理员或发言人,无法开启此功能!'
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
|
@ -740,16 +746,17 @@ const Meeting: React.FC = () => {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// 聊天发送
|
// 聊天发送
|
||||||
const sendMsg = (): void => {
|
const sendMsg = (text?: string): void => {
|
||||||
if (textMsg) {
|
let msg = text ? text : textMsg;
|
||||||
|
if (msg) {
|
||||||
onInvoke('sendChannelMsg', {
|
onInvoke('sendChannelMsg', {
|
||||||
roomNum: state.channelId,
|
roomNum: state.channelId,
|
||||||
msg: textMsg,
|
msg: msg,
|
||||||
})
|
})
|
||||||
setChatList((newChatList: any) => [...newChatList, {
|
setChatList((newChatList: any) => [...newChatList, {
|
||||||
uid: state.uid,
|
uid: state.uid,
|
||||||
userName: user.userName,
|
userName: user.userName,
|
||||||
message: textMsg,
|
message: msg,
|
||||||
}])
|
}])
|
||||||
setTextMsg('')
|
setTextMsg('')
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -980,13 +987,13 @@ const Meeting: React.FC = () => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{meetingContentUser(item)}
|
{meetingContentUser(item)}
|
||||||
{item.enableCamera ? null : meetingContentError(currentVideoId, item)}
|
{item.enableCamera ? null : meetingContentError(currentVideoId, item, item.roleId === '1' || item.isRoomManager)}
|
||||||
{String(isShare) === item.screenShareId ? <div className={styles.meetingContentSwiperCardShare}>
|
{String(isShare) === item.screenShareId ? <div className={styles.meetingContentSwiperCardShare}>
|
||||||
屏幕分享中
|
屏幕分享中
|
||||||
</div> : null}
|
</div> : null}
|
||||||
{user.roleId === '1' ? <Popover placement="bottom" title={''} content={
|
{user.roleId === '1' ? <Popover placement="bottom" title={''} content={
|
||||||
<div className={styles.meetingContentSwiperCardPopover}>
|
<div className={styles.meetingContentSwiperCardPopover}>
|
||||||
<Button
|
{item.isRoomManager || user.roleId === '1' ? <Button
|
||||||
type="primary"
|
type="primary"
|
||||||
className='m-ant-btn'
|
className='m-ant-btn'
|
||||||
size={'small'}
|
size={'small'}
|
||||||
|
|
@ -994,7 +1001,7 @@ const Meeting: React.FC = () => {
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
setAllUserLook(item)
|
setAllUserLook(item)
|
||||||
}}
|
}}
|
||||||
>全员看Ta</Button>
|
>全员看Ta</Button> : null}
|
||||||
{item.uid !== user.uid ? <Button
|
{item.uid !== user.uid ? <Button
|
||||||
type="primary"
|
type="primary"
|
||||||
className='m-ant-btn'
|
className='m-ant-btn'
|
||||||
|
|
@ -1024,8 +1031,8 @@ const Meeting: React.FC = () => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>{item.isRoomManager ? '取消房间发言人' : '设为房间发言人'}</Button> : null}
|
>{item.isRoomManager ? '取消房间发言人' : '设为发言人'}</Button> : null}
|
||||||
<Button
|
{item.isRoomManager ? <Button
|
||||||
type="primary"
|
type="primary"
|
||||||
className='m-ant-btn'
|
className='m-ant-btn'
|
||||||
size={'small'}
|
size={'small'}
|
||||||
|
|
@ -1033,8 +1040,8 @@ const Meeting: React.FC = () => {
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
postOpenMicr(!item.enableMicr, item.uid)
|
postOpenMicr(!item.enableMicr, item.uid)
|
||||||
}}
|
}}
|
||||||
>{item.enableMicr ? '静音' : '解除静音'}</Button>
|
>{item.enableMicr ? '静音' : '解除静音'}</Button> : null}
|
||||||
<Button
|
{item.isRoomManager ? <Button
|
||||||
type="primary"
|
type="primary"
|
||||||
className='m-ant-btn'
|
className='m-ant-btn'
|
||||||
size={'small'}
|
size={'small'}
|
||||||
|
|
@ -1042,7 +1049,7 @@ const Meeting: React.FC = () => {
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
postOpenCamera(!item.enableCamera, item.uid)
|
postOpenCamera(!item.enableCamera, item.uid)
|
||||||
}}
|
}}
|
||||||
>{item.enableCamera ? '关闭视频' : '打开视频'}</Button>
|
>{item.enableCamera ? '关闭视频' : '打开视频'}</Button> : null}
|
||||||
</div>
|
</div>
|
||||||
}>
|
}>
|
||||||
<div className={styles.meetingContentOperation}>
|
<div className={styles.meetingContentOperation}>
|
||||||
|
|
@ -1075,7 +1082,7 @@ const Meeting: React.FC = () => {
|
||||||
</div>}
|
</div>}
|
||||||
</div>
|
</div>
|
||||||
{meetingContentUser(currentLookUserAccount, true)}
|
{meetingContentUser(currentLookUserAccount, true)}
|
||||||
{currentLookUserAccount.enableCamera ? null : meetingContentError(currentVideoId, currentLookUserAccount, true)}
|
{currentLookUserAccount.enableCamera ? null : meetingContentError(currentVideoId, currentLookUserAccount)}
|
||||||
</div> : null}
|
</div> : null}
|
||||||
{currentLookUserStatus === 2 && currentLookUserAccount ?
|
{currentLookUserStatus === 2 && currentLookUserAccount ?
|
||||||
<div className={`${styles.meetingContentSwiperCard} ${setMeetingContentSwiperCardClass()}`}>
|
<div className={`${styles.meetingContentSwiperCard} ${setMeetingContentSwiperCardClass()}`}>
|
||||||
|
|
@ -1094,7 +1101,7 @@ const Meeting: React.FC = () => {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{meetingContentUser(currentLookUserAccount, true)}
|
{meetingContentUser(currentLookUserAccount, true)}
|
||||||
{currentLookUserAccount.enableCamera ? null : meetingContentError(currentVideoId, currentLookUserAccount, true)}
|
{currentLookUserAccount.enableCamera ? null : meetingContentError(currentVideoId, currentLookUserAccount)}
|
||||||
</div> : null}
|
</div> : null}
|
||||||
{currentLookUserStatus === 4 && currentLookUserAccount ?
|
{currentLookUserStatus === 4 && currentLookUserAccount ?
|
||||||
<div className={`${styles.meetingContentSwiperCard} ${setMeetingContentSwiperCardClass()}`}>
|
<div className={`${styles.meetingContentSwiperCard} ${setMeetingContentSwiperCardClass()}`}>
|
||||||
|
|
@ -1194,7 +1201,7 @@ const Meeting: React.FC = () => {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>{item.isRoomManager ? '取消房间发言人' : '设为房间发言人'}</Button>
|
>{item.isRoomManager ? '取消房间发言人' : '设为发言人'}</Button>
|
||||||
<Button
|
<Button
|
||||||
type="primary"
|
type="primary"
|
||||||
className='m-ant-btn'
|
className='m-ant-btn'
|
||||||
|
|
@ -1239,19 +1246,99 @@ const Meeting: React.FC = () => {
|
||||||
<div
|
<div
|
||||||
key={index}
|
key={index}
|
||||||
className={`${item.uid !== state.uid ? styles.meetingUserChatContentLeft : styles.meetingUserChatContentRight} drag`}>
|
className={`${item.uid !== state.uid ? styles.meetingUserChatContentLeft : styles.meetingUserChatContentRight} drag`}>
|
||||||
|
|
||||||
|
{user.roleId === '1' ? <Popover placement="bottom" title={''} content={
|
||||||
|
<div className={styles.meetingContentSwiperCardPopover}>
|
||||||
|
{item.isRoomManager || user.roleId === '1' ? <Button
|
||||||
|
type="primary"
|
||||||
|
className='m-ant-btn'
|
||||||
|
size={'small'}
|
||||||
|
onClick={(event) => {
|
||||||
|
event.stopPropagation();
|
||||||
|
setAllUserLook(item)
|
||||||
|
}}
|
||||||
|
>全员看Ta</Button> : null}
|
||||||
|
{item.uid !== user.uid ? <Button
|
||||||
|
type="primary"
|
||||||
|
className='m-ant-btn'
|
||||||
|
size={'small'}
|
||||||
|
onClick={(event) => {
|
||||||
|
event.stopPropagation();
|
||||||
|
GetRoomKickout(state.channelId, item.uid)
|
||||||
|
}}
|
||||||
|
>踢出房间</Button> : null}
|
||||||
|
{item.uid !== user.uid ? <Button
|
||||||
|
type="primary"
|
||||||
|
className='m-ant-btn'
|
||||||
|
size={'small'}
|
||||||
|
onClick={(event) => {
|
||||||
|
event.stopPropagation();
|
||||||
|
if (item.isRoomManager) {
|
||||||
|
DeleteRoomManager({
|
||||||
|
roomId: state.roomId,
|
||||||
|
roomNum: state.channelId,
|
||||||
|
userId: item.uid
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
PostRoomManager({
|
||||||
|
roomId: state.roomId,
|
||||||
|
roomNum: state.channelId,
|
||||||
|
userId: item.uid
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
>{item.isRoomManager ? '取消房间发言人' : '设为发言人'}</Button> : null}
|
||||||
|
{item.isRoomManager ? <Button
|
||||||
|
type="primary"
|
||||||
|
className='m-ant-btn'
|
||||||
|
size={'small'}
|
||||||
|
onClick={(event) => {
|
||||||
|
event.stopPropagation();
|
||||||
|
postOpenMicr(!item.enableMicr, item.uid)
|
||||||
|
}}
|
||||||
|
>{item.enableMicr ? '静音' : '解除静音'}</Button> : null}
|
||||||
|
{item.isRoomManager ? <Button
|
||||||
|
type="primary"
|
||||||
|
className='m-ant-btn'
|
||||||
|
size={'small'}
|
||||||
|
onClick={(event) => {
|
||||||
|
event.stopPropagation();
|
||||||
|
postOpenCamera(!item.enableCamera, item.uid)
|
||||||
|
}}
|
||||||
|
>{item.enableCamera ? '关闭视频' : '打开视频'}</Button> : null}
|
||||||
|
</div>
|
||||||
|
}>
|
||||||
<div>
|
<div>
|
||||||
<div><Avatar name={item.userName} /></div>
|
<div><Avatar name={item.userName} /></div>
|
||||||
<span>{item.userName}</span>
|
<span>{item.userName}</span>
|
||||||
</div>
|
</div>
|
||||||
|
</Popover> : <div>
|
||||||
|
<div><Avatar name={item.userName} /></div>
|
||||||
|
<span>{item.userName}</span>
|
||||||
|
</div>}
|
||||||
<div>{item.message}</div>
|
<div>{item.message}</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
<div className={`${styles.meetingUserChatButton} drag`}>
|
||||||
|
{
|
||||||
|
commonlyChatList.map((item: string, index: number) => {
|
||||||
|
return <Button
|
||||||
|
key={index}
|
||||||
|
type="primary"
|
||||||
|
className='m-ant-btn'
|
||||||
|
onClick={() => {
|
||||||
|
sendMsg(item)
|
||||||
|
}}
|
||||||
|
>{item}</Button>
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</div>
|
||||||
<div className={`${styles.meetingUserChatInput} drag`}>
|
<div className={`${styles.meetingUserChatInput} drag`}>
|
||||||
<Input.TextArea placeholder="请输入消息" value={textMsg} style={{ flexGrow: 1 }} onChange={(e) => {
|
<Input.TextArea placeholder="请输入消息" value={textMsg} style={{ flexGrow: 1 }} onChange={(e) => {
|
||||||
setTextMsg(e.target.value)
|
setTextMsg(e.target.value)
|
||||||
}}></Input.TextArea>
|
}}></Input.TextArea>
|
||||||
<Button type="primary" className='m-ant-btn' style={{ flexShrink: 0, marginTop: '4px' }} onClick={sendMsg}>发送</Button>
|
<Button type="primary" className='m-ant-btn' style={{ flexShrink: 0, marginTop: '4px' }} onClick={() => sendMsg()}>发送</Button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
@ -1409,7 +1496,7 @@ const meetingContentError = (currentVideoId: any, item: any, bool?: boolean) =>
|
||||||
<>
|
<>
|
||||||
<div
|
<div
|
||||||
className={`${styles.meetingContentError} ${currentVideoId === item.uid ? styles.active : ''}`}
|
className={`${styles.meetingContentError} ${currentVideoId === item.uid ? styles.active : ''}`}
|
||||||
style={{ left: !bool ? 'calc(50% + 2px)' : '', top: !bool ? 'calc(50% + 2px)' : '' }}
|
style={{ left: bool ? 'calc(50% + 2px)' : '', top: bool ? 'calc(50% + 2px)' : '' }}
|
||||||
>
|
>
|
||||||
<Avatar name={item.userName} />
|
<Avatar name={item.userName} />
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -55,6 +55,8 @@ import icon42 from '@/assets/icon42.png'
|
||||||
import icon42Active from '@/assets/icon42-active.png'
|
import icon42Active from '@/assets/icon42-active.png'
|
||||||
import icon43 from '@/assets/icon43.png'
|
import icon43 from '@/assets/icon43.png'
|
||||||
import icon44 from '@/assets/icon44.png'
|
import icon44 from '@/assets/icon44.png'
|
||||||
|
import icon45 from '@/assets/icon45.png'
|
||||||
|
import icon45Active from '@/assets/icon45-active.png'
|
||||||
export default {
|
export default {
|
||||||
error,
|
error,
|
||||||
icon,
|
icon,
|
||||||
|
|
@ -113,4 +115,6 @@ export default {
|
||||||
icon42Active,
|
icon42Active,
|
||||||
icon43,
|
icon43,
|
||||||
icon44,
|
icon44,
|
||||||
|
icon45,
|
||||||
|
icon45Active,
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue