gemercheung 2 年之前
父節點
當前提交
4f5d40b324

+ 5 - 4
src/App.vue

@@ -304,7 +304,8 @@
       // appStore.setMode(name);
     }
   };
-  const handlePasswordConfirm = async () => {
+  const handlePasswordConfirm = () => {
+    appStore.setPasswordConfirm(true);
     showPasswordDialog.value = false;
   };
   watchEffect(() => {
@@ -347,7 +348,7 @@
       {{ maxNumber }}
     </span> -->
     <span>
-      {{ t('base.debuginfo') }}:公告,测试1.2.0-0705-01,角色:{{ rtcStore.role }} rId:{{
+      {{ t('base.debuginfo') }}:公告,测试1.2.0-0711-01,角色:{{ rtcStore.role }} rId:{{
         rtcStore.roomId || browser.getURLParam('roomId')
       }}
       sceneIndex:{{ currentSceneIndex }} uid::
@@ -386,8 +387,8 @@
         v-if="isTourMode"
         :is-single="true"
         :show="showPasswordDialog"
-        @confirm-dialog="handlePasswordConfirm"
-        @close-dialog="handlePasswordConfirm"
+        @confirm="handlePasswordConfirm"
+        @close="handlePasswordConfirm"
       />
       <!-- panel end -->
     </template>

+ 4 - 5
src/components/chatRoom/controls/actions.ts

@@ -63,11 +63,9 @@ export function handleActions({
     case 'user-exit':
       handleUserExit(user, members);
       break;
-
     case 'users-muted':
       handleUserMuted(userId, muted);
       break;
-
     case 'users-words':
       handleUserSetWords(userId, words, members);
       break;
@@ -94,17 +92,18 @@ export function handleActions({
     case 'error':
       // Dialog.toast({ content: `房间未找到`, type: 'error' });
       handleError();
-
+      break;
     case 'sync-floor':
       handleSyncFloor(data);
-
+      break;
     case 'room-valid-time':
       handleRoomValidTime(data);
+      break;
     case 'rooms-status': // 新加房间全员动态
       console.log('data', members);
       const membersStatus = members as any as UserInfoType[];
       handleRoomStatus(membersStatus);
-
+      break;
     case 'user-be-kicked':
       const { t } = useI18n();
       Dialog.toast({ content: t('action.endUpRoom') });

+ 11 - 5
src/components/chatRoom/controls/join.ts

@@ -8,6 +8,7 @@ import { useI18n } from '/@/hooks/useI18n';
 import { useRoom } from '/@/hooks/useRoom';
 import { useSocket } from '/@/hooks/userSocket';
 import { UserInfoType, useRtcStore } from '/@/store/modules/rtc';
+import { useAppStore } from '/@/store/modules/app';
 const { enterRoom } = useRoom();
 
 // 自已join的方法
@@ -79,11 +80,16 @@ export function handleJoin(data: any) {
         data: unref(currentScene),
       });
       console.log('进入,主持人禁音-1');
-      // socket.emit('action', {
-      //   type: 'users-muted',
-      //   muted: true,
-      //   userId: user.UserId,
-      // });
+      const appStore = useAppStore();
+      console.log('检查是否输入过密码', appStore.isPassWordConfirm);
+      if (appStore.isPassWordConfirm) {
+        socket.emit('action', {
+          type: 'confirm-password',
+          data: {
+            userId: rtcStore.userId,
+          },
+        });
+      }
     }
   }, 1500);
 }

+ 7 - 1
src/components/chatRoom/index.vue

@@ -190,6 +190,7 @@
   import dayjs from 'dayjs';
   import duration from 'dayjs/plugin/duration';
   import { useMiniApp } from '/@/hooks/useMiniApp';
+  import { useSceneStore } from '/@/store/modules/scene';
   const { closeSocket } = useSocket();
   dayjs.extend(duration);
   // hook
@@ -240,6 +241,8 @@
   let roomCount: NodeJS.Timeout;
   const { t } = useI18n();
   const { sceneList } = useRoom();
+  const sceneStore = useSceneStore();
+  const currentTag = computed(() => sceneStore.currentTag);
 
   watchEffect(() => {
     console.log('sceneList', sceneList);
@@ -378,7 +381,7 @@
     );
     //初始化同屏等
     watch(
-      () => [isJoined, isNativeLeader],
+      () => [isJoined, isNativeLeader, currentTag],
       async (val) => {
         try {
           // console.log('初始化同屏', unref(val[0]), unref(val[1]));
@@ -406,6 +409,8 @@
           } else {
             app.Scene.on('loaded', () => sceneInit(app, val));
           }
+
+          //同步tag
         } catch (error) {
           console.log('error', error);
         }
@@ -633,6 +638,7 @@
     initSocketEvent(socket);
     const { createRTCSocket } = useRtcSdk();
     await createRTCSocket();
+    appStore.setPasswordConfirm(true);
   };
 </script>
 

+ 11 - 1
src/store/modules/app.ts

@@ -23,6 +23,7 @@ interface AppState {
   controlsBottom: string;
   isTourMode: boolean; // 自由观看模式
   ttl: number;
+  passWordConfirm: boolean;
 }
 
 export const useAppStore = defineStore({
@@ -48,8 +49,13 @@ export const useAppStore = defineStore({
     controlsBottom: '20px',
     isTourMode: true,
     ttl: -1,
+    passWordConfirm: false,
   }),
-  getters: {},
+  getters: {
+    isPassWordConfirm(): boolean {
+      return this.passWordConfirm;
+    },
+  },
   actions: {
     setRoomValidTime(ttl: number): void {
       this.ttl = ttl;
@@ -133,5 +139,9 @@ export const useAppStore = defineStore({
     unLoad() {
       this.isLoaded = false;
     },
+    setPasswordConfirm(status: boolean) {
+      console.log('设置输入密码状态', status);
+      this.passWordConfirm = status;
+    },
   },
 });