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();
+ }
+ },
+ }}
/>