diff --git a/pages/meeting/index.ts b/pages/meeting/index.ts index 3bb0de6..8b52022 100644 --- a/pages/meeting/index.ts +++ b/pages/meeting/index.ts @@ -10,6 +10,7 @@ const computedBehavior = require('miniprogram-computed').behavior; let reconnectTime = "" as any; let refreshTime = "" as any; let isReconnecTimeSetTimeout = "" as any; +let isAutoApplySpeakTime = "" as any; Page({ behaviors: [computedBehavior], data: { @@ -102,6 +103,7 @@ Page({ isCurrePage: true, isReconnec: false, isReconnecTime: false, + isAutoApplySpeakDialog: false, }, watch: { 'roomUserList.**': function (roomUserList) { @@ -128,6 +130,32 @@ Page({ 'footerList.**': function (footerList) { const footerListTemplate = [...footerList]; footerListTemplate[3].show = footerListTemplate[2].active + if (!footerListTemplate[1].active && !footerListTemplate[2].active) { + if (isAutoApplySpeakTime) { + clearTimeout(isAutoApplySpeakTime) + isAutoApplySpeakTime = '' + } + isAutoApplySpeakTime = setTimeout(() => { + let userItem = this.data.roomUserList.find((item: any) => item.uid === this.data.user.uid) + if (!role.ID.includes(this.data.user.roleId) && userItem && userItem.isRoomManager) { + DeleteRoomManager({ + roomId: this.data.roomInfo.id, + roomNum: this.data.channelId, + userId: userItem.uid + }) + this.setData({ + isAutoApplySpeakDialog: true + }) + } + clearTimeout(isAutoApplySpeakTime) + isAutoApplySpeakTime = '' + }, 1000 * 60 * 5); + } else { + if (isAutoApplySpeakTime) { + clearTimeout(isAutoApplySpeakTime) + isAutoApplySpeakTime = '' + } + } this.setData({ footerList: footerListTemplate }) @@ -316,6 +344,36 @@ Page({ clearInterval(refreshTime) refreshTime = '' } + if (isAutoApplySpeakTime) { + clearTimeout(isAutoApplySpeakTime) + isAutoApplySpeakTime = '' + } + }, + confirmIsAutoApplySpeakDialog() { + if (!this.data.isClicked) { + GetApplySpeak(this.data.channelId).then(res => { + if (res.code === 200) { + this.setData({ + isClicked: true, + }) + this.message('申请发言成功').success() + } + this.setData({ + isAutoApplySpeakDialog: false + }) + }).catch(() => { + this.setData({ + isAutoApplySpeakDialog: false + }) + }) + } else { + this.message('申请太频繁了,请稍后重试!').error(); + } + }, + cancelIsAutoApplySpeakDialog() { + this.setData({ + isAutoApplySpeakDialog: false + }) }, async reconnecFun() { offSignalr() diff --git a/pages/meeting/index.wxml b/pages/meeting/index.wxml index 42e0e75..a171314 100644 --- a/pages/meeting/index.wxml +++ b/pages/meeting/index.wxml @@ -16,7 +16,7 @@ - + @@ -135,4 +135,5 @@ - \ No newline at end of file + + \ No newline at end of file