From 85adcdceef9a6c1a28cbed2d34dba7a6a24485ed Mon Sep 17 00:00:00 2001 From: ludan <251918489@qq.com> Date: Mon, 15 Jun 2026 18:23:36 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E5=AF=B9=E8=AF=9D=E9=9D=A2=E6=9D=BF=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E4=B8=8E=E8=A7=86=E8=A7=89=E5=B1=82=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 本次修改聚焦于电商记录详情页的对话面板体验打磨: 一、对话顺序优化(EcommercePage.tsx): - 将"新需求"跟进消息从AI回复之前移至AI回复之后 - 调整后的对话时间线:用户历史需求 → AI回复 → 用户新需求,逻辑更符合真实对话流程 二、对话面板视觉升级(ecommerce-standalone.css): - 对话面板宽度采用CSS变量动态控制(408-440px),视觉更宽敞 - 消息气泡区分明确: · 用户消息:左侧缩进26-36px,蓝色调渐变背景,青色边框 · AI消息:右侧缩进26-36px,蓝调边框,中性背景 · 跟进消息:独特高亮样式,更强边框(0.24透明度)和投影 - 排版细节打磨: · 消息标签字号12px/权重820 · 正文13px/行高1.64 · 气泡内间距15px、圆角20px、投影加深 - 元信息标签(emo)精修:28px高度、圆角胶囊样式 - 素材缩略图:46x46px、圆角14px - 响应式适配:≤900px面板收窄至92vw,≤480px去除消息缩进 变更文件: - src/features/ecommerce/EcommercePage.tsx (+20/-20) - src/styles/ecommerce-standalone.css (+121) --- src/features/ecommerce/EcommercePage.tsx | 40 ++++---- src/styles/ecommerce-standalone.css | 121 +++++++++++++++++++++++ 2 files changed, 141 insertions(+), 20 deletions(-) diff --git a/src/features/ecommerce/EcommercePage.tsx b/src/features/ecommerce/EcommercePage.tsx index e2dffe5..23e4914 100644 --- a/src/features/ecommerce/EcommercePage.tsx +++ b/src/features/ecommerce/EcommercePage.tsx @@ -6941,26 +6941,6 @@ function ProductClonePage(_props: ProductClonePageProps = {}) { ) : null} - {newConversationImages.length ? ( -
- 新需求 -

{newRequirementText}

-
- {currentRequirementMeta.map((item) => ( - - {item.label} - {item.value} - - ))} -
-
- {newConversationImages.slice(0, 4).map((image) => ( - {image.name - ))} - {newConversationImages.length > 4 ? +{newConversationImages.length - 4} : null} -
-
- ) : null}
电商图设计师

@@ -6990,6 +6970,26 @@ function ProductClonePage(_props: ProductClonePageProps = {}) { ) : null}

+ {newConversationImages.length ? ( +
+ 新需求 +

{newRequirementText}

+
+ {currentRequirementMeta.map((item) => ( + + {item.label} + {item.value} + + ))} +
+
+ {newConversationImages.slice(0, 4).map((image) => ( + {image.name + ))} + {newConversationImages.length > 4 ? +{newConversationImages.length - 4} : null} +
+
+ ) : null}