diff --git a/frontend/src/pages/KnowledgeManagement/Detail/KnowledgeSetDetail.tsx b/frontend/src/pages/KnowledgeManagement/Detail/KnowledgeSetDetail.tsx index ffc6c43..7f02846 100644 --- a/frontend/src/pages/KnowledgeManagement/Detail/KnowledgeSetDetail.tsx +++ b/frontend/src/pages/KnowledgeManagement/Detail/KnowledgeSetDetail.tsx @@ -28,7 +28,12 @@ import { queryKnowledgeItemsUsingGet, queryKnowledgeItemPreviewStatusUsingGet, queryKnowledgeSetByIdUsingGet, + updateKnowledgeSetByIdUsingPut, } from "../knowledge-management.api"; +import { + createDatasetTagUsingPost, + queryDatasetTagsUsingGet, +} from "../../DataManagement/dataset.api"; import { knowledgeContentTypeOptions, knowledgeSourceTypeOptions, @@ -48,7 +53,7 @@ import CreateKnowledgeSet from "../components/CreateKnowledgeSet"; import KnowledgeItemEditor from "../components/KnowledgeItemEditor"; import ImportKnowledgeItemsDialog from "../components/ImportKnowledgeItemsDialog"; import { formatDate } from "@/utils/unit"; -import { File, Folder } from "lucide-react"; +import { File, Folder, Clock } from "lucide-react"; import { PREVIEW_TEXT_MAX_LENGTH, resolvePreviewFileType, @@ -527,14 +532,12 @@ const KnowledgeSetDetail = () => { () => [ { key: "items", - icon: , - label: "条目数", + icon: , value: allItems.length, }, { key: "updated", - icon: , - label: "更新时间", + icon: , value: knowledgeSet?.updatedAt ? formatDate(knowledgeSet.updatedAt) : "-", }, ], @@ -916,6 +919,38 @@ const KnowledgeSetDetail = () => { }, }, ]} + tagConfig={{ + showAdd: true, + tags: (knowledgeSet?.tags || []) as any, + onFetchTags: async () => { + const res = await queryDatasetTagsUsingGet({ + page: 0, + pageSize: 1000, + }); + return res.data || []; + }, + onCreateAndTag: async (tagName) => { + const res = await createDatasetTagUsingPost({ name: tagName }); + if (res.data && knowledgeSet) { + const currentTags = knowledgeSet.tags || []; + await updateKnowledgeSetByIdUsingPut(knowledgeSet.id, { + tags: [...currentTags.map((tag) => tag.name), res.data.name], + }); + fetchKnowledgeSet(); + } + }, + onAddTag: async (tag: any) => { + if (knowledgeSet) { + const currentTags = knowledgeSet.tags || []; + const newTagName = typeof tag === "string" ? tag : tag?.name; + if (!newTagName) return; + await updateKnowledgeSetByIdUsingPut(knowledgeSet.id, { + tags: [...currentTags.map((tag) => tag.name), newTagName], + }); + fetchKnowledgeSet(); + } + }, + }} />