「编辑行程那个类型不对,这个类型和网页端不一样啊,网页端比这个多得多呀, 我们这上面的类型怎么这么少呢?」
实测:数据库 node_types 表里 9 种:
node_types
🎡 游玩 🍜 用餐 🚗 赶路 🏨 住宿 📌 其他 😴 休息 ⚠️ 突发 🛍️ 购物 🏠 拜访亲友
端上只有 5 种(游玩/用餐/赶路/住宿/其他)。
根因:端上硬编码,照抄了服务端常量 Trip::NODE_TYPES —— 但那个只是兜底默认值,真实数据在 node_types 表里、用户可自行增删(设置 → 节点类型)。
Trip::NODE_TYPES
更根本的问题:API 从来没暴露过节点类型(ApiHandler.php 里搜 node_types = 0 次)。 端上除了硬编码没有别的选择。
ApiHandler.php
「在右上角「设置 → 节点类型」里可以增删自定义。这个提示去掉。 结束时间可不填;填到几点几分,详情页就显示到几点几分。这个提示也去掉。 座位这类同团不同座的信息就不记了。这个提示也去掉。」
修法:node_form.php 里三个 .tip 全删。
node_form.php
.tip
「网页端通过高德地图能拿到详细地址。不知道你这个鸿蒙端有没有拿到详细地址。 同时,鸿蒙端如果添加一个行程,出发地和目的地地址是不是也能通过高德地图API 拿到详细地址?这个需要你解决一下。」
实情:FbGeoTip 本来就带 detail / address / lng / lat(高德返回就有), 但 FbAddrInput.onValue 只把「地名 · 详细地址」拼成一个字符串传出去:
FbGeoTip
detail
address
lng
lat
FbAddrInput.onValue
private valueOfTip(t: FbGeoTip): string { return nm + ' · ' + dt; // ← 拼成串 } this.onValue(v); // ← 只给一个 string
⇒ 父组件拿到一坨拼好的文字,坐标丢了、详细地址混在同一个字段里, 没法分别写进 from_place / from_addr / from_lng / from_lat。
from_place
from_addr
from_lng
from_lat
修法:加结构化回调 onPick(tip),把整条 FbGeoTip 原样交出。 保留 onValue 兼容已有 6 处调用方。
onPick(tip)
onValue
GET /api/v1/trips/<id>/node-types
FbTripRepo.ets
fetchNodeTypes()
FbNodeTypeItem
FbTripNodeSheet.ets
FbAddrInput.ets
@Event onPick: (t: FbGeoTip) => void
onPick
fromLng/fromLat/toLng/toLat
Types.ets
FbTripNode
fromAddr/toAddr/fromLng/fromLat/toLng/toLat
FbTripNode 现在有坐标字段,但端上详情页的导航链接还没接上 (需要改详情页的地名渲染,本次未做)。坐标已存进数据库, 网页端可以正常用;端上等下一轮补。
#50 修的是@Builder刷新导致类型点了没反应,本单是类型数据源本身错了(硬编码5种 vs 服务端9种)。#48/#49 与本单无关。
No dependencies set.
The note is not visible to the blocked user.
类型只有 5 种(应动态加载 9 种)、去掉三处提示、端上地址拿到高德详细地址与坐标
用户反馈(2026-11-05)
① 类型少了 4 种
实测:数据库
node_types表里 9 种:端上只有 5 种(游玩/用餐/赶路/住宿/其他)。
根因:端上硬编码,照抄了服务端常量
Trip::NODE_TYPES——但那个只是兜底默认值,真实数据在
node_types表里、用户可自行增删(设置 → 节点类型)。更根本的问题:API 从来没暴露过节点类型(
ApiHandler.php里搜node_types= 0 次)。端上除了硬编码没有别的选择。
② 去掉三处提示
修法:
node_form.php里三个.tip全删。③ 端上地址没拿到详细地址
实情:
FbGeoTip本来就带detail/address/lng/lat(高德返回就有),但
FbAddrInput.onValue只把「地名 · 详细地址」拼成一个字符串传出去:⇒ 父组件拿到一坨拼好的文字,坐标丢了、详细地址混在同一个字段里,
没法分别写进
from_place/from_addr/from_lng/from_lat。修法:加结构化回调
onPick(tip),把整条FbGeoTip原样交出。保留
onValue兼容已有 6 处调用方。改动清单
ApiHandler.phpGET /api/v1/trips/<id>/node-typesFbTripRepo.etsfetchNodeTypes()+FbNodeTypeItemFbTripNodeSheet.etsFbAddrInput.ets@Event onPick: (t: FbGeoTip) => voidFbTripNodeSheet.etsonPick,存地名+详细地址+坐标FbTripRepo.etsfromLng/fromLat/toLng/toLat,add/update 传坐标Types.etsFbTripNode加fromAddr/toAddr/fromLng/fromLat/toLng/toLatnode_form.php.tip验收
from_addr存的是高德详细地址(不是地名)from_lng/from_lat有值已知限制
FbTripNode现在有坐标字段,但端上详情页的导航链接还没接上(需要改详情页的地名渲染,本次未做)。坐标已存进数据库,
网页端可以正常用;端上等下一轮补。
为什么单独建单
#50 修的是@Builder刷新导致类型点了没反应,本单是类型数据源本身错了(硬编码5种 vs 服务端9种)。#48/#49 与本单无关。