` 内联): * TripLog 的节点表单有十几组字段(类型/时间/出行方式/交通细节/起终点/内容/ * 参与人/照片/状态),内联在主页面里会把整个详情页撑得极长; * 更要命的是**编辑**时每个行程内联一份表单 → 页面上 N 份表单互相干扰 * (元素 id 撞车、密码管理器逐个扫描变卡)。这正是用户说的"把页面撑破"。 * * 字段顺序照 TripLog 的 nodes/form.php: * 类型 → 起止时间 → 标题 → 出行方式(+车辆+交通细节)→ 起点 → 终点 * → 内容 → 参与人 → 照片 →(编辑时)状态与花销。 * * 变量(require 前设好): * $ev 所属旅程(events 行,带 title) * $n 被编辑的行程;null = 新增 * $stage 'plan'|'actual'(新增时由按钮决定;编辑时取行程自己的) * $people 名册 * $types 节点类型(NodeType::all) * $vehicles 可挑的车(Vehicle::pickable,含"来自财务"的只读候选) * $expenses 已有花销(编辑时) * $errors 校验错误 */ $isEdit = !empty($n); $canWrite = \App\Auth::canWrite(); $fid = (int)\App\Auth::familyId(); $people = $people ?? []; $types = $types ?? []; $vehicles = $vehicles ?? []; $expenses = $expenses ?? []; $errors = $errors ?? []; $stage = (string)($stage ?? ($n['stage'] ?? 'plan')); if (!isset(\App\Trip::NODE_STAGES[$stage])) { $stage = 'plan'; } $curType = (string)($n['node_type'] ?? ''); $curMode = (string)($n['travel_mode'] ?? ''); $picked = array_map('intval', array_column((array)($n['members'] ?? []), 'id')); // 参与人角色:person_id => role $roles = []; foreach ((array)($n['members'] ?? []) as $m) { if (!empty($m['role_tag'])) { $roles[(int)$m['id']] = (string)$m['role_tag']; } } $back = url('trips/show', ['id' => (int)$ev['id']]); ?>

·
返回旅程
在右上角「设置 → 节点类型」里可以增删自定义。
结束时间可不填。
旅程页上的"去了几个城市"就是按这里统计的。

名册里还没有人。

给参与的人标个角色(可选)
不填也没关系;填了会显示在那个人名字旁边。
可多选;图片、视频都会存到这段行程下面。
取消

花销( 笔) 这一段花了多少钱;旅程页的"总花销"是各段之和

还没记花销。

合计

)。 裸下拉的判据在部署断言里,写完空跑会直接红。 */ ?>