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)"
>
-
+ allCheck(allCheckStatus)" :modelValue="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 @@
+ :isLoading="isLoading" :disabled="confirmBtnStatus || isLoading">
@@ -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": "投诉举报",