From e5b0dac74a1dfbff497468530ac84bdb073de286 Mon Sep 17 00:00:00 2001 From: wangdan-fit2cloud Date: Tue, 27 Oct 2026 17:38:39 +0800 Subject: [PATCH] fix: avatar --- ui/src/components/COMPONENT_README.md | 4 +- ui/src/constants/application.ts | 4 +- .../components/log-message-list/index.vue | 13 +++- .../markdown-renderer/QuickQuestion.vue | 8 +-- .../components/message-list/index.vue | 69 +++++++------------ .../core/reverse-infinite-scroll/index.vue | 10 +-- ui/src/styles/element-plus.scss | 4 ++ .../XpackDisplaySettingDialog.vue | 35 +++------- .../dialog/CreateOrUpdateGroupDialog.vue | 2 +- .../dialog/CreateOrUpdateGroupDialog.vue | 2 +- 10 files changed, 60 insertions(+), 91 deletions(-) diff --git a/ui/src/components/COMPONENT_README.md b/ui/src/components/COMPONENT_README.md index 4d23f7daf66..670642f649c 100644 --- a/ui/src/components/COMPONENT_README.md +++ b/ui/src/components/COMPONENT_README.md @@ -243,6 +243,8 @@ Element Plus 的 `v-infinite-scroll`。组件通过 `v-model` 管理已经加载 串行加载历史。内容不足一屏时继续补页,失败或未新增数据时停止自动补页。 默认插槽放消息,`empty` 插槽放欢迎语或空状态,加载期间不显示空状态。 +`prepend` 插槽放消息与空状态共用的前置内容,位于顶部加载提示之后,首次加载期间隐藏; +是否等待历史全部加载后展示由调用方控制。 首次加载使用整块遮罩;有消息时顶部预留状态行,加载期间使用 `mk-conversation-loading` 展示加载动画。失败后可再次主动上滑重试,流式回复状态由消息列表自行渲染。 历史消息前插后按滚动高度差补偿阅读位置,不要求消息设置额外的 DOM 属性。 @@ -254,7 +256,7 @@ Element Plus 的 `v-infinite-scroll`。组件通过 `v-model` 管理已经加载 公开 `scrollToBottom()` 强制定位到底部、`followBottom()` 仅在用户位于底部附近时跟随。 聊天列表订阅流式进度后调用 `followBottom()`;只读日志无需订阅。 `message-list` 和 `log-message-list` 使用该容器,保留各自的消息正文与底部信息;聊天列表 -自行展示流式圆点,欢迎语和日志空状态放入 `empty` 插槽。日志列表不注入发送能力。 +自行展示流式圆点,开场白放入 `prepend` 插槽,日志空状态放入 `empty` 插槽。日志列表不注入发送能力。 消息 Store 的 `loadMore()` 在新增历史记录时返回 `true`,空页、失败或未执行时返回 `false`, 直接传给滚动容器。新会话及重置时 `hasMore` 为 `false`;已有会话主动加载首页,成功后再更新 `hasMore`。首页失败后通过重新加载首页重试,不从下一页继续。 diff --git a/ui/src/constants/application.ts b/ui/src/constants/application.ts index 2eb3029216a..f7f27cf282a 100644 --- a/ui/src/constants/application.ts +++ b/ui/src/constants/application.ts @@ -19,6 +19,6 @@ export const APPLICATION_DISPLAY_SETTING_DEFAULT: Readonly +import { computed } from 'vue' import ContentList from '../content-list/index.vue' import MessageFooter from '../message-footer/index.vue' import ReverseInfiniteScroll from '../../core/reverse-infinite-scroll/index.vue' -import { computed } from 'vue' import { useLogMessageListStore } from './index' const { appInfo, messages, loading, hasMore, loadMore } = useLogMessageListStore() @@ -17,11 +17,18 @@ const showUserAvatar = computed(() => appInfo.value?.show_user_avatar)