「鸿蒙端首页的行程,也就是日程里面,如果有行程添加到日程里,上边会显示一个目的地图标。 这个图标应该来自里面具体的交通工具,也就是说,如果是火车,就应该显示火车。」 「后面这个对号是什么意思?表示它是一个实际行程吗?我感觉没必要,直接把这个对号去掉。」 「如果行程里面有地址,也就是有出发地和目的地,应该像行程里显示的那样, 把它显示在下面,这样一点就可以导航。」
「鸿蒙端首页的行程,也就是日程里面,如果有行程添加到日程里,上边会显示一个目的地图标。 这个图标应该来自里面具体的交通工具,也就是说,如果是火车,就应该显示火车。」
「后面这个对号是什么意思?表示它是一个实际行程吗?我感觉没必要,直接把这个对号去掉。」
「如果行程里面有地址,也就是有出发地和目的地,应该像行程里显示的那样, 把它显示在下面,这样一点就可以导航。」
现状(app/Calendar.php 第 1667 行左右):
app/Calendar.php
'title' => Trip::typeIcon((string)$n['node_type']) . ...
Trip::typeIcon('move') 恒为 🚗 —— 「赶路」永远显示汽车,哪怕实际坐的是火车。
Trip::typeIcon('move')
改法:改用 Trip::leadIcon($node_type, $travel_mode, $family_id)。 这个方法是 2026-11-05 早些时候为旅行详情页做的(行程卡左侧图标), 优先级是「出行方式 > 节点类型」,与用户要的一致。
Trip::leadIcon($node_type, $travel_mode, $family_id)
⚠️ SQL 要补 n.travel_mode 字段。
n.travel_mode
((string)($n['node_stage'] ?? 'plan') === 'actual' ? ' ✓ ' : ' ')
用户明确不要。直接删掉这段三元表达式,标题就是纯标题。
SQL 现在只查了 node_type/status/stage/title/starts_at/ends_at, 完全没有 from_place / to_place。
node_type/status/stage/title/starts_at/ends_at
要补:
n.from_place
n.to_place
n.from_lng
n.from_lat
n.to_lng
n.to_lat
输出字段里加:
from_place
to_place
from_lng
from_lat
to_lng
to_lat
鸿蒙端 FbCalEvent 要加对应字段,并在渲染时分两行画在标题下面。 网页端 日历视图的条目太小,只在详情浮层的 rows 里补「出发地 / 目的地」两行即可。
FbCalEvent
FbDayEventPanel
FbDayTimeline
fb_entry_json()
与 #58/#60 都无关:那两张是悬浮栏圆角和首页标题配色。本单是 Calendar::window() 里 trip_nodes 派生段的标题拼装与字段缺失,属日历模块的派生逻辑。
用户反馈原话:
「导航的,点进去导航之后,为什么目的地地址前面有个问号」
上一轮的 navTargetOf() 拼的是:
navTargetOf()
return lat + ',' + lng + '?' + place; // ❌
那个 ? 是照抄 geo:lat,lng?q=地名 这个 URI 的写法。 但这里拼出来的字符串不是 URI,它是交给 fbOpenNavigation() 的普通文本。
?
geo:lat,lng?q=地名
fbOpenNavigation()
FbNav.parseGeoOf() 的实际动作是:
FbNav.parseGeoOf()
数字,数字
clean
所以:
输入 36.168977,120.375693?青岛北站 剪掉坐标后剩 ?青岛北站 ← 问号留下了
这个 clean 直接进了高德的 dname 参数,于是目的地标题显示成「?青岛北站」。
dname
改成地名在前、空格、坐标在后:
return place + ' ' + lat + ',' + lng; // ✅
输入 青岛北站 36.168977,120.375693 剪掉坐标后剩 青岛北站 ← 干净
parseGeoOf
=== 旧写法(带问号)=== 输入: 36.168977,120.375693?青岛北站 坐标: 36.168977 120.375693 地名(clean):[?青岛北站] ← ❌ === 新写法 === 输入: 青岛北站 36.168977,120.375693 坐标: 36.168977 120.375693 地名(clean):[青岛北站] ← ✅ === 无坐标 === 输入: 青岛北站 ok: false(走系统地理编码,正确)
FbEventSheet.ets
FbDayEventPanel.ets
第二处是 #67 留下的同一类 bug —— 当时拼的也是 lat,lng?地名, 只是那次没人点导航所以没暴露。这次一并修掉。
lat,lng?地名
No dependencies set.
The note is not visible to the blocked user.
首页/日程里的行程条目:图标按出行方式、去掉 ✓、显示出发地与目的地
用户(2026-11-05)
三件事
① 图标要用出行方式,不是节点类型
现状(
app/Calendar.php第 1667 行左右):Trip::typeIcon('move')恒为 🚗 —— 「赶路」永远显示汽车,哪怕实际坐的是火车。改法:改用
Trip::leadIcon($node_type, $travel_mode, $family_id)。这个方法是 2026-11-05 早些时候为旅行详情页做的(行程卡左侧图标),
优先级是「出行方式 > 节点类型」,与用户要的一致。
⚠️ SQL 要补
n.travel_mode字段。② 去掉 ✓
用户明确不要。直接删掉这段三元表达式,标题就是纯标题。
③ 显示出发地 → 目的地,且可点导航
SQL 现在只查了
node_type/status/stage/title/starts_at/ends_at,完全没有 from_place / to_place。
要补:
n.from_place,n.to_placen.from_lng,n.from_lat,n.to_lng,n.to_lat(导航用)输出字段里加:
from_place/to_place:显示用from_lng/from_lat/to_lng/to_lat:点击导航用鸿蒙端
FbCalEvent要加对应字段,并在渲染时分两行画在标题下面。网页端 日历视图的条目太小,只在详情浮层的 rows 里补「出发地 / 目的地」两行即可。
范围
app/Calendar.php的 trip 派生段FbCalEvent加字段 +FbDayEventPanel/FbDayTimeline渲染fb_entry_json()的 rows 补两行验收
为什么单独建单
与 #58/#60 都无关:那两张是悬浮栏圆角和首页标题配色。本单是 Calendar::window() 里 trip_nodes 派生段的标题拼装与字段缺失,属日历模块的派生逻辑。
二次反馈修复(2026-11-05 17:21)
用户反馈原话:
根因:我把 URI 语法用在了普通文本上
上一轮的
navTargetOf()拼的是:那个
?是照抄geo:lat,lng?q=地名这个 URI 的写法。但这里拼出来的字符串不是 URI,它是交给
fbOpenNavigation()的普通文本。FbNav.parseGeoOf()的实际动作是:数字,数字当坐标clean= 把坐标从原文里剪掉之后剩下的文字,用作显示地名所以:
这个
clean直接进了高德的dname参数,于是目的地标题显示成「?青岛北站」。修法
改成地名在前、空格、坐标在后:
实测验证(复刻
parseGeoOf逻辑跑)两处都改了
FbEventSheet.etsnavTargetOf()(#69 新增的)FbDayEventPanel.ets第二处是 #67 留下的同一类 bug —— 当时拼的也是
lat,lng?地名,只是那次没人点导航所以没暴露。这次一并修掉。