This commit is contained in:
yj 2024-07-18 17:53:38 +08:00
parent 5def31854b
commit 2d9db898f8
4 changed files with 27 additions and 2 deletions

View File

@ -80,3 +80,9 @@ export const GetRoomKickout = (roomNum: string, kickUid: string) =>
url: `/room/kickout?roomNum=${roomNum}&kickUid=${kickUid}`, url: `/room/kickout?roomNum=${roomNum}&kickUid=${kickUid}`,
method: 'get' method: 'get'
}) })
export const GetSyncView = (roomNum: string, type: string) =>
request({
url: `/room/sync-view?roomNum=${roomNum}&type=${type}`,
method: 'get'
})

View File

@ -1,7 +1,9 @@
import styles from '@/components/SpeakerModeModal/index.module.scss' import styles from '@/components/SpeakerModeModal/index.module.scss'
import { Button, message, Modal, Select, Slider } from 'antd'; import { Checkbox, Modal } from 'antd';
import { useState, useImperativeHandle, forwardRef } from "react"; import { useState, useImperativeHandle, forwardRef } from "react";
import { storage } from '@/utils'; import { storage } from '@/utils';
import { useLocation } from 'react-router-dom';
import { GetSyncView } from '@/api/Meeting';
interface Props { interface Props {
onClick: () => void; onClick: () => void;
} }
@ -11,8 +13,13 @@ const SpeakerModeModal = forwardRef((props: any, ref: any) => {
setIsSpeakerModeModal(true) setIsSpeakerModeModal(true)
} }
})) }))
const { state } = useLocation();
const [isSpeakerModeModal, setIsSpeakerModeModal] = useState(false); const [isSpeakerModeModal, setIsSpeakerModeModal] = useState(false);
const setMode = (mode: string): void => { const [isView, setIsView] = useState(false);
const setMode = async (mode: string): Promise<void> => {
if (isView) {
await GetSyncView(state.channelId, mode)
}
storage.setItem('meetingMode', mode) storage.setItem('meetingMode', mode)
setIsSpeakerModeModal(false) setIsSpeakerModeModal(false)
} }
@ -34,6 +41,9 @@ const SpeakerModeModal = forwardRef((props: any, ref: any) => {
<DualScreenMode onClick={() => setMode('DualScreenMode')} /> <DualScreenMode onClick={() => setMode('DualScreenMode')} />
<FourScreenMode onClick={() => setMode('FourScreenMode')} /> <FourScreenMode onClick={() => setMode('FourScreenMode')} />
</div> </div>
<Checkbox onChange={(e) => {
setIsView(e.target.checked)
}} value={isView}></Checkbox>
</Modal> </Modal>
</> </>
) )

View File

@ -193,6 +193,9 @@ const Meeting: React.FC = () => {
case 'ForceExitRoom': case 'ForceExitRoom':
leaveChannel() leaveChannel()
break; break;
case 'RefreshView':
setMeetingMode(item.type)
break;
} }
}) })
return () => { return () => {

View File

@ -40,6 +40,12 @@ export const onSignalr = (callBack: Function) => {
key: 'ForceExitRoom', key: 'ForceExitRoom',
}) })
}); });
connection.on("RefreshView", (type: string) => {
callBack({
key: 'RefreshView',
type
})
});
} }
} }
export const offSignalr = () => { export const offSignalr = () => {