diff --git a/components.d.ts b/components.d.ts index 7d5f43c..2811a17 100644 --- a/components.d.ts +++ b/components.d.ts @@ -43,6 +43,7 @@ declare module 'vue' { SysGroupMemberKickedMessage: typeof import('./src/components/talk/message/system/SysGroupMemberKickedMessage.vue')['default'] SysGroupMemberMutedMessage: typeof import('./src/components/talk/message/system/SysGroupMemberMutedMessage.vue')['default'] SysGroupMemberQuitMessage: typeof import('./src/components/talk/message/system/SysGroupMemberQuitMessage.vue')['default'] + SysGroupMemberRemovedMessage: typeof import('./src/components/talk/message/system/SysGroupMemberRemovedMessage.vue')['default'] SysGroupMutedMessage: typeof import('./src/components/talk/message/system/SysGroupMutedMessage.vue')['default'] SysGroupTransferMessage: typeof import('./src/components/talk/message/system/SysGroupTransferMessage.vue')['default'] SysTextMessage: typeof import('./src/components/talk/message/system/SysTextMessage.vue')['default'] diff --git a/src/components/talk/message/system/SysGroupInfoChangeMessage.vue b/src/components/talk/message/system/SysGroupInfoChangeMessage.vue index 806e629..d0cfa0b 100644 --- a/src/components/talk/message/system/SysGroupInfoChangeMessage.vue +++ b/src/components/talk/message/system/SysGroupInfoChangeMessage.vue @@ -14,7 +14,8 @@ defineProps({
- {{ data.nickname }} + + 管理员 修改群名为 "{{ extra.group_name }}" diff --git a/src/components/talk/message/system/SysGroupMemberRemovedMessage.vue b/src/components/talk/message/system/SysGroupMemberRemovedMessage.vue new file mode 100644 index 0000000..f26af8b --- /dev/null +++ b/src/components/talk/message/system/SysGroupMemberRemovedMessage.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/constant/message.ts b/src/constant/message.ts index 11e0e2f..a421418 100644 --- a/src/constant/message.ts +++ b/src/constant/message.ts @@ -60,7 +60,7 @@ export const ChatMsgTypeMapping = { [ChatMsgSysGroupTransfer]: '[转让群主]', [ChatMsgSysGroupAdmin]: '[设置管理员]', [ChatMsgSysGroupMemberRemoved]: '[移出群成员消息]', - [ChatMsgSysGroupInfoChange]: '[修改群名称]' + [ChatMsgSysGroupInfoChange]: '[群信息更新]' } // 消息类型 - 消息组件 映射关系 diff --git a/src/pages/chatSettings/index.vue b/src/pages/chatSettings/index.vue index ae15279..0afb54d 100644 --- a/src/pages/chatSettings/index.vue +++ b/src/pages/chatSettings/index.vue @@ -167,7 +167,6 @@ @click="showConfirmPrompt(3)" class="clear-chat-record-btn-each" v-if=" - groupParams?.groupInfo?.is_manager === false && dialogueParams.type === 2 && (groupParams?.groupInfo?.group_type === 1 || groupParams?.groupInfo?.group_type === 3) @@ -226,6 +225,7 @@ const dialogueParams = reactive({ keyboard: computed(() => dialogueStore.keyboard), num: computed(() => dialogueStore.members.length), memberList: computed(() => dialogueStore.members), + adminList: computed(() => dialogueStore.getAdminList), }) const talkParams = reactive({ topItems: computed(() => talkStore.topItems), @@ -563,14 +563,20 @@ const showConfirmPrompt = (flag) => { confirmContent = t('ok') + t('chat.settings.clearChatRecord') } else if (flag === 2) { //解散群聊 - confirmContent = t('ok') + t('group.quit.btn') - subContent = t('groupManage.disband.hint') - subContentColor = '#CF3050' + confirmContent = t('group.dismiss.confirm') } else if (flag === 3) { - //退出群聊 - confirmContent = t('ok') + t('group.quit.btn') - subContent = t('groupManage.quit.hint') - subContentColor = '#B4B4B4' + //最后一个管理员退群就解散群聊 + if (dialogueParams.adminList.length === 1 && dialogueParams.adminList[0].id === dialogueParams.uid) { + //解散群聊 + confirmContent = t('ok') + t('group.quit.btn') + subContent = t('groupManage.disband.hint') + subContentColor = '#CF3050' + } else { + //退出群聊 + confirmContent = t('ok') + t('group.quit.btn') + subContent = t('groupManage.quit.hint') + subContentColor = '#B4B4B4' + } } showConfirm({ subContent: subContent, @@ -597,14 +603,32 @@ const showConfirmPrompt = (flag) => { }) } } else if (flag === 3) { - ServeSecedeGroup({ - group_id: dialogueParams.receiver_id, - }).then(({ code, message }) => { - if (code == 200) { - // dialogueStore.apiClearRecord() - } else { + //最后一个管理员退群就解散群聊 + if (dialogueParams.adminList.length === 1 && dialogueParams.adminList[0].id === dialogueParams.uid) { + //解散群聊 + let params = { + group_id: dialogueParams.receiver_id, //群id } - }) + console.log(params) + const res = await ServeDismissGroup(params) + if (res.code === 200) { + dialogueStore.updateGroupMembers() + groupStore.ServeGroupDetail() + uni.navigateBack({ + delta: 2, + }) + } + } else { + //退出群聊 + ServeSecedeGroup({ + group_id: dialogueParams.receiver_id, + }).then(({ code, message }) => { + if (code == 200) { + // dialogueStore.apiClearRecord() + } else { + } + }) + } } }, onCancel: () => {}, diff --git a/src/pages/dialog/index.vue b/src/pages/dialog/index.vue index b31887a..0e11345 100644 --- a/src/pages/dialog/index.vue +++ b/src/pages/dialog/index.vue @@ -26,7 +26,7 @@