From 86b2531f26008be0274780b4e166bb1594316502 Mon Sep 17 00:00:00 2001 From: "xinxin.wu" Date: Thu, 5 Nov 2026 17:57:52 +0800 Subject: [PATCH] feat: application clean strategy --- .../workspace/application/application.ts | 11 +++ .../admin/workspace/application/chat-log.ts | 4 +- ui/src/api/types/application.ts | 7 ++ .../components/ButtonBatchCleanStrategy.vue | 84 +++++++++++++++++++ ui/src/views/application/index.vue | 18 +++- 5 files changed, 121 insertions(+), 3 deletions(-) create mode 100644 ui/src/views/application/components/ButtonBatchCleanStrategy.vue diff --git a/ui/src/api/admin/workspace/application/application.ts b/ui/src/api/admin/workspace/application/application.ts index c9e3979f699..6266e7b2470 100644 --- a/ui/src/api/admin/workspace/application/application.ts +++ b/ui/src/api/admin/workspace/application/application.ts @@ -5,6 +5,7 @@ import type { ApplicationAccessTokenPayload, ApplicationApiKeyEnable, ApplicationApiKeyEnablePayload, + ApplicationCleanTimePayload, ApplicationDetail, ApplicationDisplaySetting, ApplicationFormPayload, @@ -105,6 +106,15 @@ const putBatchMoveApplications = (applicationIds: string[], folderId: string) => return put<{ folder_id: string; id_list: string[] }, boolean>(`${getPrefix()}/batch_move`, { folder_id: folderId, id_list: applicationIds }) } +/** 批量设置工作空间智能体对话日志清除策略。 */ +const putBatchApplicationCleanTime = (applicationIds: string[], cleanTime: number, fileCleanTime: number) => { + return put(`${getPrefix()}/batch_clean_time`, { + id_list: applicationIds, + clean_time: cleanTime, + file_clean_time: fileCleanTime, + }) +} + /** 发布工作空间智能体。 */ const putApplicationPublish = (applicationId: string, publishName: string, publishDesc?: string) => { return put, ApplicationDetail>(`${getPrefix()}/${applicationId}/publish`, { @@ -132,6 +142,7 @@ export default { putMoveApplication, putBatchDeleteApplications, putBatchMoveApplications, + putBatchApplicationCleanTime, putApplicationPublish, getAllApplication, } diff --git a/ui/src/api/admin/workspace/application/chat-log.ts b/ui/src/api/admin/workspace/application/chat-log.ts index 2dfaf6371d3..ccab77b9e30 100644 --- a/ui/src/api/admin/workspace/application/chat-log.ts +++ b/ui/src/api/admin/workspace/application/chat-log.ts @@ -1,6 +1,6 @@ import { del, get, post, postExportExcel, put } from '../../core/request' import type { ParamsPage, ResponsePage } from '../../core/types' -import type { ChatLog, ChatLogAddKnowledgePayload, ChatLogRecord, Dict } from '@/api/types' +import type { ApplicationCleanTimePayload, ChatLog, ChatLogAddKnowledgePayload, ChatLogRecord, Dict } from '@/api/types' import { getWorkspaceId } from '@/utils/resource-context' const getPrefix = () => `/workspace/${getWorkspaceId()}/application` @@ -15,7 +15,7 @@ const postExportChatLog = (applicationId: string, applicationName: string, query /** 保存当前智能体的日志与文件清除策略。 */ const putChatLogCleanTime = (applicationId: string, cleanTime: number, fileCleanTime: number) => - put<{ id_list: string[]; clean_time: number; file_clean_time: number }, boolean>(`${getPrefix()}/batch_clean_time`, { + put(`${getPrefix()}/batch_clean_time`, { id_list: [applicationId], clean_time: cleanTime, file_clean_time: fileCleanTime, diff --git a/ui/src/api/types/application.ts b/ui/src/api/types/application.ts index e4233342b90..5b1dcdabc3e 100644 --- a/ui/src/api/types/application.ts +++ b/ui/src/api/types/application.ts @@ -125,6 +125,13 @@ export interface ApplicationDetail extends Omit work_flow?: LogicFlow.GraphConfigData } +/** 智能体对话日志与附件清除策略保存参数。 */ +export interface ApplicationCleanTimePayload { + id_list: string[] + clean_time: number + file_clean_time: number +} + export interface ApplicationFormPayload { clean_time?: number file_clean_time?: number diff --git a/ui/src/views/application/components/ButtonBatchCleanStrategy.vue b/ui/src/views/application/components/ButtonBatchCleanStrategy.vue new file mode 100644 index 00000000000..fa8870f517d --- /dev/null +++ b/ui/src/views/application/components/ButtonBatchCleanStrategy.vue @@ -0,0 +1,84 @@ + + + diff --git a/ui/src/views/application/index.vue b/ui/src/views/application/index.vue index 52131f6435e..7975b954e8a 100644 --- a/ui/src/views/application/index.vue +++ b/ui/src/views/application/index.vue @@ -26,6 +26,7 @@ import { } from './application-card/action-dropdown' import ButtonCreateApplication from './components/ButtonCreateApplication.vue' import ButtonTemplateStore from './components/ButtonTemplateStore.vue' +import ButtonBatchCleanStrategy from './components/ButtonBatchCleanStrategy.vue' import perm from '@/permission/index.ts' import { getWorkspaceId } from '@/utils/resource-context.ts' @@ -137,6 +138,11 @@ function cancelBatchSelection() { selectedApplicationIds.value = [] } +function handleBatchCleanStrategySuccess() { + cancelBatchSelection() + return refreshApplications() +} + function handleApplicationSelect(applicationId: string, selected: boolean) { if (selected) { if (!selectedApplicationIds.value.includes(applicationId)) selectedApplicationIds.value.push(applicationId) @@ -219,7 +225,11 @@ function handleBatchDelete() {
- + {{ batchSelectionMode ? '取消选择' : '批量选择' }} @@ -343,6 +353,12 @@ function handleBatchDelete() { > 移动到 + +