1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
| <template>
| <div class="meet-container w-screen h-screen">
| <div id="meet" ref="meet"></div>
| </div>
| </template>
|
| <script setup>
| import {ref, onMounted} from 'vue';
| import {useRoute} from 'vue-router';
|
| const route = useRoute();
| const meet = ref(null);
|
| 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 options = {
| roomName: meetName,
| width: width,
| height: height,
| parentNode: meet.value,
| lang: 'zh_CN',
| configOverwrite: {
| prejoinConfig: {
| enabled: false
| },
| //禁用邮箱
| gravatar: {
| disabled: true
| },
| //禁用改名
| readOnlyName: true,
| remoteVideoMenu: {
| disabled: true,
| disableKick: true,
| disableGrantModerator: true
| },
| disableRemoteMute: true,
| //主持人选项
| participantsPane: {
| enabled: true,
| hideMoreActionsButton: true,
| hideModeratorSettingsTab: true,
| hideMuteAllButton: true,
| },
| whiteboard: {
| enabled: true
| }
| },
| toolbarButtons: ['whiteboard',],
| userInfo: {
| displayName: userName
| }
| };
| jitsiApi = new JitsiMeetExternalAPI(domain, options);
| jitsiInit();
|
| });
|
| const jitsiInit = () => {
| jitsiApi.addListener('readyToClose', () => {
|
| });
| }
|
|
| </script>
|
| <style lang="scss" scoped></style>
|
|