From 7595af1d33bb4750adfd24619f532b7cdc235232 Mon Sep 17 00:00:00 2001 From: wangyifeng <812766448@qq.com> Date: Sat, 22 Mar 2025 14:22:09 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=861116=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=EF=BC=9B=E6=96=B0=E5=A2=9E=E6=9F=A5=E7=9C=8B?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components.d.ts | 2 + src/components/talk/message/RevokeMessage.vue | 1 - .../system/SysGroupInfoChangeMessage.vue | 23 +++++++ src/constant/message.ts | 6 +- src/event/talk.js | 28 ++++++++- .../groupManage/manageGroupDeps.vue | 1 + src/pages/chatSettings/index.vue | 2 +- src/pages/dialog/components/filePanel.vue | 2 + src/pages/dialog/index.vue | 48 ++++++++++++-- src/pages/search/components/searchList.vue | 63 +++++++++++++------ 10 files changed, 148 insertions(+), 28 deletions(-) create mode 100644 src/components/talk/message/system/SysGroupInfoChangeMessage.vue diff --git a/components.d.ts b/components.d.ts index 5202040..f78adde 100644 --- a/components.d.ts +++ b/components.d.ts @@ -39,6 +39,8 @@ declare module 'vue' { SysGroupAdminMessage: typeof import('./src/components/talk/message/system/SysGroupAdminMessage.vue')['default'] SysGroupCancelMutedMessage: typeof import('./src/components/talk/message/system/SysGroupCancelMutedMessage.vue')['default'] SysGroupCreateMessage: typeof import('./src/components/talk/message/system/SysGroupCreateMessage.vue')['default'] + SysGroupInfoChange: typeof import('./src/components/talk/message/system/SysGroupInfoChange.vue')['default'] + SysGroupInfoChangeMessage: typeof import('./src/components/talk/message/system/SysGroupInfoChangeMessage.vue')['default'] SysGroupJoinMessage: typeof import('./src/components/talk/message/system/SysGroupJoinMessage.vue')['default'] SysGroupMemberCancelMutedMessage: typeof import('./src/components/talk/message/system/SysGroupMemberCancelMutedMessage.vue')['default'] SysGroupMemberKickedMessage: typeof import('./src/components/talk/message/system/SysGroupMemberKickedMessage.vue')['default'] diff --git a/src/components/talk/message/RevokeMessage.vue b/src/components/talk/message/RevokeMessage.vue index 334b40f..01334ca 100644 --- a/src/components/talk/message/RevokeMessage.vue +++ b/src/components/talk/message/RevokeMessage.vue @@ -66,7 +66,6 @@ defineProps({ {{revokeInfo.withdraw_name}}撤回了你一条消息 | {{ formatTime(datetime) }} - {{extra}} {{revokeInfo.withdraw_name}}撤回了{{revokeInfo.retracted_name}}一条消息 | diff --git a/src/components/talk/message/system/SysGroupInfoChangeMessage.vue b/src/components/talk/message/system/SysGroupInfoChangeMessage.vue new file mode 100644 index 0000000..806e629 --- /dev/null +++ b/src/components/talk/message/system/SysGroupInfoChangeMessage.vue @@ -0,0 +1,23 @@ + + + diff --git a/src/constant/message.ts b/src/constant/message.ts index 8f16d04..11e0e2f 100644 --- a/src/constant/message.ts +++ b/src/constant/message.ts @@ -28,7 +28,7 @@ export const ChatMsgSysGroupNotice = 1111 // 编辑群公告 export const ChatMsgSysGroupTransfer = 1113 // 变更群主 export const ChatMsgSysGroupAdmin = 1114 // 设置管理员 export const ChatMsgSysGroupMemberRemoved = 1115 // 移出群成员消息(部门群、公司群自动移出) -export const ChatMsgSysGroupNameChange = 1116 // 修改群名称 +export const ChatMsgSysGroupInfoChange = 1116 // 管理员更新了群信息 export const ChatMsgTypeMapping = { [ChatMsgTypeText]: '[文本消息]', @@ -60,7 +60,7 @@ export const ChatMsgTypeMapping = { [ChatMsgSysGroupTransfer]: '[转让群主]', [ChatMsgSysGroupAdmin]: '[设置管理员]', [ChatMsgSysGroupMemberRemoved]: '[移出群成员消息]', - [ChatMsgSysGroupNameChange]: '[修改群名称]' + [ChatMsgSysGroupInfoChange]: '[修改群名称]' } // 消息类型 - 消息组件 映射关系 @@ -93,7 +93,7 @@ export const MessageComponents = { [ChatMsgSysGroupTransfer]: 'sys-group-transfer-message', [ChatMsgSysGroupAdmin]:'sys-group-admin-message', [ChatMsgSysGroupMemberRemoved]:'sys-group-member-removed-message', - [ChatMsgSysGroupNameChange]:'sys-group-name-change-message' + [ChatMsgSysGroupInfoChange]:'sys-group-info-change-message' } // 可转发的消息类型 diff --git a/src/event/talk.js b/src/event/talk.js index 11c0cee..5c0dbfd 100644 --- a/src/event/talk.js +++ b/src/event/talk.js @@ -6,7 +6,7 @@ import * as message from '@/constant/message' import { formatTalkItem, palyMusic, formatTalkRecord } from '@/utils/talk' // import { isElectronMode } from '@/utils/common' import { ServeClearTalkUnreadNum, ServeCreateTalkList } from '@/api/chat/index.js' -import { useTalkStore, useDialogueStore,useDialogueListStore } from '@/store' +import { useTalkStore, useDialogueStore,useDialogueListStore,useGroupStore } from '@/store' /** * 好友状态事件 @@ -181,6 +181,24 @@ class Talk extends Base { if ([1102, 1103, 1104, 1115].includes(record.msg_type)) { useDialogueStore().updateGroupMembers() } + if ([1116].includes(record.msg_type)) { + // 更新会话信息 + useDialogueStore().setDialogue({ + name: record.extra.group_name, + talk_type: record.talk_type, + receiver_id: record.receiver_id, + }) + // 更新群聊信息 + useGroupStore().updateGroupInfo({ + group_name: record.extra.group_name, + avatar: record.extra.group_avatar, + }) + // 更新会话列表中的会话信息 + const dialogue = useDialogueListStore().getDialogueList(`${record.talk_type}_${record.receiver_id}`) + if (dialogue) { + dialogue.talk.username = record.extra.group_name + } + } addDialogueRecord([newRecord],'add') addChatRecord(this.getIndexName(),newRecord) useDialogueStore().addDialogueRecord(newRecord) @@ -233,6 +251,14 @@ class Talk extends Base { msg_text: this.getTalkText(), updated_at: parseTime(new Date()) }) + if(this.resource.msg_type == 1116){ + // 更新会话列表中的会话信息 + const dialogue = useDialogueListStore().getDialogueList(`${this.resource.talk_type}_${this.resource.receiver_id}`) + if (dialogue) { + dialogue.talk.username = this.resource.extra.group_name + } + useTalkStore().loadTalkList() + } } } diff --git a/src/pages/chatSettings/groupManage/manageGroupDeps.vue b/src/pages/chatSettings/groupManage/manageGroupDeps.vue index 5833e6b..66a3370 100644 --- a/src/pages/chatSettings/groupManage/manageGroupDeps.vue +++ b/src/pages/chatSettings/groupManage/manageGroupDeps.vue @@ -64,6 +64,7 @@ onMounted(() => { background-color: #fff; .group-deps-list-each { padding: 34rpx 32rpx; + border-bottom: 1px solid $theme-border-color; span { font-size: 28rpx; font-weight: 500; diff --git a/src/pages/chatSettings/index.vue b/src/pages/chatSettings/index.vue index e242c37..f83f5a7 100644 --- a/src/pages/chatSettings/index.vue +++ b/src/pages/chatSettings/index.vue @@ -383,7 +383,7 @@ const updateGroupInfos = () => { state.chatGroupInfos = [ { label: t('chat.settings.groupName'), - hasPointer: true, + hasPointer: groupParams?.groupInfo?.is_manager ? true : false, value: groupName.value, subValue: '', customInfo: '', diff --git a/src/pages/dialog/components/filePanel.vue b/src/pages/dialog/components/filePanel.vue index 3c9a9ea..b0769fa 100644 --- a/src/pages/dialog/components/filePanel.vue +++ b/src/pages/dialog/components/filePanel.vue @@ -108,6 +108,8 @@ const photoActionsSelect = (index) => { } else { uni.chooseVideo({ sourceType: ['album'], + compressed: true, + maxDuration: 60, success: async (res) => { console.log(res, 'res') let data = await onUploadImageVideo( diff --git a/src/pages/dialog/index.vue b/src/pages/dialog/index.vue index 8fe4a5e..fb8ff90 100644 --- a/src/pages/dialog/index.vue +++ b/src/pages/dialog/index.vue @@ -115,7 +115,12 @@ -