From d781a94a8927ebcdb4481b19c47c2a66ab3423c2 Mon Sep 17 00:00:00 2001
From: wangyifeng <812766448@qq.com>
Date: Fri, 21 Mar 2025 17:01:34 +0800
Subject: [PATCH 1/2] =?UTF-8?q?A-Z=E6=8E=92=E5=BA=8F=E7=9A=84=E4=BA=BA?=
=?UTF-8?q?=E5=91=98=E5=88=97=E8=A1=A8=E6=96=B0=E5=A2=9E#=E5=A4=84?=
=?UTF-8?q?=E7=90=86=E9=A6=96=E5=AD=97=E6=AF=8D=E4=B8=8D=E5=9C=A8=E5=85=B6?=
=?UTF-8?q?=E4=B8=AD=E7=9A=84=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=EF=BC=9B=E5=A4=84=E7=90=86?=
=?UTF-8?q?=E8=81=8A=E5=A4=A9=E8=AE=B0=E5=BD=95=E6=9C=AC=E5=9C=B0=E7=BC=93?=
=?UTF-8?q?=E5=AD=98=E6=97=B6=E5=8D=A1=E6=AD=BB=E7=9A=84=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/constant/message.ts | 12 ++-
src/event/talk.js | 2 +-
src/pages.json | 8 ++
.../components/selectMemberByAlphabet.vue | 60 +++++++++++----
.../components/settingFormItem.vue | 3 +-
.../groupManage/manageGroupDeps.vue | 75 +++++++++++++++++++
src/pages/chatSettings/index.vue | 6 +-
src/pages/dialog/index.vue | 4 +-
src/store/modules/dialogueList.js | 58 +++++++++-----
src/uni_modules/tmui/locale/zh-Hans.json | 3 +-
src/utils/talk.js | 8 +-
11 files changed, 192 insertions(+), 47 deletions(-)
create mode 100644 src/pages/chatSettings/groupManage/manageGroupDeps.vue
diff --git a/src/constant/message.ts b/src/constant/message.ts
index 7f3a46f..8f16d04 100644
--- a/src/constant/message.ts
+++ b/src/constant/message.ts
@@ -17,7 +17,7 @@ export const ChatMsgSysText = 1000 // 系统文本消息
export const ChatMsgSysGroupCreate = 1101 // 创建群聊消息
export const ChatMsgSysGroupMemberJoin = 1102 // 加入群聊消息
export const ChatMsgSysGroupMemberQuit = 1103 // 群成员退出群消息
-export const ChatMsgSysGroupMemberKicked = 1104 // 移出群成员消息
+export const ChatMsgSysGroupMemberKicked = 1104 // 移出群成员消息(普通群、项目群被踢)
export const ChatMsgSysGroupMessageRevoke = 1105 // 管理员撤回成员消息
export const ChatMsgSysGroupDismissed = 1106 // 群解散
export const ChatMsgSysGroupMuted = 1107 // 群禁言
@@ -27,6 +27,8 @@ export const ChatMsgSysGroupMemberCancelMuted = 1110 // 群成员解除禁言
export const ChatMsgSysGroupNotice = 1111 // 编辑群公告
export const ChatMsgSysGroupTransfer = 1113 // 变更群主
export const ChatMsgSysGroupAdmin = 1114 // 设置管理员
+export const ChatMsgSysGroupMemberRemoved = 1115 // 移出群成员消息(部门群、公司群自动移出)
+export const ChatMsgSysGroupNameChange = 1116 // 修改群名称
export const ChatMsgTypeMapping = {
[ChatMsgTypeText]: '[文本消息]',
@@ -56,7 +58,9 @@ export const ChatMsgTypeMapping = {
[ChatMsgSysGroupMemberCancelMuted]: '[群成员解除禁言消息]',
[ChatMsgSysGroupNotice]: '[群公告]',
[ChatMsgSysGroupTransfer]: '[转让群主]',
- [ChatMsgSysGroupAdmin]: '[设置管理员]'
+ [ChatMsgSysGroupAdmin]: '[设置管理员]',
+ [ChatMsgSysGroupMemberRemoved]: '[移出群成员消息]',
+ [ChatMsgSysGroupNameChange]: '[修改群名称]'
}
// 消息类型 - 消息组件 映射关系
@@ -87,7 +91,9 @@ export const MessageComponents = {
[ChatMsgSysGroupMemberMuted]: 'sys-group-member-muted-message',
[ChatMsgSysGroupMemberCancelMuted]: 'sys-group-member-cancel-muted-message',
[ChatMsgSysGroupTransfer]: 'sys-group-transfer-message',
- [ChatMsgSysGroupAdmin]:'sys-group-admin-message'
+ [ChatMsgSysGroupAdmin]:'sys-group-admin-message',
+ [ChatMsgSysGroupMemberRemoved]:'sys-group-member-removed-message',
+ [ChatMsgSysGroupNameChange]:'sys-group-name-change-message'
}
// 可转发的消息类型
diff --git a/src/event/talk.js b/src/event/talk.js
index aaf7488..11c0cee 100644
--- a/src/event/talk.js
+++ b/src/event/talk.js
@@ -178,7 +178,7 @@ class Talk extends Base {
let newRecord = formatTalkRecord(this.getAccountId(), this.resource);
const {addDialogueRecord,addChatRecord} = useDialogueListStore()
// 群成员变化的消息,需要更新群成员列表
- if ([1102, 1103, 1104].includes(record.msg_type)) {
+ if ([1102, 1103, 1104, 1115].includes(record.msg_type)) {
useDialogueStore().updateGroupMembers()
}
addDialogueRecord([newRecord],'add')
diff --git a/src/pages.json b/src/pages.json
index 8e516c8..a7ab3b9 100644
--- a/src/pages.json
+++ b/src/pages.json
@@ -178,6 +178,14 @@
"navigationStyle": "custom",
"enablePullDownRefresh": false
}
+ },
+ {
+ "path": "pages/chatSettings/groupManage/manageGroupDeps",
+ "type": "page",
+ "style": {
+ "navigationStyle": "custom",
+ "enablePullDownRefresh": false
+ }
}
],
"globalStyle": {
diff --git a/src/pages/chatSettings/components/selectMemberByAlphabet.vue b/src/pages/chatSettings/components/selectMemberByAlphabet.vue
index 6c8780f..b266373 100644
--- a/src/pages/chatSettings/components/selectMemberByAlphabet.vue
+++ b/src/pages/chatSettings/components/selectMemberByAlphabet.vue
@@ -69,7 +69,7 @@
alphabetItem?.memberList?.length > 0 &&
alphabetItem?.key !== '0'
"
- :id="alphabetItem.key"
+ :id="alphabetItem.key === '#' ? 'special-hash' : alphabetItem.key"
:ref="
(el) => {
if (el) alphabetElementRefs[alphabetIndex] = el
@@ -418,16 +418,47 @@ const assembleAlphabetMemberList = async (newMemberList) => {
String.fromCharCode(i + 65),
)
let tempAlphabet = []
+
+ // 创建一个对象来存储所有分组的数据
+ let groupedData = {
+ '#': []
+ }
+ alphabet.forEach(letter => {
+ groupedData[letter] = []
+ })
+
+ // 对数据进行分组
+ if (newMemberList) {
+ newMemberList.forEach(item => {
+ const key = item.key?.toUpperCase()
+ if (alphabet.includes(key)) {
+ groupedData[key].push(item)
+ } else {
+ groupedData['#'].push(item)
+ }
+ })
+ }
+
+ // 将分组数据转换为最终格式
alphabet.forEach((letter) => {
- const matchedItems = newMemberList.filter((item) => item.key === letter)
- if (matchedItems.length > 0) {
+ if (groupedData[letter].length > 0) {
tempAlphabet.push(letter)
}
resultMemberList.value.push({
key: letter,
- memberList: matchedItems.length ? matchedItems : [],
+ memberList: groupedData[letter],
})
})
+
+ // 添加#分组(如果有数据)
+ if (groupedData['#'].length > 0) {
+ tempAlphabet.push('#')
+ resultMemberList.value.push({
+ key: '#',
+ memberList: groupedData['#'],
+ })
+ }
+
state.alphabet = tempAlphabet
if (props?.manageType === 'mention' && !props?.isMulSelect) {
resultMemberList.value.unshift({
@@ -544,15 +575,17 @@ const getPosiByDep = async (departmentIdsArr) => {
const scrollToView = (alphabet) => {
state.currentAlphabet = alphabet
state.isAssign = true
- console.log()
- zPaging.value?.scrollIntoViewById(
- alphabet,
- document.getElementById('topArea')?.clientHeight
- ? document.getElementById('topArea').clientHeight - 1
- : props?.manageType === 'mention'
- ? 140
- : 80,
- )
+
+ // 计算偏移高度
+ const offsetHeight = document.getElementById('topArea')?.clientHeight
+ ? document.getElementById('topArea').clientHeight - 1
+ : props?.manageType === 'mention'
+ ? 140
+ : 80
+
+ // 使用scrollIntoViewById处理所有情况
+ const targetId = alphabet === '#' ? 'special-hash' : alphabet
+ zPaging.value?.scrollIntoViewById(targetId, offsetHeight)
}
//监听列表滚动
@@ -754,3 +787,4 @@ defineExpose({
}
}
+
diff --git a/src/pages/chatSettings/components/settingFormItem.vue b/src/pages/chatSettings/components/settingFormItem.vue
index 94b0384..2742782 100644
--- a/src/pages/chatSettings/components/settingFormItem.vue
+++ b/src/pages/chatSettings/components/settingFormItem.vue
@@ -16,7 +16,8 @@
props?.item?.hasPointer &&
(props?.isManager ||
(!props?.isManager &&
- props?.item?.label !== $t('chat.settings.groupName')))
+ (props?.item?.label !== $t('chat.settings.groupName') ||
+ props?.item?.label !== $t('chat.settings.groupType'))))
"
src="/src/static/image/chatSettings/pointer.png"
/>
diff --git a/src/pages/chatSettings/groupManage/manageGroupDeps.vue b/src/pages/chatSettings/groupManage/manageGroupDeps.vue
new file mode 100644
index 0000000..5833e6b
--- /dev/null
+++ b/src/pages/chatSettings/groupManage/manageGroupDeps.vue
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+ {{ item.dept_name }}
+
+
+
+
+
+
+
+
diff --git a/src/pages/chatSettings/index.vue b/src/pages/chatSettings/index.vue
index 370556f..e242c37 100644
--- a/src/pages/chatSettings/index.vue
+++ b/src/pages/chatSettings/index.vue
@@ -397,7 +397,7 @@ const updateGroupInfos = () => {
},
{
label: t('chat.settings.groupType'),
- hasPointer: false,
+ hasPointer: groupParams?.groupInfo?.group_type === 2 ? true : false,
value: groupType.value + '群',
subValue: '',
customInfo: '',
@@ -463,6 +463,10 @@ const toManagePage = (label) => {
uni.navigateTo({
url: `/pages/chatSettings/groupManage/manageNotice?is_manager=${groupParams?.groupInfo?.is_manager}`,
})
+ } else if (label === t('chat.settings.groupType')) {
+ uni.navigateTo({
+ url: `/pages/chatSettings/groupManage/manageGroupDeps`,
+ })
} else if (label === t('chat.settings.groupMember')) {
uni.navigateTo({
url:
diff --git a/src/pages/dialog/index.vue b/src/pages/dialog/index.vue
index 398a2b1..8fe4a5e 100644
--- a/src/pages/dialog/index.vue
+++ b/src/pages/dialog/index.vue
@@ -94,7 +94,7 @@
v-else
class="message-box record-box"
:class="{
- 'direction-rt': item.float == 'right',
+ 'direction-rt': item.user_id === talkParams.uid,
'multi-select': dialogueStore.isOpenMultiSelect,
'multi-select-check': item.isCheck,
}"
@@ -130,7 +130,7 @@
@
{{ item.nickname }}
diff --git a/src/store/modules/dialogueList.js b/src/store/modules/dialogueList.js
index 2f57660..1114290 100644
--- a/src/store/modules/dialogueList.js
+++ b/src/store/modules/dialogueList.js
@@ -7,8 +7,8 @@ import { createGlobalState, useStorage } from '@vueuse/core'
import { uniStorage } from '@/utils/uniStorage.js'
export const useDialogueListStore = createGlobalState(() => {
- // const dialogueList = useStorage('dialogueList', [], uniStorage)
- const dialogueList = ref([])
+ const dialogueList = useStorage('dialogueList', [], uniStorage)
+ // const dialogueList = ref([])
const zpagingRef = ref()
const virtualList = ref([])
@@ -19,18 +19,47 @@ export const useDialogueListStore = createGlobalState(() => {
const addDialogueRecord = (newRecords, type = 'add') => {
console.log(newRecords)
- const dialogue = lodash.cloneDeep(useDialogueStore())
+ const dialogue = useDialogueStore()
if (!dialogue || typeof dialogue !== 'object') return
// 检查是否已存在相同 index_name 的对话
const existingIndex = dialogueList.value.findIndex(
(item) => item.index_name === dialogue.index_name,
)
if (existingIndex === -1) {
- // 如果不存在,直接添加
- dialogueList.value.push(dialogue)
+ // 如果不存在,创建新对话,只保存需要的属性
+ const newDialogue = {
+ index_name: dialogue.index_name,
+ talk: {
+ username: dialogue.talk.username,
+ talk_type: dialogue.talk.talk_type,
+ receiver_id: dialogue.talk.receiver_id
+ },
+ online: dialogue.online,
+ records: dialogue.records || [],
+ unreadBubble: dialogue.unreadBubble,
+ isOpenMultiSelect: dialogue.isOpenMultiSelect,
+ isShowEditor: dialogue.isShowEditor,
+ isShowSessionList: dialogue.isShowSessionList,
+ isDismiss: dialogue.isDismiss,
+ members: dialogue.members.map(member => ({
+ id: member.id,
+ nickname: member.nickname,
+ avatar: member.avatar,
+ gender: member.gender,
+ leader: member.leader,
+ remark: member.remark,
+ online: member.online,
+ value: member.value,
+ key: member.key,
+ erp_user_id: member.erp_user_id,
+ is_mute: member.is_mute,
+ is_mine: member.is_mine
+ })),
+ forwardType: dialogue.forwardType
+ }
+ dialogueList.value.push(newDialogue)
} else {
// 如果对话存在,处理 records 数组
- const { records = [] } = dialogue
newRecords.forEach((newRecord) => {
const recordIndex = dialogueList.value[existingIndex].records.findIndex(
(record) => record.msg_id === newRecord.msg_id,
@@ -45,18 +74,11 @@ export const useDialogueListStore = createGlobalState(() => {
}
}
})
-
- // 更新除 records 和 index_name 外的其他属性
- const { index_name, records: _, ...updateProps } = dialogue
- dialogueList.value[existingIndex] = {
- ...dialogueList.value[existingIndex],
- ...updateProps,
- }
}
}
const updateDialogueRecord = (record) => {
- const dialogue = lodash.cloneDeep(useDialogueStore())
+ const dialogue = useDialogueStore()
const item = getDialogueList(dialogue.index_name)
const recordIndex = item.records.findIndex(
(item) => item.msg_id === record.msg_id,
@@ -79,7 +101,7 @@ export const useDialogueListStore = createGlobalState(() => {
}
const deleteDialogueRecord = (record) => {
- const dialogue = lodash.cloneDeep(useDialogueStore())
+ const dialogue = useDialogueStore()
const item = getDialogueList(dialogue.index_name)
const recordIndex = item.records.findIndex(
(item) => item.msg_id === record.msg_id,
@@ -105,7 +127,7 @@ export const useDialogueListStore = createGlobalState(() => {
}
const addChatRecord = (indexName, item) => {
- const dialogue = lodash.cloneDeep(useDialogueStore())
+ const dialogue = useDialogueStore()
if (dialogue?.index_name === indexName) {
if (item?.file_num) {
const index = virtualList.value.findIndex(
@@ -125,7 +147,7 @@ export const useDialogueListStore = createGlobalState(() => {
}
const batchDelDialogueRecord = (msgIds) => {
- const dialogue = lodash.cloneDeep(useDialogueStore())
+ const dialogue = useDialogueStore()
const item = getDialogueList(dialogue.index_name)
item.records = item.records.filter((item) => !msgIds.includes(item.msg_id))
}
@@ -143,7 +165,7 @@ export const useDialogueListStore = createGlobalState(() => {
//清空聊天记录时,同时清空本地保存的聊天记录
const clearDialogueRecord = () => {
- const dialogue = lodash.cloneDeep(useDialogueStore())
+ const dialogue = useDialogueStore()
const item = getDialogueList(dialogue.index_name)
item.records = []
virtualList.value = []
diff --git a/src/uni_modules/tmui/locale/zh-Hans.json b/src/uni_modules/tmui/locale/zh-Hans.json
index 601a494..53be61f 100644
--- a/src/uni_modules/tmui/locale/zh-Hans.json
+++ b/src/uni_modules/tmui/locale/zh-Hans.json
@@ -153,5 +153,6 @@
"choose.deps.current": "当前",
"chat.mention.select": "选择提醒的人",
"do.phone.call": "拨打",
- "popup.title.phone": "电话"
+ "popup.title.phone": "电话",
+ "pageTitle.view.deps": "查看部门"
}
diff --git a/src/utils/talk.js b/src/utils/talk.js
index a99a244..83557bd 100644
--- a/src/utils/talk.js
+++ b/src/utils/talk.js
@@ -3,14 +3,8 @@ import { parseTime } from './datetime'
export const KEY_INDEX_NAME = 'send_message_index_name'
export function formatTalkRecord(uid, data) {
- data.float = 'center'
-
- if (data.user_id > 0) {
- data.float = data.user_id == uid ? 'right' : 'left'
- }
-
+ // 不再设置float值,改为在模板中动态判断
data.isCheck = false
-
return data
}
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 2/2] =?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 @@
+
+
+
+
+
+
+ {{ data.nickname }}
+
+
修改群名为
+
"{{ extra.group_name }}"
+
+
+
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 @@
-