From 10fad39e02272c759a875b7a7e913d844089647c Mon Sep 17 00:00:00 2001
From: Jerry Yan <792602257@qq.com>
Date: Sun, 1 Feb 2026 23:26:54 +0800
Subject: [PATCH] =?UTF-8?q?feat(KnowledgeManagement):=20=E4=B8=BA=E7=9F=A5?=
=?UTF-8?q?=E8=AF=86=E9=9B=86=E8=AF=A6=E6=83=85=E9=A1=B5=E6=B7=BB=E5=8A=A0?=
=?UTF-8?q?=E6=A0=87=E7=AD=BE=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 引入 updateKnowledgeSetByIdUsingPut、createDatasetTagUsingPost 和 queryDatasetTagsUsingGet API
- 添加 Clock 图标用于显示更新时间
- 替换条目数和更新时间的图标为 File 和 Clock 组件
- 配置标签组件以支持添加、获取和创建标签
- 实现标签的创建和添加逻辑
- 集成标签的异步加载和更新功能
---
.../Detail/KnowledgeSetDetail.tsx | 45 ++++++++++++++++---
1 file changed, 40 insertions(+), 5 deletions(-)
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();
+ }
+ },
+ }}
/>