You've already forked DataMate
feat(KnowledgeManagement): 为知识集详情页添加标签功能
- 引入 updateKnowledgeSetByIdUsingPut、createDatasetTagUsingPost 和 queryDatasetTagsUsingGet API - 添加 Clock 图标用于显示更新时间 - 替换条目数和更新时间的图标为 File 和 Clock 组件 - 配置标签组件以支持添加、获取和创建标签 - 实现标签的创建和添加逻辑 - 集成标签的异步加载和更新功能
This commit is contained in:
@@ -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: <PlusOutlined className="text-blue-500" />,
|
||||
label: "条目数",
|
||||
icon: <File className="text-blue-400 w-4 h-4" />,
|
||||
value: allItems.length,
|
||||
},
|
||||
{
|
||||
key: "updated",
|
||||
icon: <EditOutlined className="text-gray-500" />,
|
||||
label: "更新时间",
|
||||
icon: <Clock className="text-blue-400 w-4 h-4" />,
|
||||
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();
|
||||
}
|
||||
},
|
||||
}}
|
||||
/>
|
||||
|
||||
<CreateKnowledgeSet
|
||||
|
||||
Reference in New Issue
Block a user