feat: add knowledge directory management for documents and FAQs
- Implemented directory validation in Create and Update knowledge document services. - Added directory selection in document and FAQ edit dialogs with a new KnowledgeDirectoryPanel component. - Enhanced API to support fetching, creating, updating, and deleting knowledge directories. - Updated data models to include directory information for knowledge documents and FAQs. - Added translations for directory-related messages in English and Chinese.
This commit is contained in:
@@ -1321,6 +1321,9 @@ export type KnowledgeDocument = {
|
||||
id: number
|
||||
knowledgeBaseId: number
|
||||
knowledgeBaseName?: string
|
||||
directoryId: number
|
||||
directoryName?: string
|
||||
directoryPath?: string
|
||||
title: string
|
||||
contentType: string
|
||||
content: string
|
||||
@@ -1343,6 +1346,9 @@ export type KnowledgeFAQ = {
|
||||
id: number
|
||||
knowledgeBaseId: number
|
||||
knowledgeBaseName?: string
|
||||
directoryId: number
|
||||
directoryName?: string
|
||||
directoryPath?: string
|
||||
question: string
|
||||
answer: string
|
||||
similarQuestions: string[]
|
||||
@@ -1503,6 +1509,7 @@ export type KnowledgeAnswerPayload = KnowledgeSearchPayload & {
|
||||
|
||||
export type CreateKnowledgeDocumentPayload = {
|
||||
knowledgeBaseId: number
|
||||
directoryId: number
|
||||
title: string
|
||||
contentType: string
|
||||
content: string
|
||||
@@ -1514,6 +1521,7 @@ export type UpdateKnowledgeDocumentPayload = CreateKnowledgeDocumentPayload & {
|
||||
|
||||
export type CreateKnowledgeFAQPayload = {
|
||||
knowledgeBaseId: number
|
||||
directoryId: number
|
||||
question: string
|
||||
answer: string
|
||||
similarQuestions: string[]
|
||||
@@ -1524,6 +1532,33 @@ export type UpdateKnowledgeFAQPayload = CreateKnowledgeFAQPayload & {
|
||||
id: number
|
||||
}
|
||||
|
||||
export type KnowledgeDirectory = {
|
||||
id: number
|
||||
knowledgeBaseId: number
|
||||
parentId: number
|
||||
name: string
|
||||
sortNo: number
|
||||
status: number
|
||||
statusName: string
|
||||
remark: string
|
||||
createdAt: string
|
||||
updatedAt: string
|
||||
createUserName: string
|
||||
updateUserName: string
|
||||
children: KnowledgeDirectory[]
|
||||
}
|
||||
|
||||
export type CreateKnowledgeDirectoryPayload = {
|
||||
knowledgeBaseId: number
|
||||
parentId: number
|
||||
name: string
|
||||
remark: string
|
||||
}
|
||||
|
||||
export type UpdateKnowledgeDirectoryPayload = CreateKnowledgeDirectoryPayload & {
|
||||
id: number
|
||||
}
|
||||
|
||||
export type KnowledgeFAQImportMode = "append" | "overwrite"
|
||||
|
||||
export type KnowledgeFAQImportError = {
|
||||
@@ -1595,6 +1630,33 @@ export function rebuildKnowledgeBaseIndex(id: number) {
|
||||
})
|
||||
}
|
||||
|
||||
export function fetchKnowledgeDirectories(knowledgeBaseId: number) {
|
||||
return request<KnowledgeDirectory[]>(
|
||||
`/api/dashboard/knowledge-directory/list_all${toQueryString({ knowledgeBaseId })}`
|
||||
)
|
||||
}
|
||||
|
||||
export function createKnowledgeDirectory(payload: CreateKnowledgeDirectoryPayload) {
|
||||
return request<KnowledgeDirectory>("/api/dashboard/knowledge-directory/create", {
|
||||
method: "POST",
|
||||
body: JSON.stringify(payload),
|
||||
})
|
||||
}
|
||||
|
||||
export function updateKnowledgeDirectory(payload: UpdateKnowledgeDirectoryPayload) {
|
||||
return request<void>("/api/dashboard/knowledge-directory/update", {
|
||||
method: "POST",
|
||||
body: JSON.stringify(payload),
|
||||
})
|
||||
}
|
||||
|
||||
export function deleteKnowledgeDirectory(id: number) {
|
||||
return request<void>("/api/dashboard/knowledge-directory/delete", {
|
||||
method: "POST",
|
||||
body: JSON.stringify({ id }),
|
||||
})
|
||||
}
|
||||
|
||||
export function fetchKnowledgeDocuments(
|
||||
query?: Record<string, string | number | undefined>
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user