From e9ac312fdfdf723dfc5b97dbf56df9c339f635f9 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期五, 26 七月 2024 18:04:26 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev --- src/views/meet/index.vue | 161 ++++++++++++++++++++++++++++++++++++++--------------- 1 files changed, 114 insertions(+), 47 deletions(-) diff --git a/src/views/meet/index.vue b/src/views/meet/index.vue index 01f3959..90bdb15 100644 --- a/src/views/meet/index.vue +++ b/src/views/meet/index.vue @@ -1,33 +1,36 @@ <template> <div> - <div style="display: flex; flex-direction: row"> - <div id="meet" ref="meet"/> - <div style="padding: 5px"> - <el-row :gutter="5"> - <el-col :span="22"> - <el-input placeholder="鎼滅储" size="small" v-model="searchForm.keyword"/> - </el-col> - <el-col :span="2"> - <el-button type="primary" size="small" @click="getRoomInfo">鎼滅储</el-button> - </el-col> - </el-row> - <el-row> + <div style="display: flex; flex-direction: row;"> + <div id="meet" ref="meet" style="flex-grow: 1;"> + </div> + <div style="padding-top: 5px; padding-left: 5px;right: 15px"> + <el-button type="success" size="small" @click="hiddenStudent">{{ getShowText() }}</el-button> + <el-row v-show="showStudent"> + <el-row :gutter="5"> + <el-col :span="12"> + <el-input placeholder="鎼滅储瀛﹀憳" size="small" clearable @input="getStudentList" @clear="getStudentList" + v-model="searchForm.keyword"/> + </el-col> + <el-col :span="2"> + <el-button type="primary" size="small" @click="getStudentList">鎼滅储</el-button> + </el-col> + </el-row> <el-tabs v-model="searchForm.onlineStatus" @tab-click="handleTabChange" style="margin-left: 3px"> <el-tab-pane label="鍦ㄧ嚎瀛﹀憳" name="1"></el-tab-pane> <el-tab-pane label="绂荤嚎瀛﹀憳" name="0"></el-tab-pane> </el-tabs> - </el-row> - <el-row :gutter="20" v-for="student in showStudentList" :key="student.id" class="student-row"> - <el-col :span="18"> - <div> - {{student.realName}} - </div> - </el-col> - <el-col :span="6"> - <div :class="{online: student.onlineStatus === 1, outline: student.onlineStatus === 0}"> - {{getStatus(student.onlineStatus)}} - </div> - </el-col> + <el-row :gutter="20" v-for="student in showStudentList" :key="student.id" class="student-row"> + <el-col :span="18"> + <div> + {{ student.realName }} + </div> + </el-col> + <el-col :span="6"> + <div :class="{online: student.onlineStatus === 1, outline: student.onlineStatus === 0}"> + {{ getStatus(student.onlineStatus) }} + </div> + </el-col> + </el-row> </el-row> </div> </div> @@ -37,10 +40,13 @@ <script> import { getStudentList } from '@/api/meet' -let jitsiApi = null export default { - data() { + data () { return { + jitsiApi: null, + width: 0, + height: 0, + showStudent: true, intervalId: null, meetId: null, roomName: '', @@ -48,21 +54,34 @@ searchForm: { keyword: '', // 0 鏈湪绾裤�� 1 鍦ㄧ嚎 - onlineStatus: 0, + onlineStatus: 0 }, studentList: [], - showStudentList: [], + showStudentList: [] } }, methods: { - getStatus(status) { - if (status === 1) { - return "鍦ㄧ嚎" - } else if (status === 0) { - return "绂荤嚎" + hiddenStudent () { + this.showStudent = !this.showStudent + }, + changeJitsiWindowSize (width, height) { + this.jitsiApi.resizeLargeVideo(width, height) + }, + getShowText () { + if (this.showStudent) { + return '闅愯棌' + } else { + return '鏄剧ず' } }, - handleTabChange(tab) { + getStatus (status) { + if (status === 1) { + return '鍦ㄧ嚎' + } else if (status === 0) { + return '绂荤嚎' + } + }, + handleTabChange (tab) { let status = parseInt(tab.name) this.showStudentList = this.studentList.filter(student => { return student.onlineStatus === status @@ -70,17 +89,17 @@ }, getStudentList () { let params = { - keyword: this.keyword + keyword: this.searchForm.keyword } getStudentList(this.meetId, params).then(res => { this.studentList = res.data.data this.showStudentList = this.studentList.filter(student => { - return student.onlineStatus === 0 + return student.onlineStatus === this.searchForm.onlineStatus }) }) }, getRoomInfo () { - jitsiApi.getRoomsInfo().then(rooms => { + this.jitsiApi.getRoomsInfo().then(rooms => { rooms.rooms.forEach(room => { // 鎴块棿鐨刬d鏄竴涓瓙鍩熷悕锛屼笖@绗﹀墠鐨勪細璁悕绉版槸缁忚繃URL缂栫爜鐨� let encodedPart = room.id.split('@')[0] @@ -110,8 +129,7 @@ } }, mounted () { - const width = window.innerWidth * 0.7 - const height = window.innerHeight + this.height = window.innerHeight this.meetId = this.$route.query.meetId this.getStudentList() const domain = this.$route.query.domain @@ -121,8 +139,7 @@ const userInfo = userInfoStr ? JSON.parse(userInfoStr) : null const options = { roomName: roomName, - width: width, - height: height, + height: this.height, parentNode: this.$refs.meet, lang: 'zh_CN', userInfo: userInfo, @@ -130,22 +147,68 @@ prejoinConfig: { enabled: false }, + // 绂佺敤閭�璇� + disableInviteFunctions: true, + // 绂佺敤閭 + gravatar: { + disabled: true + }, + // 绂佺敤鏀瑰悕 + readOnlyName: true, + // 鑷畾涔夋寜閽� + toolbarButtons: [ + // 鎽勫儚澶� + 'camera', + // 鑱婂ぉ + 'chat', + // 'closedcaptions', + // 鍏变韩 + 'desktop', + 'download', + // 'embedmeeting', + // 'etherpad', + // 'feedback', + // 'filmstrip', + 'fullscreen', + 'hangup', + // 'help', + 'highlight', + // 'invite', + 'linktosalesforce', + 'livestreaming', + 'microphone', + 'noisesuppression', + // 'participants-pane', + // 'profile', + // 'raisehand', + 'recording', + // 'security', + 'select-background', + 'settings', + 'shareaudio', + 'sharedvideo', + 'shortcuts', + 'stats', + 'tileview', + 'toggle-camera', + // 'videoquality', + 'whiteboard' + ], whiteboard: { enabled: true } - }, - toolbarButtons: ['whiteboard'] + } } - jitsiApi = new window.JitsiMeetExternalAPI(domain, options) + this.jitsiApi = new window.JitsiMeetExternalAPI(domain, options) - jitsiApi.addListener('readyToClose', () => { + this.jitsiApi.addListener('readyToClose', () => { window.close() }) // 姣忎笁绉掓洿瀛﹀憳鍦ㄧ嚎鐘舵�� this.intervalId = setInterval(() => { this.getRoomInfo() - }, 3000) + }, 2500) }, beforeDestroy () { // 娓呴櫎瀹氭椂鍣紝閬垮厤鍐呭瓨娉勬紡 @@ -162,16 +225,20 @@ #meet { height: 100%; } + .online { color: #42b983; } + .outline { color: #aa1111; } + .studentWarp { display: flex; - flex-display: row; + flex-direction: row; } + .student-row { margin-top: 8px; padding-left: 3px; -- Gitblit v1.8.0