laoyang
ad9b934760
日程详情卡:补齐行程的出发地/目的地 (#69)
用户 2026-11-05:「点击行程里旅行日历本里的信息时,弹出来的那个框是在首页上
弹出的,还是没有出发地和目的地。」
根因链(三段,缺一段都不显示):
1. FbCalEventFull 没有那四个字段
#67 只给了 FbCalEvent(列表用),详情卡消费的是 FbCalEventFull。
2. shellOf() 只塞了 location: b.place
行程节点的 place 是空串 —— 它的位置概念是"从哪到哪",没有单一地点。
3. 最关键:行程条目**永远走 shell,压根不请求详情接口**
openEvent() 里 `if (!isEditableEvent(e)) { shellOf(e); return; }`,
行程的 kind 是 trip 不是 custom ⇒ 直接短路。
而且即使去请求也没意义:Calendar::event($id) 查的是 calendar_events,
行程节点在 trip_nodes 表,那个 id 查不到东西。
⇒ 位置信息**只能**靠 shell 带过去。
改动:
- FbCalEventFull 加 fromPlace/toPlace/fromLng/fromLat/toLng/toLat
- FbCalRepo.toFull() 从接口读(接口给就填,普通日程取到空串)
- 首页 FbHomePage.shellOf()、日程页 FbCalendarPage.shellOf() 两处传递
(两处是独立实现,只改一处会漏)
- FbEventSheet:
· navRow 改 navRowRaw(label, place, navTarget) —— 标签不再硬编码「地点」
· onNavigate 从无参改成 onNavigate(navTarget)
原来宿主只能读 event.location 猜导航目标,无法区分出发地/目的地
· 渲染三分支:有 fromPlace 画「出发地」、有 toPlace 画「目的地」、
有 location 画「地点」(三者互斥:行程条目只有前两个,普通日程只有第三个)
· 新增 navTargetOf(place, lng, lat):有坐标返回 `lat,lng?地名`
(同名地点不会搜错城市),没有就只给地名让 FbNav 地理编码
- 首页 navigateEvent / 日程页 navigateDetail 改成接受 navTarget,
非空直接用,为空退回原来那套推导(底部那颗「导航」按钮传空串)
2026-11-05 16:21:16 +08:00
..
2026-11-05 16:21:16 +08:00
2026-10-11 22:07:48 +08:00
2026-10-11 22:07:48 +08:00
2026-10-11 22:07:48 +08:00
2026-10-11 22:07:48 +08:00