From de89297457d7111f2f718293be749bcac8038043 Mon Sep 17 00:00:00 2001 From: XuqmGroup Date: Wed, 29 Apr 2026 10:04:13 +0800 Subject: [PATCH] feat(im): align tenant admin im management --- tenant-platform/src/api/im.ts | 84 +++- .../src/views/im/ImManagementView.vue | 432 ++++++++++++------ 2 files changed, 364 insertions(+), 152 deletions(-) diff --git a/tenant-platform/src/api/im.ts b/tenant-platform/src/api/im.ts index bd8b626..9fa16a2 100644 --- a/tenant-platform/src/api/im.ts +++ b/tenant-platform/src/api/im.ts @@ -177,6 +177,18 @@ export const imAdminApi = { }) }, + updateUser( + appId: string, + userId: string, + form: { nickname?: string; avatar?: string; gender?: string; status?: string }, + ) { + return imClient.put<{ data: ImUser }>( + `/api/im/admin/users/${encodeURIComponent(userId)}`, + form, + { params: { appId } }, + ) + }, + updateWebhook(appId: string, webhookId: string, form: WebhookConfigForm) { return imClient.put<{ data: WebhookConfig }>(`/api/im/admin/webhooks/${encodeURIComponent(webhookId)}`, form, { params: { appId }, @@ -301,18 +313,56 @@ export const imAdminApi = { return imClient.delete<{ data: null }>(`/api/im/admin/groups/${encodeURIComponent(groupId)}`, { params: { appId } }) }, - registerUser(appId: string, userId: string, nickname?: string, avatar?: string) { + registerUser( + appId: string, + userId: string, + nickname?: string, + avatar?: string, + gender?: string, + status?: string, + ) { return imClient.post<{ data: ImUser }>( '/api/im/admin/users', - { userId, nickname, avatar }, + { + userId, + nickname, + avatar, + ...(gender ? { gender } : {}), + ...(status ? { status } : {}), + }, { params: { appId } }, ) }, - createGroup(appId: string, name: string, creatorId: string, memberIds: string[]) { + createGroup( + appId: string, + name: string, + creatorId: string, + memberIds: string[], + groupType?: string, + announcement?: string, + ) { return imClient.post<{ data: ImGroup }>( '/api/im/admin/groups', - { name, creatorId, memberIds }, + { + name, + creatorId, + memberIds, + ...(groupType ? { groupType } : {}), + ...(announcement ? { announcement } : {}), + }, + { params: { appId } }, + ) + }, + + updateGroup( + appId: string, + groupId: string, + form: { name?: string; groupType?: string; announcement?: string }, + ) { + return imClient.put<{ data: ImGroup }>( + `/api/im/admin/groups/${encodeURIComponent(groupId)}`, + form, { params: { appId } }, ) }, @@ -324,6 +374,32 @@ export const imAdminApi = { ) }, + searchMessages( + appId: string, + filters: { + keyword?: string + chatType?: string + msgType?: string + startTime?: string + endTime?: string + page?: number + size?: number + } = {}, + ) { + return imClient.get<{ data: PagedResult }>('/api/im/admin/messages/search', { + params: { + appId, + ...(filters.keyword ? { keyword: filters.keyword } : {}), + ...(filters.chatType ? { chatType: filters.chatType } : {}), + ...(filters.msgType ? { msgType: filters.msgType } : {}), + ...(filters.startTime ? { startTime: filters.startTime } : {}), + ...(filters.endTime ? { endTime: filters.endTime } : {}), + page: filters.page ?? 0, + size: filters.size ?? 20, + }, + }) + }, + getProfile(appId: string, userId: string) { return imClient.get<{ data: ImProfile }>( `/api/im/accounts/${encodeURIComponent(userId)}`, diff --git a/tenant-platform/src/views/im/ImManagementView.vue b/tenant-platform/src/views/im/ImManagementView.vue index 401769a..1e15830 100644 --- a/tenant-platform/src/views/im/ImManagementView.vue +++ b/tenant-platform/src/views/im/ImManagementView.vue @@ -17,12 +17,19 @@
- 注册用户 + 新增用户 刷新
+ + + - +