refactor: add create_user field to tool serialization and update related logic

--bug=1057413 --user=刘瑞斌 【工具】搜索项选择创建者,创建者列表为空 https://www.tapd.cn/62980211/s/1721870
This commit is contained in:
CaptainB 2025-07-02 15:58:48 +08:00
parent 191e62f96d
commit aff1ab7d1b
5 changed files with 29 additions and 2 deletions

View File

@ -552,6 +552,7 @@ class ToolTreeSerializer(serializers.Serializer):
name = serializers.CharField(required=False, allow_null=True, allow_blank=True, label=_('tool name')) 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')) user_id = serializers.UUIDField(required=False, allow_null=True, label=_('user id'))
scope = serializers.CharField(required=True, label=_('scope')) 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): def page_tool(self, current_page: int, page_size: int):
self.is_valid(raise_exception=True) self.is_valid(raise_exception=True)
@ -589,6 +590,7 @@ class ToolTreeSerializer(serializers.Serializer):
desc = self.data.get('desc') desc = self.data.get('desc')
name = self.data.get('name') name = self.data.get('name')
folder_id = self.data.get('folder_id') folder_id = self.data.get('folder_id')
create_user = self.data.get('create_user')
if workspace_id is not None: if workspace_id is not None:
folder_query_set = folder_query_set.filter(workspace_id=workspace_id) folder_query_set = folder_query_set.filter(workspace_id=workspace_id)
@ -602,6 +604,8 @@ class ToolTreeSerializer(serializers.Serializer):
if desc is not None: if desc is not None:
folder_query_set = folder_query_set.filter(desc__contains=desc) folder_query_set = folder_query_set.filter(desc__contains=desc)
default_query_set = default_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") default_query_set = default_query_set.order_by("-create_time")

View File

@ -183,7 +183,8 @@ class ToolView(APIView):
'folder_id': request.query_params.get('folder_id'), 'folder_id': request.query_params.get('folder_id'),
'name': request.query_params.get('name'), 'name': request.query_params.get('name'),
'scope': request.query_params.get('scope'), '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)) ).page_tool_with_folders(current_page, page_size))

View File

@ -44,6 +44,19 @@ const getWorkspaceMemberList: (
) )
} }
/**
*
*/
const getWorkspaceAllMemberList: (
workspace_id: string,
loading?: Ref<boolean>,
) => Promise<Result<PageList<WorkspaceMemberItem[]>>> = (workspace_id, loading) => {
return get(
`${prefix}/${workspace_id}/user_list`,
loading,
)
}
/** /**
* *
*/ */
@ -77,6 +90,7 @@ export default {
getWorkspaceList, getWorkspaceList,
getSystemWorkspaceList, getSystemWorkspaceList,
getWorkspaceMemberList, getWorkspaceMemberList,
getWorkspaceAllMemberList,
CreateWorkspaceMember, CreateWorkspaceMember,
deleteWorkspaceMember, deleteWorkspaceMember,
getWorkspaceRoleList, getWorkspaceRoleList,

View File

@ -13,6 +13,7 @@ import documentSystemShareApi from '@/api/system-shared/document'
import paragraphSystemShareApi from '@/api/system-shared/paragraph' import paragraphSystemShareApi from '@/api/system-shared/paragraph'
import problemSystemShareApi from '@/api/system-shared/problem' import problemSystemShareApi from '@/api/system-shared/problem'
import chatUserSystemShareApi from '@/api/system-shared/chat-user' import chatUserSystemShareApi from '@/api/system-shared/chat-user'
import workspaceApi from '@/api/workspace/workspace'
// 普通 API // 普通 API
const workspaceApiMap = { const workspaceApiMap = {
@ -23,6 +24,7 @@ const workspaceApiMap = {
paragraph: paragraphWorkspaceApi, paragraph: paragraphWorkspaceApi,
problem: problemWorkspaceApi, problem: problemWorkspaceApi,
chatUser: chatUserWorkspaceApi, chatUser: chatUserWorkspaceApi,
workspace: workspaceApi,
} as any } as any
// 系统分享 API // 系统分享 API

View File

@ -31,7 +31,7 @@
clearable clearable
style="width: 220px" style="width: 220px"
> >
<el-option v-for="u in user_options" :key="u.id" :value="u.id" :label="u.username" /> <el-option v-for="u in user_options" :key="u.id" :value="u.id" :label="u.nick_name" />
</el-select> </el-select>
</div> </div>
<el-dropdown trigger="click" v-if="!isShared && permissionPrecise.create()"> <el-dropdown trigger="click" v-if="!isShared && permissionPrecise.create()">
@ -319,6 +319,7 @@ import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
import permissionMap from '@/permission' import permissionMap from '@/permission'
import useStore from '@/stores' import useStore from '@/stores'
import { t } from '@/locales' import { t } from '@/locales'
import {loadPermissionApi} from "@/utils/dynamics-api/permission-api.ts";
const route = useRoute() const route = useRoute()
const { folder, user, tool } = useStore() const { folder, user, tool } = useStore()
onBeforeRouteLeave((to, from) => { onBeforeRouteLeave((to, from) => {
@ -631,6 +632,11 @@ onMounted(() => {
if (apiType.value !== 'workspace') { if (apiType.value !== 'workspace') {
getList() getList()
} }
loadSharedApi({type: 'workspace', isShared: isShared.value, systemType: apiType.value })
.getWorkspaceAllMemberList(user.getWorkspaceId(), loading)
.then((res: any) => {
user_options.value = res.data
})
}) })
</script> </script>