From 0d3af1e3612bf691d11ecaf8b013638808a73d7f Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 29 十月 2024 14:37:08 +0800
Subject: [PATCH] 会议列表状态样式优化

---
 src/views/meet/index.vue |  129 ++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 121 insertions(+), 8 deletions(-)

diff --git a/src/views/meet/index.vue b/src/views/meet/index.vue
index bb0bb57..14a0d0a 100644
--- a/src/views/meet/index.vue
+++ b/src/views/meet/index.vue
@@ -1,23 +1,27 @@
 <template>
   <div class="meet-container w-screen h-screen">
-    <div>{{ JSON.stringify(route) }}</div>
     <div id="meet" ref="meet"></div>
   </div>
 </template>
 
 <script setup>
-import { ref, onMounted } from 'vue';
+import {ref, watch, onMounted} from 'vue';
 import {useRoute} from 'vue-router';
+import useWebScoket from "@/hooks/useWebScoket.js";
+import {storeToRefs} from 'pinia';
+import {useUserStore} from '@/store/index.js';
+
 const route = useRoute();
 const meet = ref(null);
 
-const {meetName, id} = route.query;
-
+const userStore = useUserStore();
+const {userInfo} = storeToRefs(userStore);
+const {meetName, id, userName, userCode} = route.query;
 let jitsiApi = null;
 onMounted(() => {
   const width = window.innerWidth;
   const height = window.innerHeight;
-  const domain = 'ycl.easyblog.vip:8443/' + id;
+  const domain = 'www.kgmeet.com:8443/' + id;
   const options = {
     roomName: meetName,
     width: width,
@@ -28,26 +32,135 @@
       prejoinConfig: {
         enabled: false
       },
+      //绂佺敤閭
+      gravatar: {
+        disabled: true
+      },
+      // 鎺у埗椤堕儴鏍囬浼氳淇℃伅鏍囩鐨勫彲瑙佹�у拰琛屼负銆�
+      // 濡傛灉鏍囩鐨� ID 涓嶅湪涓婅堪涓や釜鏁扮粍涓殑浠讳綍涓�涓腑锛屽垯瀹冨湪鏍囬涓婃牴鏈笉鍙銆�
+      conferenceInfo: {
+        // 杩欎簺鏍囩涓嶄細涓庡伐鍏风涓�璧烽殣钘忋��
+        alwaysVisible: ['recording'],
+        // 杩欎簺鏍囩灏嗕笌宸ュ叿绠辨寜閽竴璧疯嚜鍔ㄩ殣钘忋��
+        autoHide: [
+          // 'raised-hands-count',
+          'subject',
+          'conference-timer',
+          'participants-count',
+          'e2ee',
+          'video-quality',
+          'insecure-room',
+          'highlight-moment',
+          'top-panel-toggle',
+        ]
+      },
+      ModeratorIndicator: true,
+      startSilent: false,
+      //绂佺敤鏀瑰悕
+      readOnlyName: true,
+      //鍙備細鑰呭悕鍗�
+      remoteVideoMenu: {
+        disabled: false,
+        disableKick: true,
+        disableGrantModerator: true,
+        disabledDemote: false
+      },
+      // 鑷畾涔夋寜閽�
+      toolbarButtons: [
+        // 鎽勫儚澶�
+        'camera',
+        // 鑱婂ぉ
+        'chat',
+        // 鍏变韩
+        'desktop',
+        'download',
+        'fullscreen',
+        'hangup',
+        'highlight',
+        'linktosalesforce',
+        'livestreaming',
+        'microphone',
+        'noisesuppression',
+        'raisehand',
+        'recording',
+        'select-background',
+        'settings',
+        'shareaudio',
+        'sharedvideo',
+        'shortcuts',
+        'stats',
+        'tileview',
+        'toggle-camera',
+        // 'closedcaptions',
+        // 'embedmeeting',
+        // 'etherpad',
+        // 'feedback',
+        // 'filmstrip',
+        // 'help',
+        // 'invite',
+        // 'participants-pane',
+        // 'profile',
+        // 'security',
+        'videoquality',
+        'whiteboard'
+      ],
+      // 绂佺敤閭�璇�
+      disableInviteFunctions: true,
+      //绂佺敤鍏ㄩ儴闈欓煶
+      disableRemoteMute: false,
+      //涓绘寔浜洪�夐」
+      participantsPane: {
+        enabled: false,
+        hideMoreActionsButton: true,
+        hideModeratorSettingsTab: true,
+        hideMuteAllButton: true,
+      },
+      //鍙栨秷閫�鍑洪〉闈�
+      enableClosePage: false,
       whiteboard: {
         enabled: true
       }
     },
+
     userInfo: {
-      displayName: '娴嬭瘯娴嬭瘯'
+      displayName: userName
     }
   };
   jitsiApi = new JitsiMeetExternalAPI(domain, options);
   jitsiInit();
+
+  // 杩炴帴webscoket
+  connect();
 });
 
 const jitsiInit = () => {
   jitsiApi.addListener('readyToClose', () => {
-    
+    window.close()
   });
 }
 
+const {status, message, error, connect, disconnect, sendMessage} = useWebScoket({
+  url: 'wss://www.kgmeet.com:18443/websocket/' + userInfo._rawValue.id,
+  heartBeatData: 'ping'
+});
+
+watch(
+    () => message.value,
+    (msg) => {
+      console.log('msg', msg.commend);
+      if (msg.commend === 'kickOut') {
+        jitsiApi.executeCommand('hangup');
+      }
+      if (msg.commend === 'mute') {
+        jitsiApi.executeCommand('toggleAudio');
+      }
+      if (msg.commend === 'openCamera') {
+        jitsiApi.executeCommand('toggleVideo');
+      }
+    }
+);
 
 
 </script>
 
-<style lang="scss" scoped></style>
\ No newline at end of file
+<style lang="scss" scoped></style>

--
Gitblit v1.8.0