用户 2026-11-05 在鸿蒙端编辑行程时提出四个问题(网页端与鸿蒙端都要改)。
「编辑行程里面,那个框好像在整个界面上并不居中:上面距离手机顶部很远,但下面已经贴着边了。」
原因:FbTripNodeSheet 的卡片高度写死 88%,且 Stack(alignContent: Alignment.Bottom) 导致内容贴底。
FbTripNodeSheet
88%
Stack(alignContent: Alignment.Bottom)
改法:高度改为按内容自适应(constraintSize({ maxHeight: '86%' })),用 Alignment.Bottom 保留底部弹出感,但上下留等量安全边距。
constraintSize({ maxHeight: '86%' })
Alignment.Bottom
「这个类型还是划不动,左右划不动,选不了。」
原因:类型是 5 个 chip 平铺在 Row 里。用户手势落在 Scroll 外层时,Row 宽度超出但不可滚 ⇒ 第 5 个(「其他」)被裁掉且无法触及。
Row
Scroll
改法:类型改回 Scroll(Horizontal),但分两行布局使 5 项一屏可见,同时保留可滑能力(项目里"能滑"和"自适应"不冲突)。
Scroll(Horizontal)
「现在无论是网页端还是鸿蒙端,都有一个状态:计划中、进行中、已完成、已取消。这个里面不要让它手动去动。 只要是添加的计划行程,它的状态就是计划中。在计划行程里面点击开始执行,它的状态自然变成进行中。 如果这个事情已经做完了,点了已完成,它自然就变成已完成的状态。如果它没去,取消了,那就自然变成已取消。 所以编辑这个地方不要出现计划中、进行中、已完成、已取消。 还有,实际行程、当前状态实际行程,这个地方也不要出现,因为这是没有意义的。」
规则:状态是动作驱动的,不是表单字段。
planned
ongoing
done
cancelled
改法:
NODE_STATUS_OPTS
stageWord()
setTaskStatus
⚠️ 服务端 Trip::NODE_STATUS 保留(数据库还在用),只是界面不再暴露手动选择。
Trip::NODE_STATUS
「鸿蒙端的编辑按钮,不论是颜色还是样式,都应该尽可能和网页端、鸿蒙端保持一致。 比如编辑和删除按钮,现在就是两个字放在那儿,字号小,另外一个也不是特别醒目。 它应该像网页端一样,做成两个按钮,颜色也尽可能保持一致。 我看别人设计下面那个悬浮条的时候,当选中其中一个按钮之后,它除了那个图标和文字颜色发生变化之外, 它还给它加了一个那种椭圆的那种框那种背景,灰色的。这样的话会更能够清晰的表示出来, 现在正在被选中的是哪一个功能。我们也这样试一试。」
#B8862B
#C0533F
FbColors.inputBg
radiusPill
与 #34(日程时间选择器 bug)、#33(地址联想)都无关:本单是「行程编辑」浮层的布局与业务规则问题,属于新做的行程编辑功能(今天才补上 PATCH 接口)的后续调整
No dependencies set.
The note is not visible to the blocked user.
行程编辑浮层:布局居中、类型可横向滚动、去掉手动状态/阶段、编辑按钮改胶囊
背景
用户 2026-11-05 在鸿蒙端编辑行程时提出四个问题(网页端与鸿蒙端都要改)。
一、浮层垂直位置不居中
原因:
FbTripNodeSheet的卡片高度写死88%,且Stack(alignContent: Alignment.Bottom)导致内容贴底。改法:高度改为按内容自适应(
constraintSize({ maxHeight: '86%' })),用Alignment.Bottom保留底部弹出感,但上下留等量安全边距。二、类型无法左右滑动选择
原因:类型是 5 个 chip 平铺在
Row里。用户手势落在Scroll外层时,Row宽度超出但不可滚 ⇒ 第 5 个(「其他」)被裁掉且无法触及。改法:类型改回
Scroll(Horizontal),但分两行布局使 5 项一屏可见,同时保留可滑能力(项目里"能滑"和"自适应"不冲突)。三、去手动状态与阶段(核心业务规则变更)
规则:状态是动作驱动的,不是表单字段。
plannedplannedongoingdonecancelled改法:
NODE_STATUS_OPTS那组 chips)stageWord())setTaskStatus式接口,需新增节点状态接口)⚠️ 服务端
Trip::NODE_STATUS保留(数据库还在用),只是界面不再暴露手动选择。四、编辑/删除按钮改成胶囊按钮,与网页端一致
改法:
#B8862B,删除 = 砖红#C0533F)FbColors.inputBg+radiusPill),视觉上明确"正在操作哪一个"验收
planned为什么单独建单
与 #34(日程时间选择器 bug)、#33(地址联想)都无关:本单是「行程编辑」浮层的布局与业务规则问题,属于新做的行程编辑功能(今天才补上 PATCH 接口)的后续调整