From 47be9f39d342a87c391410a4f7eadf2824bfcb9c Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Thu, 30 Apr 2026 17:08:01 +0800 Subject: [PATCH] =?UTF-8?q?Revert=20"fe-bug(product):=20=E8=A1=8C=E7=A8=8B?= =?UTF-8?q?=E7=BC=96=E6=8E=92=20DAY=201=20=E5=BC=80=E5=A7=8B=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E6=B8=B2=E6=9F=93=E7=BC=BA=E5=AD=97=20(CitySelect=20t?= =?UTF-8?q?ag/watch=20=E5=BC=82=E6=AD=A5)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 1c5967c4111270df3c1d2c958a8ce812ee8bb35d. --- ..._itinerary-gather-place-render-mismatch.md | 81 ------------------- 1 file changed, 81 deletions(-) delete mode 100644 changelogs/2026-04/30_fe-bug_product_itinerary-gather-place-render-mismatch.md diff --git a/changelogs/2026-04/30_fe-bug_product_itinerary-gather-place-render-mismatch.md b/changelogs/2026-04/30_fe-bug_product_itinerary-gather-place-render-mismatch.md deleted file mode 100644 index 23a093b..0000000 --- a/changelogs/2026-04/30_fe-bug_product_itinerary-gather-place-render-mismatch.md +++ /dev/null @@ -1,81 +0,0 @@ -# 前端 BUG 通知:产品行程编排 DAY 1「开始」集合地渲染缺字 - -**类型**: 前端 BUG (后端零改动) -**关联**: 经验 `nselect-tag-mode-stringify-race.md` (2026-04-20 同类) + `two-render-paths-same-data-isolate-component-bug.md` -**日期**: 2026-04-30 -**前端处理者**: yst / mmg -**复现路径**: `web.test.1814.love:9443/product/edit?id=2045018534152478721` → Step 2 行程编排 → DAY 1 "专车接机+自由活动" - ---- - -## 现象 - -DAY 1 卡片: -- **「开始」(集合地)** 输入框显示 `海拉尔` ← **缺"区"字** -- **「结束」(解散地)** 输入框显示 `海拉尔区` ← 正常 - -二者使用同一个 CitySelect 组件,**同一份数据,两处渲染结果不一致**。 - -## 后端排查 (零问题) - -### DB 实际值 (192.168.100.236 / hl_product_service / product_itinerary_day) - -```jsonc -gather_place: {"name": "海拉尔区", "level": "district", "adcode": "150702", "fullPath": "内蒙古自治区/呼伦贝尔市/海拉尔区", "levelName": "区/县"} -dismissal_place: {"name": "海拉尔区", "level": "district", "adcode": "150702", "fullPath": "内蒙古自治区/呼伦贝尔市/海拉尔区", "levelName": "区/县"} -``` - -**两字段值完全相同**,name 都是"海拉尔区"。 - -### 后端 RespVO 结构 (`ItineraryDayRespVO.java:24-26`) - -```java -private Object gatherPlace; // line 24 -private Object dismissalPlace; // line 26 -``` - -两字段都是 `Object` 类型对称返回,JSON 输出格式一致。**后端零嫌疑**。 - -## 根因 - -memory 经验 `experience/backend-dev/nselect-tag-mode-stringify-race.md` (2026-04-20) 直接命中: - -> CitySelect 集合地/解散地下拉框显示 JSON 串/原 ID 而非中文。三件套触发: tag 开 + value 是 JSON 对象 + options 异步。不影响保存仅显示。 - -本次"海拉尔" vs "海拉尔区" 缺字也是同根: **CitySelect tag 模式下 watch 异步,在 options 还没加载完时,直接对 value.name 字符串做了截断/部分匹配显示**。两个字段渲染时机不同导致一处对一处错。 - -## 前端待修 - -### 复现步骤 - -1. 进入产品 `2045018534152478721` 编辑页 -2. 切到 Step 2 行程编排 -3. DAY 1 "专车接机+自由活动" 展开 -4. 看「开始」和「结束」两个输入框 → "开始" 显示 `海拉尔` (缺字),"结束" 显示 `海拉尔区` (正常) - -### 待排查方向 - -参考 4-20 经验文件,可能修复方向: -1. CitySelect 组件 `value` 与 `options` 加载完成的同步问题 — 等 options 都 ready 再渲染 tag -2. tag 模式 + JSON value 对象 + 异步 options 三件套是否其中之一可去掉 -3. 显示层用 `fullPath` 兜底而不是 `name`?或者用 `name` 时确保完整字符串不被截断 -4. 4-20 那次只修了部分场景(可能某个组件路径或某个父组件的 props 传递),这次新的复现说明遗漏 - -### 验证 - -修完后: -- 重新进入同一产品编辑页 -- DAY 1 "开始" 和 "结束" 都应显示 `海拉尔区` -- 切换 DAY 2/3/4/5 同样验证 -- 切换 Step 后再回 Step 2 验证 watch 复测 -- 保存后 reload 页面再验证 - -## 后端不动 - -后端 RespVO 字段类型对称,DB 数据正确,gather_place 与 dismissal_place 完全等价。本次纯 UI 渲染 BUG,后端零改动。 - -## 关联经验沉淀 - -- `experience/backend-dev/nselect-tag-mode-stringify-race.md` — 4-20 同根问题 -- `experience/bug-analyst/two-render-paths-same-data-isolate-component-bug.md` — 同对象两处渲染不一致 = 锁定组件 BUG -- `feedback_frontend-bug-no-issue-changelog-only.md` — 前端 BUG 不建工单只发 changelog