11import { defineStore } from 'pinia'
22import type { knowledgeData } from '@/api/type/knowledge'
33import type { UploadUserFile } from 'element-plus'
4- import knowledgeApi from '@/api/knowledge/knowledge '
4+ import type { pageRequest } from '@/api/type/common '
55import { type Ref } from 'vue'
6+ import useUserStore from './user'
67import useFolderStore from './folder'
8+ import { loadSharedApi } from '@/utils/dynamics-api/shared-api'
79
810export interface knowledgeStateTypes {
911 baseInfo : knowledgeData | null
1012 webInfo : any
1113 documentsType : string
1214 documentsFiles : UploadUserFile [ ]
15+ knowledgeList : knowledgeData [ ]
1316}
1417
1518const useKnowledgeStore = defineStore ( 'knowledge' , {
@@ -18,6 +21,7 @@ const useKnowledgeStore = defineStore('knowledge', {
1821 webInfo : null ,
1922 documentsType : '' ,
2023 documentsFiles : [ ] ,
24+ knowledgeList : [ ] ,
2125 } ) ,
2226 actions : {
2327 saveBaseInfo ( info : knowledgeData | null ) {
@@ -32,6 +36,34 @@ const useKnowledgeStore = defineStore('knowledge', {
3236 saveDocumentsFile ( file : UploadUserFile [ ] ) {
3337 this . documentsFiles = file
3438 } ,
39+ setKnowledgeList ( list : any [ ] ) {
40+ this . knowledgeList = list
41+ } ,
42+ async asyncGetKnowledgeListPage (
43+ page : pageRequest ,
44+ isShared ?: boolean | undefined ,
45+ systemType : 'systemShare' | 'workspace' | 'systemManage' = 'workspace' ,
46+ paramsData : any ,
47+ loading ?: Ref < boolean > ,
48+ ) {
49+ return new Promise ( ( resolve , reject ) => {
50+ const folder = useFolderStore ( )
51+ const user = useUserStore ( )
52+ const params = {
53+ folder_id : folder . currentFolder ?. id || user . getWorkspaceId ( ) ,
54+ scope : systemType === 'systemShare' ? 'SHARED' : 'WORKSPACE' ,
55+ ...paramsData ,
56+ }
57+ loadSharedApi ( { type : 'knowledge' , isShared, systemType } )
58+ . getToolListPage ( page , params , loading )
59+ . then ( ( res : any ) => {
60+ resolve ( res )
61+ } )
62+ . catch ( ( error : any ) => {
63+ reject ( error )
64+ } )
65+ } )
66+ } ,
3567 async asyncGetFolderKnowledge ( folder_id ?: string , loading ?: Ref < boolean > ) {
3668 return new Promise ( ( resolve , reject ) => {
3769 const params = {
@@ -59,46 +91,6 @@ const useKnowledgeStore = defineStore('knowledge', {
5991 } )
6092 } )
6193 } ,
62- // async asyncGetTreeRootKnowledge(loading?: Ref<boolean>) {
63- // const folder = useFolderStore()
64- // return Promise.all([
65- // folder.asyncGetFolder('KNOWLEDGE', {}, loading),
66- // this.asyncGetFolderKnowledge(loading),
67- // ])
68- // .then((res: any) => {
69- // const folderList = res[0].data
70- // const knowledgeList = res[1].data
71- // const arrMap: any = {}
72- // function buildIdMap(arr: any) {
73- // arr.forEach((item: any) => {
74- // arrMap[item.id] = item
75- // // 递归处理子节点
76- // if (item.children && item.children.length > 0) {
77- // buildIdMap(item.children)
78- // }
79- // })
80- // }
81- // buildIdMap(folderList)
82- // knowledgeList
83- // .filter((v: any) => v.resource_type !== 'folder')
84- // .forEach((item: any) => {
85- // const targetFolder = arrMap[item.folder_id]
86- // if (targetFolder) {
87- // // 检查是否已有相同ID的子节点(避免重复插入)
88- // const existingChild = targetFolder.children.find(
89- // (child: any) => child.id === item.id,
90- // )
91- // if (!existingChild) {
92- // targetFolder.children.push(item)
93- // }
94- // }
95- // })
96- // return Promise.resolve(folderList)
97- // })
98- // .catch((error) => {
99- // return Promise.reject(error)
100- // })
101- // },
10294 } ,
10395} )
10496
0 commit comments