diff --git a/pages/meeting/index.scss b/pages/meeting/index.scss index bf901b6..1c3d808 100644 --- a/pages/meeting/index.scss +++ b/pages/meeting/index.scss @@ -310,7 +310,7 @@ .user-popup { width: 30vw; - height: 100vh; + height: 88vh; background-color: #16191E; padding: 10rpx 0; box-sizing: border-box; @@ -318,12 +318,18 @@ flex-direction: column; &-title { - color: white; - text-align: center; + color: gray; font-size: 16rpx; flex-shrink: 0; border-bottom: 1px rgb(59, 59, 59) solid; padding-bottom: 10rpx; + display: flex; + align-items: center; + justify-content: space-around; + + &-active { + color: white; + } } &-view { @@ -333,6 +339,7 @@ flex-grow: 1; &-view { + color: white; display: flex; align-items: center; justify-content: space-between; @@ -344,7 +351,6 @@ flex-grow: 1; &-text { - color: white; font-size: 14rpx; margin: 0 2rpx; white-space: nowrap; diff --git a/pages/meeting/index.ts b/pages/meeting/index.ts index d6eb44e..c34af6d 100644 --- a/pages/meeting/index.ts +++ b/pages/meeting/index.ts @@ -73,6 +73,7 @@ Page({ }, ], channelId: '', + tabBarIndex: 1, roomInfo: '', roomUserList: [], audioList: [], @@ -106,7 +107,10 @@ Page({ isReconnec: false, isAutoApplySpeakDialog: false, showScroll: false, - reconnecNumber: 0 + reconnecNumber: 0, + setting: { + voiceStimulation: true, //语音激励 + } }, watch: { 'roomUserList.**': function (roomUserList) { @@ -269,6 +273,17 @@ Page({ }, onReady() { wx.onNetworkStatusChange(this.listener) + const setting: any = getStorage('setting') + if (setting) { + this.setData({ + setting + }) + } else { + wx.setStorage({ + key: "setting", + data: this.data.setting + }) + } }, async onShow() { wx.setKeepScreenOn({ @@ -285,22 +300,24 @@ Page({ this.reconnecFun() } isSpeakTime = setInterval(() => { - function getMaxObject(arr) { - let maxObject = arr[0]; - for (let i = 1; i < arr.length; i++) { - if (arr[i].volumeNumber > maxObject.volumeNumber) { - maxObject = arr[i]; + if (this.data.setting.voiceStimulation) { + function getMaxObject(arr) { + let maxObject = arr[0]; + for (let i = 1; i < arr.length; i++) { + if (arr[i].volumeNumber > maxObject.volumeNumber) { + maxObject = arr[i]; + } } + return maxObject; + } + const isShare = this.data.roomUserList.find(item => item.shareSrc) + const item = getMaxObject(this.data.audioList) + const user = this.data.roomUserList.find(row => item.uid === row.uid) + if (this.data.currentUid !== item.uid && !isShare && (user && user.isRoom) && item.volumeNumber > 0 && item.uid !== this.data.user.uid) { + this.setData({ + currentUid: item.uid + }) } - return maxObject; - } - const isShare = this.data.roomUserList.find(item => item.shareSrc) - const item = getMaxObject(this.data.audioList) - const user = this.data.roomUserList.find(row => item.uid === row.uid) - if (this.data.currentUid !== item.uid && !isShare && (user && user.isRoom) && item.volumeNumber > 0) { - this.setData({ - currentUid: item.uid - }) } }, 3000) }, @@ -335,6 +352,8 @@ Page({ }, async startReconnec() { if (getSignIr() === signalR.HubConnectionState.Connected) { + clearTimeout(reconnectTime) + reconnectTime = '' await GetRoomRtcToken(this.data.channelId).then(res => { if (res.code === 200) { agora.reconnecSetOption(res.data, async (bool) => { @@ -350,8 +369,6 @@ Page({ duration: 3000, content: '重连成功', }); - clearTimeout(reconnectTime) - reconnectTime = '' this.setData({ isReconnec: false }) @@ -716,12 +733,45 @@ Page({ item.isAdmin = role.ID.includes(item.roleId) || item.isRoomManager item.avatarName = item.userName?.slice(-2) }) - this.setData({ - roomUserList: res.data - }) + if (this.data.roomUserList.length) { + let arr: any = [] + const { roomUserList } = this.data; + res.data.forEach((item: any) => { + let userItem = roomUserList.find((row: any) => row.uid == item.uid); + if (userItem) { + userItem.enableCamera = item.enableCamera; + userItem.enableMicr = item.enableMicr; + userItem.isRoomManager = item.isRoomManager; + userItem.isAdmin = role.ID.includes(item.roleId) || item.isRoomManager; + } else { + arr.push(item) + } + }); + this.setData({ + roomUserList: [...roomUserList, ...arr] + }) + } else { + this.setData({ + roomUserList: res.data + }) + } } }) }, + // 切换tab + setTabBarIndex(e) { + this.setData({ + tabBarIndex: Number(e.currentTarget.dataset.tabbarindex) + }) + }, + // 修改缓存设置 + changeSetting(e) { + this.data.setting[e.currentTarget.dataset.str] = e.detail.value + wx.setStorage({ + key: "setting", + data: this.data.setting + }) + }, // 成员显示用户名称 showMultiText(e) { Toast({ diff --git a/pages/meeting/index.wxml b/pages/meeting/index.wxml index 2513196..7a49ef9 100644 --- a/pages/meeting/index.wxml +++ b/pages/meeting/index.wxml @@ -18,8 +18,8 @@ - - + + @@ -39,7 +39,7 @@ - + @@ -91,12 +91,13 @@ - + - 成员 + 成员 + 设置 - + {{item.avatarName}} @@ -109,6 +110,12 @@ + + + 语音激励 + + +