diff --git a/apps/tools/serializers/tool.py b/apps/tools/serializers/tool.py index 23c38386f..492d48284 100644 --- a/apps/tools/serializers/tool.py +++ b/apps/tools/serializers/tool.py @@ -552,6 +552,7 @@ class ToolTreeSerializer(serializers.Serializer): name = serializers.CharField(required=False, allow_null=True, allow_blank=True, label=_('tool name')) user_id = serializers.UUIDField(required=False, allow_null=True, label=_('user id')) scope = serializers.CharField(required=True, label=_('scope')) + create_user = serializers.UUIDField(required=False, label=_('scope'), allow_null=True) def page_tool(self, current_page: int, page_size: int): self.is_valid(raise_exception=True) @@ -589,6 +590,7 @@ class ToolTreeSerializer(serializers.Serializer): desc = self.data.get('desc') name = self.data.get('name') folder_id = self.data.get('folder_id') + create_user = self.data.get('create_user') if workspace_id is not None: folder_query_set = folder_query_set.filter(workspace_id=workspace_id) @@ -602,6 +604,8 @@ class ToolTreeSerializer(serializers.Serializer): if desc is not None: folder_query_set = folder_query_set.filter(desc__contains=desc) default_query_set = default_query_set.filter(desc__contains=desc) + if create_user is not None: + tool_query_set = tool_query_set.filter(user_id=create_user) default_query_set = default_query_set.order_by("-create_time") diff --git a/apps/tools/views/tool.py b/apps/tools/views/tool.py index f2680a0dc..c0625b539 100644 --- a/apps/tools/views/tool.py +++ b/apps/tools/views/tool.py @@ -183,7 +183,8 @@ class ToolView(APIView): 'folder_id': request.query_params.get('folder_id'), 'name': request.query_params.get('name'), 'scope': request.query_params.get('scope'), - 'user_id': request.user.id + 'user_id': request.user.id, + 'create_user': request.query_params.get('create_user'), } ).page_tool_with_folders(current_page, page_size)) diff --git a/ui/src/api/workspace/workspace.ts b/ui/src/api/workspace/workspace.ts index 672360f3a..4e9c36fc6 100644 --- a/ui/src/api/workspace/workspace.ts +++ b/ui/src/api/workspace/workspace.ts @@ -44,6 +44,19 @@ const getWorkspaceMemberList: ( ) } +/** + * 获取工作空间全部成员列表 + */ +const getWorkspaceAllMemberList: ( + workspace_id: string, + loading?: Ref, +) => Promise>> = (workspace_id, loading) => { + return get( + `${prefix}/${workspace_id}/user_list`, + loading, + ) +} + /** * 新建工作空间成员 */ @@ -77,6 +90,7 @@ export default { getWorkspaceList, getSystemWorkspaceList, getWorkspaceMemberList, + getWorkspaceAllMemberList, CreateWorkspaceMember, deleteWorkspaceMember, getWorkspaceRoleList, diff --git a/ui/src/utils/dynamics-api/shared-api.ts b/ui/src/utils/dynamics-api/shared-api.ts index f2968987d..f4022d916 100644 --- a/ui/src/utils/dynamics-api/shared-api.ts +++ b/ui/src/utils/dynamics-api/shared-api.ts @@ -13,6 +13,7 @@ import documentSystemShareApi from '@/api/system-shared/document' import paragraphSystemShareApi from '@/api/system-shared/paragraph' import problemSystemShareApi from '@/api/system-shared/problem' import chatUserSystemShareApi from '@/api/system-shared/chat-user' +import workspaceApi from '@/api/workspace/workspace' // 普通 API const workspaceApiMap = { @@ -23,6 +24,7 @@ const workspaceApiMap = { paragraph: paragraphWorkspaceApi, problem: problemWorkspaceApi, chatUser: chatUserWorkspaceApi, + workspace: workspaceApi, } as any // 系统分享 API diff --git a/ui/src/views/tool/component/ToolListContainer.vue b/ui/src/views/tool/component/ToolListContainer.vue index d09a2102b..abcf91826 100644 --- a/ui/src/views/tool/component/ToolListContainer.vue +++ b/ui/src/views/tool/component/ToolListContainer.vue @@ -31,7 +31,7 @@ clearable style="width: 220px" > - + @@ -319,6 +319,7 @@ import { loadSharedApi } from '@/utils/dynamics-api/shared-api' import permissionMap from '@/permission' import useStore from '@/stores' import { t } from '@/locales' +import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts"; const route = useRoute() const { folder, user, tool } = useStore() onBeforeRouteLeave((to, from) => { @@ -631,6 +632,11 @@ onMounted(() => { if (apiType.value !== 'workspace') { getList() } + loadSharedApi({type: 'workspace', isShared: isShared.value, systemType: apiType.value }) + .getWorkspaceAllMemberList(user.getWorkspaceId(), loading) + .then((res: any) => { + user_options.value = res.data + }) })