Revert "fe-bug(product): 行程编排 DAY 1 开始字段渲染缺字 (CitySelect tag/watch 异步)"
This reverts commit 1c5967c4111270df3c1d2c958a8ce812ee8bb35d.
这个提交包含在:
父节点
1c5967c411
当前提交
47be9f39d3
@ -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
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户