From 0947009ee653f321fe2bcdfbea2fcc645afcd9cb 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, 18 May 2026 09:59:59 +0800
Subject: [PATCH] =?UTF-8?q?feat:=20=E7=BB=9F=E4=B8=80=E8=81=8A=E5=A4=A9=20?=
=?UTF-8?q?Markdown=20=E6=B8=B2=E6=9F=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 新增 ChatTimeMarkdown 并在管理端、用户端聊天入口复用
- 收敛聊天页面重复 Markdown 样式,保留工具和思考块独立渲染
---
.../chat-history/ChatHistoryDetailDrawer.vue | 27 --
.../chat/ChatTimeMessageContent.vue | 7 +-
.../app/src/views/ai/chat/index.vue | 28 +-
.../app/src/views/publicChat/index.vue | 47 +--
.../packages/effects/common-ui/package.json | 1 +
.../chat-markdown/ChatTimeMarkdown.vue | 308 ++++++++++++++++++
.../src/components/chat-markdown/index.ts | 1 +
.../effects/common-ui/src/components/index.ts | 1 +
easyflow-ui-admin/pnpm-lock.yaml | 3 +
.../app/src/components/chat/bubbleList.vue | 8 +-
.../packages/effects/common-ui/package.json | 1 +
.../chat-markdown/ChatTimeMarkdown.vue | 308 ++++++++++++++++++
.../src/components/chat-markdown/index.ts | 1 +
.../effects/common-ui/src/components/index.ts | 1 +
easyflow-ui-usercenter/pnpm-lock.yaml | 3 +
15 files changed, 638 insertions(+), 107 deletions(-)
create mode 100644 easyflow-ui-admin/packages/effects/common-ui/src/components/chat-markdown/ChatTimeMarkdown.vue
create mode 100644 easyflow-ui-admin/packages/effects/common-ui/src/components/chat-markdown/index.ts
create mode 100644 easyflow-ui-usercenter/packages/effects/common-ui/src/components/chat-markdown/ChatTimeMarkdown.vue
create mode 100644 easyflow-ui-usercenter/packages/effects/common-ui/src/components/chat-markdown/index.ts
diff --git a/easyflow-ui-admin/app/src/components/chat-history/ChatHistoryDetailDrawer.vue b/easyflow-ui-admin/app/src/components/chat-history/ChatHistoryDetailDrawer.vue
index b9784bc..308e46d 100644
--- a/easyflow-ui-admin/app/src/components/chat-history/ChatHistoryDetailDrawer.vue
+++ b/easyflow-ui-admin/app/src/components/chat-history/ChatHistoryDetailDrawer.vue
@@ -509,33 +509,6 @@ async function handleCopyMessage(item: ChatTimeTimelineItem) {
.chat-history-detail__markdown {
min-width: 0;
- font-size: 14px;
- line-height: 1.72;
-}
-
-.chat-history-detail__markdown :deep(.markdown-body) {
- font-size: inherit;
- line-height: inherit;
- background: transparent;
-}
-
-.chat-history-detail__markdown :deep(.markdown-body > :first-child) {
- margin-top: 0;
-}
-
-.chat-history-detail__markdown :deep(.markdown-body > :last-child) {
- margin-bottom: 0;
-}
-
-.chat-history-detail__markdown :deep(.markdown-body p) {
- font-size: inherit;
- line-height: inherit;
-}
-
-.chat-history-detail__markdown :deep(pre) {
- max-width: 100%;
- margin-top: 0;
- overflow: auto;
}
.chat-history-detail__tool-panel :deep(.el-collapse-item__wrap) {
diff --git a/easyflow-ui-admin/app/src/components/chat/ChatTimeMessageContent.vue b/easyflow-ui-admin/app/src/components/chat/ChatTimeMessageContent.vue
index 053d81d..3099799 100644
--- a/easyflow-ui-admin/app/src/components/chat/ChatTimeMessageContent.vue
+++ b/easyflow-ui-admin/app/src/components/chat/ChatTimeMessageContent.vue
@@ -5,9 +5,8 @@ import type {
} from '@easyflow/types';
import { computed, ref } from 'vue';
-import { XMarkdown as ElXMarkdown } from 'vue-element-plus-x';
-import { ChatThinkingBlock } from '@easyflow/common-ui';
+import { ChatThinkingBlock, ChatTimeMarkdown } from '@easyflow/common-ui';
import { IconifyIcon } from '@easyflow/icons';
import { CircleCheck } from '@element-plus/icons-vue';
@@ -75,7 +74,7 @@ function toggleToolExpanded() {
:status="segment.status"
class="chat-thinking-block-item"
/>
-
+
@@ -125,7 +124,7 @@ function toggleToolExpanded() {
-
+
diff --git a/easyflow-ui-admin/packages/effects/common-ui/src/components/chat-markdown/index.ts b/easyflow-ui-admin/packages/effects/common-ui/src/components/chat-markdown/index.ts
new file mode 100644
index 0000000..bc682e4
--- /dev/null
+++ b/easyflow-ui-admin/packages/effects/common-ui/src/components/chat-markdown/index.ts
@@ -0,0 +1 @@
+export { default as ChatTimeMarkdown } from './ChatTimeMarkdown.vue';
diff --git a/easyflow-ui-admin/packages/effects/common-ui/src/components/index.ts b/easyflow-ui-admin/packages/effects/common-ui/src/components/index.ts
index a650c5f..caae19d 100644
--- a/easyflow-ui-admin/packages/effects/common-ui/src/components/index.ts
+++ b/easyflow-ui-admin/packages/effects/common-ui/src/components/index.ts
@@ -1,5 +1,6 @@
export * from './api-component';
export * from './captcha';
+export * from './chat-markdown';
export * from './chat-thinking';
export * from './col-page';
export * from './count-to';
diff --git a/easyflow-ui-admin/pnpm-lock.yaml b/easyflow-ui-admin/pnpm-lock.yaml
index 736ac70..ac2082f 100644
--- a/easyflow-ui-admin/pnpm-lock.yaml
+++ b/easyflow-ui-admin/pnpm-lock.yaml
@@ -1366,6 +1366,9 @@ importers:
vue:
specifier: ^3.5.17
version: 3.5.24(typescript@5.9.3)
+ vue-element-plus-x:
+ specifier: 'catalog:'
+ version: 1.3.7(rollup@4.53.2)(vue@3.5.24(typescript@5.9.3))
vue-json-viewer:
specifier: 'catalog:'
version: 3.0.4(vue@3.5.24(typescript@5.9.3))
diff --git a/easyflow-ui-usercenter/app/src/components/chat/bubbleList.vue b/easyflow-ui-usercenter/app/src/components/chat/bubbleList.vue
index 02907a4..1fa6b61 100644
--- a/easyflow-ui-usercenter/app/src/components/chat/bubbleList.vue
+++ b/easyflow-ui-usercenter/app/src/components/chat/bubbleList.vue
@@ -1,11 +1,9 @@
+
+
+
+
+
+
diff --git a/easyflow-ui-usercenter/packages/effects/common-ui/src/components/chat-markdown/index.ts b/easyflow-ui-usercenter/packages/effects/common-ui/src/components/chat-markdown/index.ts
new file mode 100644
index 0000000..bc682e4
--- /dev/null
+++ b/easyflow-ui-usercenter/packages/effects/common-ui/src/components/chat-markdown/index.ts
@@ -0,0 +1 @@
+export { default as ChatTimeMarkdown } from './ChatTimeMarkdown.vue';
diff --git a/easyflow-ui-usercenter/packages/effects/common-ui/src/components/index.ts b/easyflow-ui-usercenter/packages/effects/common-ui/src/components/index.ts
index a650c5f..caae19d 100644
--- a/easyflow-ui-usercenter/packages/effects/common-ui/src/components/index.ts
+++ b/easyflow-ui-usercenter/packages/effects/common-ui/src/components/index.ts
@@ -1,5 +1,6 @@
export * from './api-component';
export * from './captcha';
+export * from './chat-markdown';
export * from './chat-thinking';
export * from './col-page';
export * from './count-to';
diff --git a/easyflow-ui-usercenter/pnpm-lock.yaml b/easyflow-ui-usercenter/pnpm-lock.yaml
index 8a22af2..9961d9c 100644
--- a/easyflow-ui-usercenter/pnpm-lock.yaml
+++ b/easyflow-ui-usercenter/pnpm-lock.yaml
@@ -1342,6 +1342,9 @@ importers:
vue:
specifier: ^3.5.17
version: 3.5.24(typescript@5.9.3)
+ vue-element-plus-x:
+ specifier: 'catalog:'
+ version: 1.3.7(rollup@4.53.2)(vue@3.5.24(typescript@5.9.3))
vue-json-viewer:
specifier: 'catalog:'
version: 3.0.4(vue@3.5.24(typescript@5.9.3))