diff --git a/web/src/components/AgentChatComponent.vue b/web/src/components/AgentChatComponent.vue index af344c95..3504096c 100644 --- a/web/src/components/AgentChatComponent.vue +++ b/web/src/components/AgentChatComponent.vue @@ -166,14 +166,16 @@ -
- -
+ +
+ +
+
@@ -1146,6 +1148,7 @@ watch( flex-direction: column; overflow-y: auto; /* Scroll is here now */ position: relative; + transition: flex 0.4s ease; } .agent-panel-wrapper { @@ -1161,6 +1164,23 @@ watch( border: 1px solid var(--gray-200); } +/* Workbench transition animations */ +.panel-slide-enter-active, +.panel-slide-leave-active { + transition: + transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), + opacity 0.3s ease, + flex 0.4s ease; +} + +.panel-slide-enter-from, +.panel-slide-leave-to { + transform: translateX(30px) scale(0.98); + opacity: 0; + flex: 0 0 0; /* Shrink to zero width during transition */ + margin-left: -16px; /* Compensate for margin during close */ +} + .chat-examples { padding: 0 50px; text-align: center; diff --git a/web/src/components/MessageInputComponent.vue b/web/src/components/MessageInputComponent.vue index b88d46dd..d7aa55bf 100644 --- a/web/src/components/MessageInputComponent.vue +++ b/web/src/components/MessageInputComponent.vue @@ -327,7 +327,6 @@ defineExpose({ justify-self: start; display: flex; align-items: center; - margin-right: 8px; gap: 8px; } diff --git a/web/src/components/RAGEvaluationTab.vue b/web/src/components/RAGEvaluationTab.vue index 518fd369..5b2d652b 100644 --- a/web/src/components/RAGEvaluationTab.vue +++ b/web/src/components/RAGEvaluationTab.vue @@ -62,7 +62,7 @@ { } }) } - await getDatabaseInfo(undefined, true) // Skip query params when adding files + await delayedRefresh() // 延迟1秒后刷新 return true // Indicate success } else { message.error(data.message || '处理失败') @@ -357,7 +357,7 @@ export const useDatabaseStore = defineStore('database', () => { payload: { db_id: databaseId.value, count: fileIds.length } }) } - await getDatabaseInfo(undefined, true) + await delayedRefresh() // 延迟1秒后刷新 return true } else { message.error(data.message || '提交失败') @@ -389,7 +389,7 @@ export const useDatabaseStore = defineStore('database', () => { payload: { db_id: databaseId.value, count: fileIds.length } }) } - await getDatabaseInfo(undefined, true) + await delayedRefresh() // 延迟1秒后刷新 return true } else { message.error(data.message || '提交失败') @@ -482,6 +482,12 @@ export const useDatabaseStore = defineStore('database', () => { } } + // 延时刷新文件理解(延迟1秒后刷新) + async function delayedRefresh() { + await new Promise((resolve) => setTimeout(resolve, 1000)) + await getDatabaseInfo(undefined, true) + } + function toggleAutoRefresh() { const nextState = !state.autoRefresh state.autoRefresh = nextState