From 5bb9b6d3dbdd927fbd469a8731b9197c54cceb2d Mon Sep 17 00:00:00 2001 From: JiaoTianBo Date: Wed, 1 Apr 2026 14:51:02 +0800 Subject: [PATCH] =?UTF-8?q?feat(ai-chat):=20=E9=9B=86=E6=88=90DeepChat?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E9=87=8D=E6=9E=84=E8=81=8A=E5=A4=A9=E7=95=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将自定义消息列表和输入区域替换为DeepChat组件 - 新增ChatGPT组件支持历史记录传递和自定义请求处理 - 重构消息处理逻辑,简化SSE连接管理 - 改进项目选择和会话管理流程 --- src/views/ai-chat/index.vue | 496 ++++++++---------------- src/views/chatai/components/ChatGPT.vue | 53 ++- 2 files changed, 198 insertions(+), 351 deletions(-) diff --git a/src/views/ai-chat/index.vue b/src/views/ai-chat/index.vue index cc70772..32aaa05 100644 --- a/src/views/ai-chat/index.vue +++ b/src/views/ai-chat/index.vue @@ -1,30 +1,26 @@ @@ -669,109 +579,17 @@ loadProjects(); } } - .messages-container { + .chat-body { flex: 1; padding: 20px; - overflow: auto; - - .message-item { - display: flex; - margin-bottom: 20px; - - &.user { - flex-direction: row-reverse; - - .message-content { - align-items: flex-end; - } - - .message-text { - color: #fff; - background: var(--el-color-primary); - } - } - - &.streaming { - .message-text { - background: var(--el-fill-color); - } - } - - .message-avatar { - flex-shrink: 0; - margin: 0 12px; - } - - .message-content { - display: flex; - flex-direction: column; - max-width: 70%; - - .message-text { - padding: 12px 16px; - line-height: 1.6; - overflow-wrap: break-word; - background: var(--el-fill-color); - border-radius: 12px; - } - - .referenced-docs { - padding: 8px 12px; - margin-top: 8px; - background: var(--el-fill-color-lighter); - border-radius: 8px; - - .ref-title { - display: flex; - gap: 4px; - align-items: center; - margin-bottom: 8px; - font-size: 12px; - color: var(--el-text-color-secondary); - } - - .ref-doc { - display: flex; - align-items: center; - justify-content: space-between; - padding: 4px 0; - font-size: 13px; - - .doc-title { - flex: 1; - margin-right: 8px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - } - } - - .message-time { - margin-top: 4px; - font-size: 12px; - color: var(--el-text-color-secondary); - } - } - } + overflow: hidden; } - .input-area { - padding: 16px 20px; - background: var(--el-fill-color-blank); - border-top: 1px solid var(--el-border-color-light); - - .input-actions { - display: flex; - align-items: center; - justify-content: space-between; - margin-top: 12px; - - .tip { - font-size: 12px; - color: var(--el-text-color-secondary); - } - } + .chat-body :deep(deep-chat) { + display: block; + width: 100%; + max-width: none; + height: 100%; } } diff --git a/src/views/chatai/components/ChatGPT.vue b/src/views/chatai/components/ChatGPT.vue index b61da5d..8c31bd3 100644 --- a/src/views/chatai/components/ChatGPT.vue +++ b/src/views/chatai/components/ChatGPT.vue @@ -1,25 +1,60 @@