From 7b4c7028a0aac3c3f0e68e16c3e0b9bdc2ecac65 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 5 May 2026 16:58:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(im)=EF=BC=9A=E7=BE=A4=E7=A6=81=E8=A8=80?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=88=E9=98=B6=E6=AE=B5=E4=B8=89=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=90=8E=E5=8F=B0=20UI=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. group API 新增 mutedAll 字段 + 3 个禁言接口(muteAll、muteMember、cancelMuteMember) 2. group member API 新增 muteEndTime 字段 3. 管理后台群列表新增「全群禁言」列(已禁言/未禁言标签) 4. 群详情抽屉新增「全群禁言」状态行 + 成员表新增「禁言状态」列(禁言中 + 到期时间) --- src/api/im/group/index.ts | 16 ++++++++++++++++ src/api/im/group/member/index.ts | 1 + src/api/im/manager/group/index.ts | 2 ++ src/views/im/manager/group/GroupDetail.vue | 15 ++++++++++++++- src/views/im/manager/group/index.vue | 6 ++++++ 5 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/api/im/group/index.ts b/src/api/im/group/index.ts index 9b353e7a8..d981a50df 100644 --- a/src/api/im/group/index.ts +++ b/src/api/im/group/index.ts @@ -9,6 +9,7 @@ export interface ImGroupRespVO { avatar?: string // 群头像 notice?: string // 群公告 banned?: boolean // 是否封禁 + mutedAll?: boolean // 是否全群禁言 bannedTime?: string // 封禁时间 status: number // 群状态(0=正常,1=已解散) dissolvedTime?: string // 解散时间 @@ -97,3 +98,18 @@ export const pinGroupMessage = (data: ImGroupMessagePinReqVO) => { export const unpinGroupMessage = (data: ImGroupMessagePinReqVO) => { return request.put({ url: '/im/group/unpin-message', data }) } + +// 全群禁言 / 取消(仅群主 / 管理员可调) +export const muteAll = (data: { groupId: number; mutedAll: boolean }) => { + return request.put({ url: '/im/group/mute-all', data }) +} + +// 禁言成员 +export const muteMember = (data: { groupId: number; userId: number; mutedSeconds: number }) => { + return request.put({ url: '/im/group/mute-member', data }) +} + +// 取消成员禁言 +export const cancelMuteMember = (data: { groupId: number; userId: number }) => { + return request.put({ url: '/im/group/cancel-mute-member', data }) +} diff --git a/src/api/im/group/member/index.ts b/src/api/im/group/member/index.ts index 2c65016fb..5ca9be4a6 100644 --- a/src/api/im/group/member/index.ts +++ b/src/api/im/group/member/index.ts @@ -12,6 +12,7 @@ export interface ImGroupMemberRespVO { role?: number // 成员角色,参见 ImGroupMemberRole 枚举 joinTime?: string // 入群时间 quitTime?: string // 退群时间 + muteEndTime?: string // 禁言到期时间 createTime?: string // 创建时间 // 聚合字段(自 AdminUser) nickname?: string // 用户昵称 diff --git a/src/api/im/manager/group/index.ts b/src/api/im/manager/group/index.ts index 8c8d493e6..ffcaf5b21 100644 --- a/src/api/im/manager/group/index.ts +++ b/src/api/im/manager/group/index.ts @@ -10,6 +10,7 @@ export interface ImManagerGroupVO { memberCount?: number status: number banned: boolean + mutedAll?: boolean // 是否全群禁言 bannedReason?: string bannedTime?: Date dissolvedTime?: Date @@ -27,6 +28,7 @@ export interface ImManagerGroupMemberVO { role?: number // 成员角色,参见 ImGroupMemberRole 枚举 joinTime?: Date quitTime?: Date + muteEndTime?: Date // 禁言到期时间 } // 获得群分页 diff --git a/src/views/im/manager/group/GroupDetail.vue b/src/views/im/manager/group/GroupDetail.vue index 2678bd48f..993250c14 100644 --- a/src/views/im/manager/group/GroupDetail.vue +++ b/src/views/im/manager/group/GroupDetail.vue @@ -16,10 +16,14 @@ - + {{ detail.bannedReason }} + + 已禁言 + 未禁言 + {{ detail.notice || '-' }} {{ formatDate(detail.createTime) }} @@ -86,6 +90,15 @@ align="center" :formatter="dateFormatter" /> + + + diff --git a/src/views/im/manager/group/index.vue b/src/views/im/manager/group/index.vue index a44338524..b6951280b 100644 --- a/src/views/im/manager/group/index.vue +++ b/src/views/im/manager/group/index.vue @@ -111,6 +111,12 @@ + + +