frontend-bug(product-v2): 卖点快速理解加入游玩项目时未回显项目亮点 (notify @mmg)
这个提交包含在:
父节点
bbb120f374
当前提交
81104fc6d9
@ -0,0 +1,68 @@
|
||||
---
|
||||
date: 2026-05-13
|
||||
type: frontend-bug
|
||||
module: admin-product-v2-supplement
|
||||
priority: medium
|
||||
notify: ["@mmg"]
|
||||
status: pending
|
||||
---
|
||||
|
||||
# 设计产品「产品卖点 → 快速理解」加入游玩项目后,节点描述未自动回显「项目亮点」
|
||||
|
||||
## 现象
|
||||
|
||||
正式环境 (admin.1814.love) 复现:
|
||||
|
||||
1. **资源管理 → 游玩项目管理** 编辑「巴尔虎马之舞实景演绎」, 「项目亮点」字段已填写: `"百马奔腾的视觉震撼,草原文化的动态浓缩。"`
|
||||
2. **产品管理 → 设计产品**(私人订制类型, 编辑路径 `/product/edit?id=2884932124199674426`)
|
||||
3. 第 5 步「补充信息」→ 左侧「产品卖点」→「快速理解」→ 加入游玩项目「巴尔虎马之舞实景演绎」(标签:活动)
|
||||
4. **每个节点下的「节点描述」输入框是空白**(placeholder「节点描述」)
|
||||
|
||||
期望: 节点描述自动回显该游玩项目的「项目亮点」(`百马奔腾的视觉震撼…`), 让用户不用手抄一遍。
|
||||
实际: 空白。
|
||||
|
||||
## 根因(纯前端,后端无关)
|
||||
|
||||
经 `/@ba` 调研,后端数据链路完整,锅在前端:
|
||||
|
||||
### 后端确认无问题
|
||||
|
||||
1. **游玩项目实体** `hl-resource-service/.../entity/ServiceItem.java:53` 已有 `highlights` 字段。
|
||||
2. **游玩项目列表接口** `GET /admin/service/items` → `ServiceItemListVO`(`hl-resource-service/.../vo/ServiceItemListVO.java`)字段列表里**第 52 行就是 `highlights`** ✅。也就是说前端拉列表/详情时, 后端**已经把项目亮点吐过去了**, 没有漏字段。
|
||||
3. **产品补充信息保存接口** 把 `quickUnderstand` 当 JSON 透传存到 `product_supplement.quick_understand` 字段, 后端不解析节点结构, 节点描述写啥后端就存啥。
|
||||
4. **产品详情接口** 原样吐 JSON, 节点描述存的什么就回什么。
|
||||
|
||||
结论: 后端列表接口已返回 `highlights`, 但**前端在「添加节点到快速理解」时, 没有把 `service.highlights` 复制到节点对象的描述字段**(节点 JSON 里那个 `description` / `desc` / 不管叫啥的字段), 所以保存到 DB 时该字段就是空字符串, 编辑回显当然也空。
|
||||
|
||||
## 修法(前端,1 处改动)
|
||||
|
||||
在「产品卖点 → 快速理解」添加节点的逻辑里, 当来源是游玩项目(service_item)时, 把 `service.highlights` 写进节点的描述字段作为默认值:
|
||||
|
||||
```js
|
||||
// 大致逻辑示意 - 实际字段名以前端 quickUnderstand 节点 JSON schema 为准
|
||||
function addServiceItemNode(service) {
|
||||
quickUnderstand.nodes.push({
|
||||
serviceId: service.serviceId,
|
||||
name: service.name,
|
||||
image: service.image,
|
||||
type: 'service-item',
|
||||
description: service.highlights || '', // ← 关键:用 highlights 预填
|
||||
})
|
||||
}
|
||||
```
|
||||
|
||||
用户仍然可以手动改这个描述框(因为前端是 input 不是只读), 这只是**默认值**。
|
||||
|
||||
## 验证清单(前端改完自测)
|
||||
|
||||
- [ ] 新建私人订制产品 → 第 5 步「补充信息」→「产品卖点」→「快速理解」→ 加入任一有 `highlights` 的游玩项目 → 节点描述自动出现项目亮点文本
|
||||
- [ ] 加入一个 `highlights` 为空的游玩项目 → 节点描述空(占位符正常显示), 不报错
|
||||
- [ ] 用户手动改了节点描述后保存 → 重进编辑页, 显示用户改后的内容(而非再被 highlights 覆盖)
|
||||
- [ ] 删除节点重新加同一个游玩项目 → 默认值再次填入
|
||||
- [ ] 已存在的历史产品(节点描述本来就是空的)进入编辑: 视产品策略, 建议**不**自动用 highlights 回填历史空值(否则可能覆盖用户故意留空的意图), 仅对**新加入的节点**做预填
|
||||
|
||||
## 后端无需任何改动
|
||||
|
||||
`ServiceItemListVO.highlights` 已返回, `product_supplement.quick_understand` 是 JSON 透传, 后端没有补全逻辑也不该有(节点描述用户可改, 不能强行 join 覆盖)。这条 changelog 只为通知前端修。
|
||||
|
||||
@mmg 看下 hl-ui 里产品卖点(快速理解)添加游玩项目节点的组件, 优先级 P2 — 不阻塞功能, 但每加一个项目都要手抄一遍亮点, 体验差。
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户