feat: enhance SystemKnowledgeSerializer and related components to support workspace and folder IDs

--bug=1059926 --user=刘瑞斌 【资源管理】知识库文档迁移时,可选择的目标知识库展示了系统所有的知识库 https://www.tapd.cn/62980211/s/1747947
This commit is contained in:
CaptainB 2025-08-04 11:02:31 +08:00
parent cbf7dd00cf
commit 39ac62745e
3 changed files with 18 additions and 5 deletions

View File

@ -123,6 +123,7 @@ class KnowledgeSerializer(serializers.Serializer):
return workspace_user_role_mapping_model is not None and role_permission_mapping_model is not None
def get_query_set(self, workspace_manage, is_x_pack_ee):
self.is_valid(raise_exception=True)
workspace_id = self.data.get("workspace_id")
query_set_dict = {}
query_set = QuerySet(model=get_dynamics_model({
@ -170,8 +171,6 @@ class KnowledgeSerializer(serializers.Serializer):
return query_set_dict
def page(self, current_page: int, page_size: int):
self.is_valid(raise_exception=True)
folder_id = self.data.get('folder_id', self.data.get("workspace_id"))
root = KnowledgeFolder.objects.filter(id=folder_id).first()
if not root:
@ -196,7 +195,6 @@ class KnowledgeSerializer(serializers.Serializer):
)
def list(self):
self.is_valid(raise_exception=True)
folder_id = self.data.get('folder_id')
if not folder_id:
folder_id = self.data.get('workspace_id')

View File

@ -66,6 +66,12 @@ const {
const { user } = useStore()
const props = defineProps({
workspaceId: {
type: String,
},
})
const apiType = computed(() => {
if (route.path.includes('shared')) {
return 'systemShare'
@ -99,8 +105,17 @@ const defaultProps = {
const loadTree = async (node: any, resolve: any) => {
if (node.isLeaf) return resolve([])
const folder_id = node.level === 0 ? user.getWorkspaceId() : node.data.id
const obj =
apiType.value === 'systemManage'
? {
workspace_id: props.workspaceId,
folder_id: node.level === 0 ? props.workspaceId : node.data.id,
}
: {
folder_id: folder_id,
}
await loadSharedApi({ type: 'knowledge', systemType: apiType.value })
.getKnowledgeList({ folder_id: folder_id }, loading)
.getKnowledgeList(obj, loading)
.then((res: any) => {
resolve(res.data)
})

View File

@ -631,7 +631,7 @@
<ImportDocumentDialog ref="ImportDocumentDialogRef" :title="title" @refresh="refresh" />
<SyncWebDialog ref="SyncWebDialogRef" @refresh="refresh" />
<!-- 选择知识库 -->
<SelectKnowledgeDialog ref="selectKnowledgeDialogRef" @refresh="refreshMigrate" />
<SelectKnowledgeDialog ref="selectKnowledgeDialogRef" @refresh="refreshMigrate" :workspaceId="knowledgeDetail?.workspace_id"/>
<GenerateRelatedDialog ref="GenerateRelatedDialogRef" @refresh="getList" :apiType="apiType" />
</div>
</template>