This commit is contained in:
parent
5def31854b
commit
2d9db898f8
|
|
@ -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'
|
||||||
|
})
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
</>
|
</>
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -193,6 +193,9 @@ const Meeting: React.FC = () => {
|
||||||
case 'ForceExitRoom':
|
case 'ForceExitRoom':
|
||||||
leaveChannel()
|
leaveChannel()
|
||||||
break;
|
break;
|
||||||
|
case 'RefreshView':
|
||||||
|
setMeetingMode(item.type)
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
return () => {
|
return () => {
|
||||||
|
|
|
||||||
|
|
@ -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 = () => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue