From 3fe60616a5e1f3e63da068e5fa19799e5cf1e5c2 Mon Sep 17 00:00:00 2001
From: wangyifeng <812766448@qq.com>
Date: Fri, 14 Mar 2025 13:15:54 +0800
Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E6=B5=8B=E8=AF=95=E5=87=BA?=
=?UTF-8?q?=E7=8E=B0=E7=9A=84=E7=BB=86=E8=8A=82=E9=97=AE=E9=A2=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/selectMemberByAlphabet.vue | 2 +
src/pages/chatSettings/index.vue | 4 +-
src/pages/dialog/dialogDetail/userDetail.vue | 2 +-
src/pages/dialog/index.vue | 62 +++++++++++++------
src/pages/search/searchByCondition/index.vue | 16 ++---
src/store/modules/dialogue.js | 5 ++
src/utils/talk.js | 3 +-
7 files changed, 65 insertions(+), 29 deletions(-)
diff --git a/src/pages/chatSettings/components/selectMemberByAlphabet.vue b/src/pages/chatSettings/components/selectMemberByAlphabet.vue
index faf7093..99cc23e 100644
--- a/src/pages/chatSettings/components/selectMemberByAlphabet.vue
+++ b/src/pages/chatSettings/components/selectMemberByAlphabet.vue
@@ -684,6 +684,8 @@ const confirmSelectMembers = () => {
resp.then(({ code, data }) => {
console.log(data)
if (code == 200) {
+ // console.error(-selectedUserIds.split(',').length)
+ emits('updateSelectedMembersNum', -selectedUserIds.split(',').length)
useDialogueStore().updateGroupMembers()
groupStore.ServeGroupDetail()
} else {
diff --git a/src/pages/chatSettings/index.vue b/src/pages/chatSettings/index.vue
index 330e68a..d113755 100644
--- a/src/pages/chatSettings/index.vue
+++ b/src/pages/chatSettings/index.vue
@@ -260,7 +260,9 @@ onLoad(async (options) => {
console.log(options.groupId)
state.groupId = Number(options.groupId)
await groupStore.ServeGroupDetail()
- await groupStore.ServeGetGroupNotices()
+ if (dialogueParams.type === 2) {
+ await groupStore.ServeGetGroupNotices()
+ }
}
if (options.sessionId) {
state.sessionId = Number(options.sessionId)
diff --git a/src/pages/dialog/dialogDetail/userDetail.vue b/src/pages/dialog/dialogDetail/userDetail.vue
index 7f771fd..2024328 100644
--- a/src/pages/dialog/dialogDetail/userDetail.vue
+++ b/src/pages/dialog/dialogDetail/userDetail.vue
@@ -115,7 +115,7 @@ const state = reactive({
erpUserId: '', //erp用户id
userInfo: null, //用户详情
userBasicInfos: [], //用户基本信息
- isShowPhoneCall: true, //是否显示电话拨号弹框
+ isShowPhoneCall: false, //是否显示电话拨号弹框
phoneNumber: '', //手机号
})
diff --git a/src/pages/dialog/index.vue b/src/pages/dialog/index.vue
index 21a4b40..5e0c963 100644
--- a/src/pages/dialog/index.vue
+++ b/src/pages/dialog/index.vue
@@ -24,7 +24,10 @@
公司群
-
+
-
- 重新编辑
-
+
+
+ 重新编辑
+
+
@@ -133,7 +145,7 @@
onContextMenu(menuType, item)"
:isShowCopy="isShowCopy(item)"
- :isShowWithdraw="isRevoke(talkParams.uid, item)"
+ :isShowWithdraw="isRevoke(talkParams.uid, item) || isLeader"
>
dialogueStore.online),
keyboard: computed(() => dialogueStore.keyboard),
num: computed(() => dialogueStore.members.length),
+ isDismiss: computed(() => dialogueStore.isDismiss),
+ adminList: computed(() => dialogueStore.getAdminList),
})
const state = ref({
@@ -768,8 +782,8 @@ const onEditorChange = () => {
// emit('editor-event', emitCall('input_event', text))
// 清理过期的撤回消息(超过5分钟)
const now = new Date().getTime()
- Object.keys(state.value.revokedMessages).forEach(msgId => {
- if ((now - state.value.revokedMessages[msgId].revokeTime) > 5 * 60 * 1000) {
+ Object.keys(state.value.revokedMessages).forEach((msgId) => {
+ if (now - state.value.revokedMessages[msgId].revokeTime > 5 * 60 * 1000) {
delete state.value.revokedMessages[msgId]
}
})
@@ -932,27 +946,26 @@ const withdrawerConfirm = () => {
// 添加检查是否可以重新编辑撤回消息的函数
const canEditRevokedMessage = (item) => {
- console.log( item)
- if(item.is_revoke === 1 && item.msg_type === 1) {
- const now = new Date().getTime();
- const revokeTime = new Date(item.created_at).getTime();
+ console.log(item)
+ if (item.is_revoke === 1 && item.msg_type === 1) {
+ const now = new Date().getTime()
+ const revokeTime = new Date(item.created_at).getTime()
console.log(now)
// 检查是否在5分钟内
- return (now - revokeTime) <= 5 * 60 * 1000
+ return now - revokeTime <= 5 * 60 * 1000
}
return false
-
}
// 添加恢复撤回消息到输入框的函数
const restoreRevokedMessage = async (item) => {
// 接口拿数据,之后把查询的内容给输入框
const res = await detailGetRecordsContext({
- msgId: item.msg_id
+ msgId: item.msg_id,
})
console.log(res)
- if(res.code == 200) {
- const content = res.data.item?.extra?.content;
+ if (res.code == 200) {
+ const content = res.data.item?.extra?.content
const quill = getQuill()
quill.setText(content)
// 将光标设置到文本末尾
@@ -970,7 +983,6 @@ const restoreRevokedMessage = async (item) => {
// 可以根据需要添加其他类型消息的处理
}
-
const actionDelete = (item) => {
console.log('删除')
item.isCheck = true
@@ -1290,6 +1302,18 @@ const queryRecordsByMsgInfo = (msgInfo) => {
}
}
+//是否是管理员
+const isLeader = computed(() => {
+ if (talkParams.adminList.length > 0) {
+ return (
+ talkParams.adminList.filter(
+ (adminItem) => adminItem.erp_user_id === useAuth()?.userInfo?.value?.ID,
+ ).length > 0
+ )
+ }
+ return false
+})
+
onMounted(async () => {
nextTick(() => {
state.value.mentionSelectHeight = pxTorPx(
@@ -1340,7 +1364,7 @@ onUnmounted(() => {
.edit-revoked-message {
margin-left: 10rpx;
- color: #46299D;
+ color: #46299d;
cursor: pointer;
font-size: 24rpx;
diff --git a/src/pages/search/searchByCondition/index.vue b/src/pages/search/searchByCondition/index.vue
index faacf4a..135d3a6 100644
--- a/src/pages/search/searchByCondition/index.vue
+++ b/src/pages/search/searchByCondition/index.vue
@@ -351,7 +351,7 @@ onMounted(() => {
const ServeQueryTalkDate = (month) => {
let params = {
month: month,
- talk_type: 2, //1私聊2群聊
+ talk_type: dialogueParams.talk_type, //1私聊2群聊
receiver_id: state.receiver_id, //目标人id
}
const resp = ServeTalkDate(params)
@@ -477,12 +477,14 @@ const queryAllSearch = () => {
if (data?.items?.length > 0) {
data.items.forEach((item) => {
item.dateTime = parseTime(item?.created_at, '{m}/{d}')
- item.extra.fileSize = fileFormatSize(item?.extra?.size)
- item.extra.typeText = item?.extra?.name
- ? fileSuffix(item?.extra?.name)
- : ''
- item.extra.file_avatar = fileTypeAvatar(item?.extra?.typeText)
- console.log(item.extra.type)
+ if (item?.extra) {
+ item.extra.fileSize = fileFormatSize(item?.extra?.size)
+ item.extra.typeText = item?.extra?.name
+ ? fileSuffix(item?.extra?.name)
+ : ''
+ item.extra.file_avatar = fileTypeAvatar(item?.extra?.typeText)
+ console.log(item.extra.type)
+ }
let year = new Date(item.created_at).getFullYear()
let month = new Date(item.created_at).getMonth() + 1
let dateMonth =
diff --git a/src/store/modules/dialogue.js b/src/store/modules/dialogue.js
index c20027e..33157d7 100644
--- a/src/store/modules/dialogue.js
+++ b/src/store/modules/dialogue.js
@@ -48,6 +48,9 @@ export const useDialogueStore = defineStore('dialogue', {
// 是否显示会话列表
isShowSessionList: true,
+ //是否已被解散
+ isDismiss: false,
+
// 群成员列表
members: [],
@@ -98,6 +101,8 @@ export const useDialogueStore = defineStore('dialogue', {
this.unreadBubble = 0
this.isShowEditor = data?.is_robot === 0
+ this.isDismiss = data?.is_dismiss === 1 ? true : false
+
this.members = []
if (data.talk_type == 2) {
this.updateGroupMembers()
diff --git a/src/utils/talk.js b/src/utils/talk.js
index 941c1a5..a99a244 100644
--- a/src/utils/talk.js
+++ b/src/utils/talk.js
@@ -38,13 +38,14 @@ export function formatTalkItem(params) {
is_disturb: 0,
is_top: 0,
is_online: 0,
+ is_dismiss: 0,
is_robot: 0,
unread_num: 0,
content: '......',
draft_text: '',
msg_text: '',
index_name: '',
- updated_at: parseTime(new Date())
+ updated_at: parseTime(new Date()),
}
options = { ...options, ...params }