UnisKB/ui/src/stores/modules/knowledge.ts

81 lines
1.9 KiB
TypeScript
Raw Normal View History

2025-06-06 01:39:01 +00:00
import {defineStore} from 'pinia'
import type {knowledgeData} from '@/api/type/knowledge'
import type {UploadUserFile} from 'element-plus'
2025-05-27 11:06:47 +00:00
import knowledgeApi from '@/api/knowledge/knowledge'
2025-06-06 01:39:01 +00:00
import {type Ref} from 'vue'
2025-05-27 11:06:47 +00:00
export interface knowledgeStateTypes {
baseInfo: knowledgeData | null
webInfo: any
documentsType: string
documentsFiles: UploadUserFile[]
}
const useKnowledgeStore = defineStore('knowledge', {
state: (): knowledgeStateTypes => ({
baseInfo: null,
webInfo: null,
documentsType: '',
documentsFiles: [],
}),
actions: {
saveBaseInfo(info: knowledgeData | null) {
this.baseInfo = info
},
saveWebInfo(info: any) {
this.webInfo = info
},
saveDocumentsType(val: string) {
this.documentsType = val
},
saveDocumentsFile(file: UploadUserFile[]) {
this.documentsFiles = file
},
2025-06-09 10:54:13 +00:00
async asyncGetAllKnowledge(loading?: Ref<boolean>) {
return new Promise((resolve, reject) => {
knowledgeApi
.getAllKnowledge(loading)
.then((data) => {
resolve(data)
})
.catch((error) => {
reject(error)
})
})
},
2025-06-09 09:44:07 +00:00
async asyncGetKnowledgeDetail(
2025-05-27 11:06:47 +00:00
knowledge_id: string,
loading?: Ref<boolean>,
) {
return new Promise((resolve, reject) => {
knowledgeApi
2025-06-06 01:39:01 +00:00
.getKnowledgeDetail(knowledge_id, loading)
2025-05-27 11:06:47 +00:00
.then((data) => {
resolve(data)
})
.catch((error) => {
reject(error)
})
})
},
2025-06-08 08:43:40 +00:00
async asyncSyncKnowledge(
2025-06-05 12:15:55 +00:00
id: string,
sync_type: string,
loading?: Ref<boolean>,
) {
2025-05-27 11:06:47 +00:00
return new Promise((resolve, reject) => {
knowledgeApi
2025-06-06 01:39:01 +00:00
.putSyncWebKnowledge(id, sync_type, loading)
2025-05-27 11:06:47 +00:00
.then((data) => {
resolve(data)
})
.catch((error) => {
reject(error)
})
})
},
},
})
export default useKnowledgeStore