Преглед изворни кода

fix(chat): 思考中卡片的阶段文案一律不换行

ScopeContent 原本按卡片宽度切样式:没撑满容器时标题 nowrap + 省略号,
撑满时把「标题与正文」一起切成 pre-wrap。而新协议的阶段文案比原来的
"正在思考中..." 长得多,撑满即翻转,表现为突然换行、卡片高度跳动。

改法:拆开那条同时管标题与正文的规则——正文保持 pre-wrap(它本就是为多行设计的),
标题恒定 nowrap + 省略号。

Co-Authored-By: Claude Code <noreply@anthropic.com>
gongtianxiao пре 3 дана
родитељ
комит
27e0083160
2 измењених фајлова са 16 додато и 1 уклоњено
  1. 6 0
      README.md
  2. 10 1
      src/components/Chat/ScopeContent.vue

+ 6 - 0
README.md

@@ -68,6 +68,12 @@
   - 新增回归脚本 `harness/tools/verify-empty-content-agreement.mjs`,
     断言的不变量就是「两处必须一致」,30 项断言
 - 删除政策详情面板的「原文引用」板块(条件核验、匹配依据保留)
+- 思考中卡片的阶段文案一律不换行:
+  - 原因:`ScopeContent` 按卡片宽度切样式 —— 没撑满容器时标题 `nowrap` + 省略号,
+    撑满时切成 `pre-wrap`。而阶段文案长度不一(新协议的文案比原来的"正在思考中..."长得多),
+    切换时表现为「突然换行」且卡片高度跳动
+  - 改法:拆开原本同时管标题与正文的规则 —— **正文保持可换行**,
+    标题恒定 `nowrap` + 省略号
 - 政策详情面板的「政策名称」支持点击跳转:由库条目的 `data.市级政策id`
   拼出 `https://zwdt.sh.gov.cn/qykj/shell_oc_policy_zq/policy/policy-detail?id=<id>`
   - 背景:库里 `apply_link` 字段 262 条**全为空**;`资源申请备注` 里的 URL 是按申报事项

+ 10 - 1
src/components/Chat/ScopeContent.vue

@@ -724,12 +724,21 @@ onBeforeUnmount(() => {
     max-width: 100%;
   }
 
-  .scope-header-title,
   .scope-content-line__text {
     white-space: pre-wrap;
     word-break: break-word;
     overflow-wrap: anywhere;
   }
+
+  // 标题恒定单行:卡片撑满容器宽度时原本会切成 pre-wrap 换行,
+  // 而阶段文案长度不一,切换时表现为“突然换行”、卡片高度跳动。
+  .scope-header-title {
+    white-space: nowrap;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    word-break: normal;
+    overflow-wrap: normal;
+  }
 }
 
 .scope-header {