Skip to content

Commit 351a2a5

Browse files
committed
feat: tags api
1 parent 73af39f commit 351a2a5

3 files changed

Lines changed: 87 additions & 0 deletions

File tree

‎ui/src/api/API_README.md‎

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -697,6 +697,11 @@ Workspace、System 资源管理及 System 共享资源的 `knowledge.ts` 提供
697697
标签类型统一维护在 `types/knowledge.ts`。创建支持多行,编辑仅支持重命名或单个值修改,
698698
不声明多行编辑接口,也不组合旧接口模拟多行保存。
699699

700+
`system/resource-management/knowledge/tags.ts` 与 `system/shared-resources/knowledge/tags.ts`
701+
提供与普通 Workspace 相同的七个标签接口,参数、请求体和返回类型保持一致,仅资源前缀分别为
702+
`/system/resource/knowledge/<knowledgeId>/tags` 和 `/system/shared/knowledge/<knowledgeId>/tags`,不读取工作空间 ID。
703+
两套系统标签 API 暂未接入知识库详情 context;Workspace 共享标签 API 保持现有只读查询,不补写入方法。
704+
700705
文档与标签的关联由 `workspace/knowledge/document.ts` 维护,不使用标签删除接口代替取消关联。
701706
`getDocumentTags(knowledgeId, documentId, query?)` 查询 `document/<documentId>/tags`,返回分组标签,支持 `query.name` 搜索;
702707
`postAddDocumentTags` POST 到 `document/batch_add_tag`,提交 `{ document_ids, tag_ids }`;
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { del, get, getExportFile, post, put } from '@/api/admin/core/request'
2+
import type { Dict, KnowledgeTagGroup, KnowledgeTagPayload, KnowledgeTagUpdatePayload } from '@/api/types'
3+
4+
const getPrefix = (knowledgeId: string) => `/system/resource/knowledge/${knowledgeId}/tags`
5+
6+
/** 获取知识库按标签名称分组的标签选项。 */
7+
const getKnowledgeTags = (knowledgeId: string, query?: Dict<unknown>) => get<KnowledgeTagGroup[]>(getPrefix(knowledgeId), query)
8+
9+
/** 创建知识库标签或为已有标签新增值。 */
10+
const postKnowledgeTags = (knowledgeId: string, tags: KnowledgeTagPayload[]) => post<KnowledgeTagPayload[], void>(getPrefix(knowledgeId), tags)
11+
12+
/** 重命名知识库标签或编辑单个标签值。 */
13+
const putKnowledgeTag = (knowledgeId: string, tagId: string, tag: KnowledgeTagUpdatePayload) =>
14+
put<KnowledgeTagUpdatePayload, void>(`${getPrefix(knowledgeId)}/${tagId}`, tag)
15+
16+
/** 删除整个标签分组或单个标签值。 */
17+
const deleteKnowledgeTag = (knowledgeId: string, tagId: string, type: 'key' | 'one') =>
18+
del<undefined, void>(`${getPrefix(knowledgeId)}/${tagId}/${type}`)
19+
20+
/** 批量删除所选标签,直接提交标签 ID 数组。 */
21+
const putBatchDeleteKnowledgeTags = (knowledgeId: string, tagIds: string[]) => put<string[], void>(`${getPrefix(knowledgeId)}/batch_delete`, tagIds)
22+
23+
/** 导入 Excel 中的知识库标签,重复标签组合由服务端跳过。 */
24+
const postImportKnowledgeTags = (knowledgeId: string, file: File) => {
25+
const data = new FormData()
26+
data.append('file', file)
27+
return post<FormData, void>(`${getPrefix(knowledgeId)}/import`, data)
28+
}
29+
30+
/** 下载知识库标签导入模板。 */
31+
const exportKnowledgeTagTemplate = (knowledgeId: string) => getExportFile('标签模板.xlsx', `${getPrefix(knowledgeId)}/template/export`)
32+
33+
export default {
34+
getKnowledgeTags,
35+
postKnowledgeTags,
36+
putKnowledgeTag,
37+
deleteKnowledgeTag,
38+
putBatchDeleteKnowledgeTags,
39+
postImportKnowledgeTags,
40+
exportKnowledgeTagTemplate,
41+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import { del, get, getExportFile, post, put } from '@/api/admin/core/request'
2+
import type { Dict, KnowledgeTagGroup, KnowledgeTagPayload, KnowledgeTagUpdatePayload } from '@/api/types'
3+
4+
const getPrefix = (knowledgeId: string) => `/system/shared/knowledge/${knowledgeId}/tags`
5+
6+
/** 获取知识库按标签名称分组的标签选项。 */
7+
const getKnowledgeTags = (knowledgeId: string, query?: Dict<unknown>) => get<KnowledgeTagGroup[]>(getPrefix(knowledgeId), query)
8+
9+
/** 创建知识库标签或为已有标签新增值。 */
10+
const postKnowledgeTags = (knowledgeId: string, tags: KnowledgeTagPayload[]) => post<KnowledgeTagPayload[], void>(getPrefix(knowledgeId), tags)
11+
12+
/** 重命名知识库标签或编辑单个标签值。 */
13+
const putKnowledgeTag = (knowledgeId: string, tagId: string, tag: KnowledgeTagUpdatePayload) =>
14+
put<KnowledgeTagUpdatePayload, void>(`${getPrefix(knowledgeId)}/${tagId}`, tag)
15+
16+
/** 删除整个标签分组或单个标签值。 */
17+
const deleteKnowledgeTag = (knowledgeId: string, tagId: string, type: 'key' | 'one') =>
18+
del<undefined, void>(`${getPrefix(knowledgeId)}/${tagId}/${type}`)
19+
20+
/** 批量删除所选标签,直接提交标签 ID 数组。 */
21+
const putBatchDeleteKnowledgeTags = (knowledgeId: string, tagIds: string[]) => put<string[], void>(`${getPrefix(knowledgeId)}/batch_delete`, tagIds)
22+
23+
/** 导入 Excel 中的知识库标签,重复标签组合由服务端跳过。 */
24+
const postImportKnowledgeTags = (knowledgeId: string, file: File) => {
25+
const data = new FormData()
26+
data.append('file', file)
27+
return post<FormData, void>(`${getPrefix(knowledgeId)}/import`, data)
28+
}
29+
30+
/** 下载知识库标签导入模板。 */
31+
const exportKnowledgeTagTemplate = (knowledgeId: string) => getExportFile('标签模板.xlsx', `${getPrefix(knowledgeId)}/template/export`)
32+
33+
export default {
34+
getKnowledgeTags,
35+
postKnowledgeTags,
36+
putKnowledgeTag,
37+
deleteKnowledgeTag,
38+
putBatchDeleteKnowledgeTags,
39+
postImportKnowledgeTags,
40+
exportKnowledgeTagTemplate,
41+
}

0 commit comments

Comments
 (0)