Răsfoiți Sursa

style(policy): 详情面板「政策名称/政策所属部门」一行拉满整行,与下方卡片对齐

用户反馈(截图 + devtools 标注 .record-meta-info):箭头位置边距太大,要和下方对齐。
定位靠盒模型读数:该行元素只有 520px 宽,而面板与下方两张卡片都是整行宽——
名称列 max-width: 462px + 部门列写死 width: 110px 把整行卡死了;
部门写全称时还被挤成三行。

改法(PolicyMatch.vue 三条规则):
- .record-meta-info 加 width: 100%
- .meta-name:max-width: 462px → flex: 1 1 auto; min-width: 0
- .meta-no:width: 110px → flex: 0 1 340px; min-width: 110px

移动端不受影响(该断点里这个元素是 display: none,走 .mobile-record-meta-info)。

验证:npm run build 通过;三条规则读回源码核对。
⚠️ 未看到渲染结果,需用户刷新确认观感。

Co-Authored-By: Claude Code <noreply@anthropic.com>
gongtianxiao 15 ore în urmă
părinte
comite
a774aa4448
3 a modificat fișierele cu 56 adăugiri și 2 ștergeri
  1. 16 0
      README.md
  2. 29 0
      harness/progress.md
  3. 11 2
      src/components/Chat/PolicyMatch.vue

+ 16 - 0
README.md

@@ -262,3 +262,19 @@
   它最初与基础值同值(空操作),09-18 基础值改小后**变成窄屏把标题放大回 28px** 的覆盖,
   而标题是 `white-space: nowrap` —— 360px 屏下标题宽 356px、可用仅 272px,**会溢出屏幕 84px**;
   窄屏收缩已由 `.heading` 自己的 `clamp` 负责(已注释保留原文并写明原因)
+
+## 20260920
+
+- **企业信息同步扩充**:`company_info` 里 DMS 有列的字段现在**全部同步**
+  - 1888 企业基础信息:补上 **36 个工商信息字段**(企业名/经营状态/注册地址/注册资本/
+    经营范围/成立日期/曾用名/行政区划…,逐字段映射、字段级 diff、**无差异零写入**)
+  - 1886 企业荣誉信息:按后端 `honors.records` 逐条荣誉对齐(一条一行,`c_honor` 存荣誉名)
+  - 三条实现要点:**空值一律不写**(不清存量)、**JSON 列按语义比较**(库里是 Python/jsonb
+    序列化,带空格且键按字母序,直接比字符串会每轮误判成"有差异"而反复写)、
+    工商与荣誉**不依赖分类接口**(分类接口慢且偶发失败,拆开后互不牵连)
+  - 字段覆盖审计工具 `harness/tools/audit-company-info-coverage.mjs`:1888 写 43/47 列、
+    1886 写 12/13 列;未覆盖的 4 列(`c_scope_brief`/`c_phone_number`/`c_email`/`c_industry`)
+    后端接口本就没返回
+- 政策详情面板的「政策名称 / 政策所属部门」一行**拉满整行宽度**(与下方两张卡片右对齐):
+  原先名称列 `max-width: 462px` + 部门列写死 `110px`,整行只有约 520px 宽、右侧空一大块,
+  部门写全称时还被挤成三行;改为名称列占满剩余空间、部门列可伸展(下限仍 110px)

+ 29 - 0
harness/progress.md

@@ -2754,3 +2754,32 @@
 - 未决项仅剩:4 个载荷里没有数据源的列(`c_scope_brief`/`c_phone_number`/`c_email`/`c_industry`)
   要补得先让后端在 410 接口返回它们
 
+## Session 065
+
+- **日期**:2026-09-20
+- **本轮目标**:用户指出政策详情面板「政策名称 / 政策所属部门」那一行的
+  **箭头位置边距太大,要和下方对齐**(截图 + devtools 标注 `.record-meta-info`)
+- **定位(靠 devtools 的盒模型读数,不是靠眼估)**:
+  - `.record-meta-info` 元素**只有 520px 宽**,而面板容器与下方两张卡片
+    (`.detail-body-grid`)都是整行宽 → 该行右侧空出一大块
+  - 两个 CSS 把它卡死了:名称列 `.meta-name { max-width: 462px }`、
+    部门列 `.meta-no { width: 110px }`;且后者是写死的窄列,导致部门写全称时
+    (recordMode 的「政策所属部门」,如「青浦区人民政府办公室 区人社局 区委人才工作
+    领导小组办公室会同区人力资源和社会保障局」)被挤成三行
+- **改法**(`PolicyMatch.vue` 的三条规则):
+  - `.record-meta-info` 加 `width: 100%`(容器 `.record-header-section` 本来就是 100%)
+  - `.meta-name`:`max-width: 462px` → `flex: 1 1 auto; min-width: 0`(占满剩余空间)
+  - `.meta-no`:`width: 110px` → `flex: 0 1 340px; min-width: 110px`(可伸展、下限不变)
+  - 移动端不受影响:该断点里 `.record-meta-info` 是 `display: none`,
+    走的是另一个元素 `.mobile-record-meta-info`
+- **运行过的验证**:`npm run build` 通过;改动后的三条规则逐条读回源码核对
+- **已记录证据**:本文件 Session 065;根 `README.md` 的 20260920 节
+- **提交记录**:见下条提交(已按约定提交推送)
+- **更新过的文件或工件**:`src/components/Chat/PolicyMatch.vue`、根 `README.md`、本文件
+- **已知风险或未解决问题**:
+  - ⚠️ **未看到渲染结果**:这类改动的判定标准就是观感,需要用户刷新后确认
+    「右边缘是否与下方卡片对齐」「部门文字是否还折三行」
+  - ⚠️ 这是对**既有 UI 的样式改动**(项目规则默认不动既有样式),本次是用户明确要求;
+    若同一行的观感在别处(如非 recordMode 的「政策文号」)不合适,说一声即可再调
+- **下一步最佳动作**:用户刷新确认观感
+

+ 11 - 2
src/components/Chat/PolicyMatch.vue

@@ -2375,6 +2375,10 @@ onBeforeUnmount(() => {
   align-items: center;
   gap: 32px;
   padding-top: 8px;
+  /* 2026-09-20 按用户要求**拉满整行**:原来这一行只有约 520px 宽
+     (名称列 max-width 462 + 部门列写死 110),右侧空出一大块,与下方两张
+     卡片(.detail-body-grid,整行宽)右边缘对不齐 */
+  width: 100%;
 }
 
 .record-meta-item {
@@ -2384,11 +2388,16 @@ onBeforeUnmount(() => {
 }
 
 .record-meta-item.meta-name {
-  max-width: 462px;
+  /* 原来是 max-width: 462px —— 它把整行宽度卡死了;改为占满剩余空间 */
+  flex: 1 1 auto;
+  min-width: 0;
 }
 
 .record-meta-item.meta-no {
-  width: 110px;
+  /* 原来是写死的 110px —— 部门写全称时(recordMode 下的「政策所属部门」)
+     会被挤成三行;给它可伸展的宽度,下限仍是 110px */
+  flex: 0 1 340px;
+  min-width: 110px;
 }
 
 .meta-label {