From a904f63ec8a1f36eaa1a259d8d23dcb1b564fa40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=AD=90=E9=BB=98?= <925456043@qq.com> Date: Mon, 27 Jul 2026 19:41:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E8=81=8A=E5=A4=A9?= =?UTF-8?q?=E5=8E=86=E5=8F=B2=E7=AD=9B=E9=80=89=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/src/views/ai/chatHistory/index.vue | 248 ++++++++++++------ 1 file changed, 168 insertions(+), 80 deletions(-) diff --git a/easyflow-ui-admin/app/src/views/ai/chatHistory/index.vue b/easyflow-ui-admin/app/src/views/ai/chatHistory/index.vue index 956fdad6..b6061843 100644 --- a/easyflow-ui-admin/app/src/views/ai/chatHistory/index.vue +++ b/easyflow-ui-admin/app/src/views/ai/chatHistory/index.vue @@ -5,9 +5,9 @@ import { computed, onMounted, ref } from 'vue'; import { useEasyFlowDrawer } from '@easyflow/common-ui'; import { - createChatVariantSwitchController, ChatTimeHistoryMapper, ChatTimeTimelineBuilder, + createChatVariantSwitchController, } from '@easyflow/utils'; import { Search } from '@element-plus/icons-vue'; @@ -60,7 +60,10 @@ const messagePage = ref({ pageSize: 20, }); const variantSwitchStateVersion = ref(0); -const variantSwitchController = createChatVariantSwitchController({ +const variantSwitchController = createChatVariantSwitchController< + any, + ChatTimeTimelineItem +>({ mapRecords: (records) => ChatTimeHistoryMapper.fromHistoryRecords(records), onStateChange: () => { variantSwitchStateVersion.value += 1; @@ -245,7 +248,8 @@ function prefetchVisibleVariants() { Number(item.variantCount || 0) > 1 ) { variantSwitchController.prefetchVariants({ - fetchVariants: () => fetchRoundVariants(sessionId, String(item.roundId)), + fetchVariants: () => + fetchRoundVariants(sessionId, String(item.roundId)), roundId: item.roundId, sessionId, }); @@ -254,7 +258,7 @@ function prefetchVisibleVariants() { } function currentSwitchingRoundIds() { - variantSwitchStateVersion.value; + void variantSwitchStateVersion.value; const sessionId = String(currentSession.value?.id || ''); if (!sessionId) { return []; @@ -262,7 +266,8 @@ function currentSwitchingRoundIds() { return messageList.value .filter( (item) => - item.roundId && variantSwitchController.isSwitching(sessionId, item.roundId), + item.roundId && + variantSwitchController.isSwitching(sessionId, item.roundId), ) .map((item) => String(item.roundId)); } @@ -373,48 +378,61 @@ function closeDetail() {