v75 旅程重构:列表页 + 详情整页,卡片改「图在上、信息在下」
用户 2026-10-21:
「每一个旅程里面的行程才是重头戏……点击一个旅程,应该进入到一个新的界面,
在里面列出所有的行程,就跟网页版的一样。
这个旅程的图片是比较重要的……图片在正上方,就是充满整个的这个列表的宽度。
然后呢把这个标题还有其他的一些信息放在下面。如果是图片放左边,信息放右边的话,
它总是被挤占,显示不全。……想看其他的这个旅程的话,直接往下滑就可以了。」
- 新建 `pages/trips/FbTripDetailPage.ets`(照 `trips/show.php`):题图 16:9 占满整宽、
五项统计、行程按 计划/实际/未成行 三组(空组不显示)、页头两行动作区
(+计划=蓝 / +实际=绿 / 编辑=黄 / 删除=红 / 设置)
- `FbTripsPage` 846→573 行:删掉就地展开全套,`tripCard` 改「题图在上、信息全在下面」
卡尾「看行程」自己带 onClick,整卡也可点
- `Types.ets` `FbTripNode` 8→18 字段 + 四个新类型;`FbTripRepo` 新增
`fetchTripDetail` / `fetchTripSummary` 与四个解析辅助
- 修真 bug:`parseNodes` 读 `expense_cent`,服务端写的是 `spent_cents`
⇒ 每段「💰 这一段花了」从来没显示过
- `Store.ets` 新增 `@Trace tripDetailId` 与 `leaveTo(parentKey)`:
删完整趟回列表要走它(内部 `applyModule` 会 `resetScroll`),
直接赋 `activeModule` 会让回列表后轻轻一滑就收起悬浮栏
- 接线:`Index` 分发 / `TopBar` 标题「旅程」/ `Modules.fbModuleColor` 归到 trips 色
- `FbTripNodeSheet` 新增 `@Param startStage` 预选阶段(选择器保留,点错还能改)
守卫 931/0,反向验证 164/0,编译 BUILD SUCCESSFUL,真机待设备连上后跑 _fb_v75_verify.py
This commit is contained in:
@@ -62,6 +62,17 @@ export struct FbTripNodeSheet {
|
||||
@Param tripId: number = 0;
|
||||
/** 模块主题色 */
|
||||
@Param accent: string = '#3F7D5A';
|
||||
/**
|
||||
* 打开时预选的阶段:`'plan'` / `'actual'`。
|
||||
*
|
||||
* 🔴 v75(用户 2026-10-21):详情页右上角是**两颗**按钮
|
||||
* 「+ 计划行程(蓝)」「+ 实际行程(绿)」(这是 v41 定下的硬要求),
|
||||
* 点哪颗就该落在哪个阶段 —— 原来只有一颗「加一段行程」,
|
||||
* 进来后阶段恒为「计划」,用户点"实际行程"还是要手动改一次。
|
||||
* ⚠️ 浮层里那个「阶段」选择器**保留**:用户点错了还能改,
|
||||
* 不能因为"入口已经指定了"就把选择器藏掉(那是把选择权拿走)。
|
||||
*/
|
||||
@Param startStage: string = 'plan';
|
||||
|
||||
@Event onClose: () => void = (): void => {};
|
||||
/** 加成功后父页面重新拉节点 */
|
||||
@@ -84,6 +95,8 @@ export struct FbTripNodeSheet {
|
||||
aboutToAppear(): void {
|
||||
// 默认今天(多数场景是"记刚刚发生的"或"排今天剩下的")
|
||||
this.date = fbIsoOf(new Date());
|
||||
/* 入口指定的阶段(详情页两颗按钮)—— 只认这两个值,别的一律按计划 */
|
||||
this.category = this.startStage === 'actual' ? 'actual' : 'plan';
|
||||
}
|
||||
|
||||
build() {
|
||||
|
||||
@@ -294,6 +294,11 @@ export struct FbTopBar {
|
||||
if (k === '__account') {
|
||||
return '个人设置';
|
||||
}
|
||||
/* 🔴 v75:旅程详情页顶栏还写「旅程」—— 它是旅程模块的**下一层**,
|
||||
不是另一个模块。写成"旅程详情"会让标题在列表↔详情之间跳变。 */
|
||||
if (k === '__trip_detail') {
|
||||
return '旅程';
|
||||
}
|
||||
const m = fbModuleOf(k);
|
||||
return m !== undefined ? m.name : '家书';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user