3.9 KiB
3.9 KiB
date, type, module, priority, notify, status
| date | type | module | priority | notify | status | |
|---|---|---|---|---|---|---|
| 2026-05-13 | frontend-bug | admin-product-v2-supplement | medium |
|
pending |
设计产品「产品卖点 → 快速理解」加入游玩项目后,节点描述未自动回显「项目亮点」
现象
正式环境 (admin.1814.love) 复现:
- 资源管理 → 游玩项目管理 编辑「巴尔虎马之舞实景演绎」, 「项目亮点」字段已填写:
"百马奔腾的视觉震撼,草原文化的动态浓缩。" - 产品管理 → 设计产品(私人订制类型, 编辑路径
/product/edit?id=2884932124199674426) - 第 5 步「补充信息」→ 左侧「产品卖点」→「快速理解」→ 加入游玩项目「巴尔虎马之舞实景演绎」(标签:活动)
- 每个节点下的「节点描述」输入框是空白(placeholder「节点描述」)
期望: 节点描述自动回显该游玩项目的「项目亮点」(百马奔腾的视觉震撼…), 让用户不用手抄一遍。
实际: 空白。
根因(纯前端,后端无关)
经 /@ba 调研,后端数据链路完整,锅在前端:
后端确认无问题
- 游玩项目实体
hl-resource-service/.../entity/ServiceItem.java:53已有highlights字段。 - 游玩项目列表接口
GET /admin/service/items→ServiceItemListVO(hl-resource-service/.../vo/ServiceItemListVO.java)字段列表里第 52 行就是highlights✅。也就是说前端拉列表/详情时, 后端已经把项目亮点吐过去了, 没有漏字段。 - 产品补充信息保存接口 把
quickUnderstand当 JSON 透传存到product_supplement.quick_understand字段, 后端不解析节点结构, 节点描述写啥后端就存啥。 - 产品详情接口 原样吐 JSON, 节点描述存的什么就回什么。
结论: 后端列表接口已返回 highlights, 但前端在「添加节点到快速理解」时, 没有把 service.highlights 复制到节点对象的描述字段(节点 JSON 里那个 description / desc / 不管叫啥的字段), 所以保存到 DB 时该字段就是空字符串, 编辑回显当然也空。
修法(前端,1 处改动)
在「产品卖点 → 快速理解」添加节点的逻辑里, 当来源是游玩项目(service_item)时, 把 service.highlights 写进节点的描述字段作为默认值:
// 大致逻辑示意 - 实际字段名以前端 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 — 不阻塞功能, 但每加一个项目都要手抄一遍亮点, 体验差。