日程里的行程条目:图标按出行方式、去掉✓、带出出发地/目的地 (#67)

用户 2026-11-05 三条:

1. 「图标应该来自里面具体的交通工具,如果是火车就应该显示火车」
   原来 Calendar::month() 的 trip 派生段用 Trip::typeIcon(node_type),
   typeIcon(move) 恒为 🚗 ⇒「赶路」永远显示汽车,哪怕实际坐的是火车。
   改用 Trip::leadIcon(node_type, travel_mode, familyId) ——
   出行方式优先、节点类型兜底,与旅行详情页行程卡同一个方法。

2. 「后面这个对号是什么意思?表示它是一个实际行程吗?我感觉没必要,直接去掉」
   删掉标题拼装里的  ✓ (原来用来区分 stage=actual)。

3. 「如果行程里面有地址,也就是有出发地和目的地,应该像行程里显示的那样,
    把它显示在下面,这样一点就可以导航」
   这段 SQL 原来**完全没查** from_*/to_*,日历里只剩一个标题。
   补 n.from_place/to_place + 四个坐标字段,输出加 from_place/to_place/
   from_lng/from_lat/to_lng/to_lat。

端上:
- FbCalEvent 加 6 个字段(RawCalEvent / FbParse / FbCalStore / DemoData 同步)
- 坐标用 numStr() 转字符串(服务端 DECIMAL 可能给 number,s() 只收 string)
- FbDayEventPanel 列表卡片:时间行上面单独一行「出发地 → 目的地」,
  目的地带下划线 + 日历本色,点击调 fbOpenNavigation(有坐标带坐标,
  没有让 FbNav 自己地理编码)
- FbDayTimeline 全天块:一行文字「出发地 → 目的地」,不给点击
  (26vp 高的块切两个热区会点不准,导航入口在详情卡里)

网页端:
- fb_entry_json() 的 rows 补「出发地」「目的地」两行
- 日历网格里的条目太窄,只显示标题,不加这两行

实测(family 1 全年):
  title = [✈️ 从青岛坐飞机去哈尔滨]
  from  = [青岛胶东国际机场]
  to    = [哈尔滨太平国际机场]
  to_lng= [126.241474]  to_lat=[45.611938]
  —— 飞机显示 ✈️、没有 ✓、地址坐标齐全
This commit is contained in:
2026-11-05 16:12:06 +08:00
parent 403ecd9dea
commit e015181fa3
2 changed files with 38 additions and 5 deletions
+10
View File
@@ -446,6 +446,16 @@ function fb_entry_json(array $ev, string $detail = '', string $edit = '', array
if ($when !== '') { $rows[] = ['时间', $when]; }
if ((string)($ev['calname'] ?? '') !== '') { $rows[] = ['日历本', (string)$ev['calname']]; }
if ((string)($ev['location'] ?? '') !== '') { $rows[] = ['地点', (string)$ev['location']]; }
/* 🔴 #67(用户 2026-11-05):「如果行程里面有地址,也就是有出发地和目的地,
应该像行程里显示的那样,把它显示在下面,这样一点就可以导航。」
⇒ 行程派生条目(kind=trip)额外给两行:出发地 / 目的地。
@ 用两行而不是一行「A → B」:详情卡是 `dl.kv` 两列表格,
一行一个地名读起来更清楚,也便于将来给单个地名挂导航链接。
@ 普通日程没有这两个字段(),下面的 if 自然不产出。 */
$evFrom = (string)($ev['from_place'] ?? '');
$evTo = (string)($ev['to_place'] ?? '');
if ($evFrom !== '') { $rows[] = ['出发地', $evFrom]; }
if ($evTo !== '') { $rows[] = ['目的地', $evTo]; }
/* 🔴 v44(用户 2026-10-12 第 3 条):「"状态确定"这个不要了,把"状态确定"换成地点。
当然,如果没有地点,这一行就不要显示了。」
⇒ **删掉「状态」那一行**(地点上一行已经加了,"换成地点"就是把状态让位给地点)。