diff --git a/src/api/chat/index.js b/src/api/chat/index.js index e75c9b4..a405445 100644 --- a/src/api/chat/index.js +++ b/src/api/chat/index.js @@ -212,3 +212,21 @@ export const detailGetRecordsContext = (data) => { data, }) } + +// 获取自己消息已读回执列表 +export const ServeReadConditionList = (data) => { + return request({ + url: '/api/v1/talk/my-records/read/condition', + method: 'POST', + data, + }) +} + +// 获取消息已读未读详情 +export const ServeMessageReadDetail = (data) => { + return request({ + url: '/api/v1/talk/my-records/read/condition', + method: 'POST', + data, + }) +} \ No newline at end of file diff --git a/src/event/talk.js b/src/event/talk.js index e724cca..23aa8e2 100644 --- a/src/event/talk.js +++ b/src/event/talk.js @@ -244,7 +244,15 @@ class Talk extends Base { //群成员被移出时,需要更新群成员权限 if ([1104, 1115].includes(record.msg_type)) { - useDialogueStore().updateQuit() + console.error(this.resource.extra.members, 'this.resource.extra.members') + if (this.resource?.extra?.members?.length > 0) { + const isMeQuit = this.resource.extra.members.find( + (item) => item.user_id === this.getAccountId(), + ) + if (isMeQuit) { + useDialogueStore().updateQuit() + } + } } //群禁言变化时,需要更新群禁言状态——即更新群成员列表 @@ -286,12 +294,12 @@ class Talk extends Base { if (!this.isCurrSender()) { // 推送已读消息 - setTimeout(() => { - ws.emit('im.message.read', { - receiver_id: this.sender_id, - msg_ids: [this.resource.msg_id], - }) - }, 1000) + // setTimeout(() => { + // ws.emit('im.message.read', { + // receiver_id: this.sender_id, + // msg_ids: [this.resource.msg_id], + // }) + // }, 1000) } // 获取聊天面板元素节点 diff --git a/src/pages/chooseByDeps/index.vue b/src/pages/chooseByDeps/index.vue index 0021b34..ef6285d 100644 --- a/src/pages/chooseByDeps/index.vue +++ b/src/pages/chooseByDeps/index.vue @@ -56,7 +56,7 @@ @click="() => allCheck(allCheckStatus)" >
- +
{{ $t('radio.btn.selectAll') }} diff --git a/src/pages/creatGroupChat/index.vue b/src/pages/creatGroupChat/index.vue index 7d5c44b..49aafa6 100644 --- a/src/pages/creatGroupChat/index.vue +++ b/src/pages/creatGroupChat/index.vue @@ -106,7 +106,7 @@
@@ -219,58 +219,63 @@ url: '/pages/chooseByDeps/index?chooseMode=2', }) } + const isLoading = ref(false) - //点击发起群聊 + // 点击发起群聊 const handleConfirm = async () => { - console.log(allChooseMembers.value) - let erp_ids = '' - if (allChooseMembers?.value?.length > 0) { - allChooseMembers?.value?.forEach((ele) => { - if (!erp_ids) { - erp_ids = String(ele.ID) - } else { - erp_ids += ',' + ele.ID + if (isLoading.value) return + isLoading.value = true + + try { + let erp_ids = '' + if (allChooseMembers?.value?.length > 0) { + allChooseMembers.value.forEach((ele) => { + if (!erp_ids) { + erp_ids = String(ele.ID) + } else { + erp_ids += ',' + ele.ID + } + }) + } + + let res = null + + if (groupActiveIndex.value === 0) { + // 普通群 + const params = { + avatar: '', + name: groupName.value, + erp_ids: erp_ids, + type: 1, + profile: '', } - }) + console.log('普通群参数:', params) + res = await ServeCreateGroup(params) + } else if (groupActiveIndex.value === 1) { + // 部门群 + res = await createDepGroup() + } else if (groupActiveIndex.value === 2) { + // 项目群 + const params = { + avatar: '', + name: groupName.value, + erp_ids: erp_ids, + type: 3, + profile: '', + } + console.log('项目群参数:', params) + res = await ServeCreateGroup(params) + } + + if (res?.code === 200) { + resetGroupInfo() + uni.navigateBack() + } + } catch (err) { + console.error(err) + } finally { + isLoading.value = false } - if (groupActiveIndex.value === 0) { - //普通群 - let params = { - avatar: '', - name: groupName.value, - erp_ids: erp_ids, - type: 1, - profile: '', - } - console.log(params) - const res = await ServeCreateGroup(params) - if (res.code === 200) { - resetGroupInfo() - uni.navigateBack() - } - } else if (groupActiveIndex.value === 1) { - //部门群 - const res = await createDepGroup() - if (res.code === 200) { - resetGroupInfo() - uni.navigateBack() - } - } else if (groupActiveIndex.value === 2) { - //项目群 - let params = { - avatar: '', - name: groupName.value, - erp_ids: erp_ids, - type: 3, - profile: '', - } - console.log(params) - const res = await ServeCreateGroup(params) - if (res.code === 200) { - resetGroupInfo() - uni.navigateBack() - } - } else {} } //发起群聊按钮可点击状态 const confirmBtnStatus = computed(() => { diff --git a/src/pages/dialog/index.vue b/src/pages/dialog/index.vue index 0a772d0..db4fc39 100644 --- a/src/pages/dialog/index.vue +++ b/src/pages/dialog/index.vue @@ -67,7 +67,21 @@ v-for="item in virtualList" :id="`zp-id-${item.msg_id}`" :key="item.zp_index" + :data-msgid="item.msg_id" + :data-msgtype="item.msg_type" + :data-userid="item.user_id" + :data-talktype="talkParams.type" + :data-receiverid="talkParams.receiver_id" style="transform: scaleY(-1);" + :ref=" + (el) => { + if (el) { + if (item.zp_index !== undefined) { + messageRecordElementRefs[item.zp_index] = el + } + } + } + " >
@@ -205,6 +219,17 @@
--> +
+ 未读 + + 已读 (0/{{ (Number(talkParams.num)-1) > 0 ? Number(talkParams.num)-1 : 0 }}) + +
+
+ +
+
+ + {{ $t('cancel') }} + +
+
+ {{ $t('chat.msgRead.list') }} +
+
+
+
+ + +
+ +
+
+ +
+
+ {{ item.nickName }} + + {{ item.jobNum }} + +
+
+
+
+
+
+
diff --git a/src/uni_modules/tmui/locale/zh-Hans.json b/src/uni_modules/tmui/locale/zh-Hans.json index a9c42ee..a851331 100644 --- a/src/uni_modules/tmui/locale/zh-Hans.json +++ b/src/uni_modules/tmui/locale/zh-Hans.json @@ -156,6 +156,7 @@ "popup.title.phone": "电话", "pageTitle.view.deps": "查看部门", "group.dismiss.confirm": "确定解散本群", + "chat.msgRead.list": "消息接收人列表", "chat.settings.report": "投诉", "complaint": { "title": "投诉举报",