|
@@ -6,7 +6,8 @@ import consola from 'consola';
|
|
|
import { useSocket } from '/@/hooks/userSocket';
|
|
|
import { useRoom, SceneItemType } from '/@/hooks/useRoom';
|
|
|
import { useI18n } from '/@/hooks/useI18n';
|
|
|
-
|
|
|
+import browser from '/@/utils/browser';
|
|
|
+import { unref } from 'vue';
|
|
|
interface ActionDataType {
|
|
|
type: string;
|
|
|
data: any;
|
|
@@ -17,6 +18,10 @@ interface ActionDataType {
|
|
|
words?: boolean;
|
|
|
muted?: boolean;
|
|
|
}
|
|
|
+interface sceneAnswerType {
|
|
|
+ scene?: string;
|
|
|
+ pose?: string;
|
|
|
+}
|
|
|
|
|
|
export function handleActions({
|
|
|
data,
|
|
@@ -68,7 +73,11 @@ export function handleActions({
|
|
|
handleTagImageIndex(data);
|
|
|
break;
|
|
|
case 'ask-currentscene':
|
|
|
- handleAskCurrentscene(data);
|
|
|
+ handleAskCurrentscene();
|
|
|
+ break;
|
|
|
+ case 'answer-currentscene':
|
|
|
+ console.log('handleAnswerCurrentscene', data);
|
|
|
+ handleAnswerCurrentscene(data as sceneAnswerType);
|
|
|
break;
|
|
|
case 'error':
|
|
|
// Dialog.toast({ content: `房间未找到`, type: 'error' });
|
|
@@ -189,9 +198,32 @@ const handleChangeScene = (data: SceneItemType) => {
|
|
|
console.log('handleChangeScene', data);
|
|
|
data && changeScene(data);
|
|
|
};
|
|
|
-//
|
|
|
-const handleAskCurrentscene = (data) => {
|
|
|
- console.log('data', data);
|
|
|
+// 由leader回复转场
|
|
|
+const handleAskCurrentscene = () => {
|
|
|
+ const { socket } = useSocket();
|
|
|
+ const rtcStore = useRtcStore();
|
|
|
+ if (rtcStore.isLeader) {
|
|
|
+ socket.emit('action', {
|
|
|
+ type: 'answer-currentscene',
|
|
|
+ data: {
|
|
|
+ scene: browser.getURLParam('m'),
|
|
|
+ pose: browser.getURLParam('pose'),
|
|
|
+ },
|
|
|
+ });
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+const handleAnswerCurrentscene = (data: sceneAnswerType) => {
|
|
|
+ const rtcStore = useRtcStore();
|
|
|
+ const { currentScene, changeScene, sceneList } = useRoom();
|
|
|
+ if (!rtcStore.isLeader) {
|
|
|
+ if (unref(currentScene)?.num !== data.scene) {
|
|
|
+ const otherScene = unref(sceneList).find((item) => item.num === data.scene);
|
|
|
+ otherScene && changeScene(otherScene);
|
|
|
+ }
|
|
|
+ // if(unref(currentScene))
|
|
|
+ // debugger;
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
const handleTagImageIndex = (data) => {
|