diff --git a/ui/src/api/admin/system/workspace.ts b/ui/src/api/admin/system/workspace.ts index 8789ba9355e..4972b9dedb0 100644 --- a/ui/src/api/admin/system/workspace.ts +++ b/ui/src/api/admin/system/workspace.ts @@ -53,11 +53,26 @@ const postRemoveWorkspaceMember = (workspaceId: string, userRelationId: string) return post(`${prefix}/${workspaceId}/remove_member/${userRelationId}`) } +export interface WorkspaceBatchRemoveResult { + success_count: number + failed_count: number + failed_ids: string[] +} + +/** 批量移除工作空间成员。 */ +const postBatchRemoveWorkspaceMembers = (workspaceId: string, userRelationIds: string[]) => { + return post<{ user_relation_ids: string[] }, WorkspaceBatchRemoveResult>( + `${prefix}/${workspaceId}/batch_remove_member`, + { user_relation_ids: userRelationIds }, + ) +} + export default { deleteWorkspace, getSystemWorkspaceList, getWorkspaceMemberList, getWorkspaceDeleteCheck, + postBatchRemoveWorkspaceMembers, postRemoveWorkspaceMember, postWorkspace, postWorkspaceMembers, diff --git a/ui/src/views/system/identity/users/UserFromDrawer.vue b/ui/src/views/system/identity/users/UserFromDrawer.vue index 87c60e8c450..d5e85e28721 100644 --- a/ui/src/views/system/identity/users/UserFromDrawer.vue +++ b/ui/src/views/system/identity/users/UserFromDrawer.vue @@ -86,9 +86,14 @@ function loadRoleSettingOptions() { } // 用户组相关 -const selectedWorkspaceIds = computed(() => [ - ...new Set(userForm.role_setting.flatMap(({ workspace_ids }) => workspace_ids)), -]) +const selectedWorkspaceIds = computed(() => { + if (!auth.isEE && !auth.isPE) { + return ['default'] + } + return [ + ...new Set(userForm.role_setting.flatMap(({ workspace_ids }) => workspace_ids)), + ] +}) // 默认密码 function loadDefaultPassword() { diff --git a/ui/src/views/system/identity/workspaces/WorkspaceListView.vue b/ui/src/views/system/identity/workspaces/WorkspaceListView.vue index 607e064769b..b7f9bb07b78 100644 --- a/ui/src/views/system/identity/workspaces/WorkspaceListView.vue +++ b/ui/src/views/system/identity/workspaces/WorkspaceListView.vue @@ -166,7 +166,17 @@ function handleBatchDelete() { MsgConfirm(`是否删除选中的 ${batchSelectedMembers.value.length} 个成员?`, '') .then(() => { workspaceMembersLoading.value = true - // TODO 需要批量删除接口 + return WorkspaceApi.postBatchRemoveWorkspaceMembers( + workspaceId, + batchSelectedMembers.value.map(({ user_relation_id }) => user_relation_id), + ).then(({ success_count, failed_count }) => { + if (failed_count > 0) { + MsgSuccess(`移除成功 ${success_count} 个成员,失败 ${failed_count} 个`) + } else { + MsgSuccess('移除成功') + } + return loadWorkspaceMembers() + }) }) .catch(() => {}) .finally(() => {