v41 第 41 批:流水线提速 + 12 项界面/交互开发 + DAV 彻底修复
DAV(用户「务必彻底解决」): - 真根因是 home-set 层级错:CalDav::HOME_PATH 原为 /dav/calendars/、 CardDav 原为 /carddav/addressbooks/,而日历本/通讯录的 href 在 /dav/N.ics/ 与 /carddav/N.vcf/ —— home-set 下面一本都没有。 Thunderbird 按 home-set 前缀认成员,于是「找不到日历本 / 找不到联系人」。 改为 /dav/ 与 /carddav/(所有既有 URL 一字不变,老配置不作废)。 - 又发现并修掉 Depth:0 违反 RFC 4918:原实现无论 depth 都列出全部子集合, 且第一条 response 是日历本(不含 current-user-principal)。改为按 depth 分流, Depth:0 只回资源自身、Depth:1 才列出子集合。 界面与交互: - 观影:新建影院弹窗层级修正 + 详细地址;照片左右按钮悬停不再位移; 弹框底栏改「确定 / 取消」。 - 旅程:新建旅程改弹窗并按观影式排版;详情页四个动作按钮按用户指定顺序与配色; 编辑与新增行程弹窗化(单容器 + AJAX);行程时间控件改 AntD(精确到分); 参与人默认带上自己;车次号/车牌号紧跟交通方式词。 - 资源:新建/编辑改弹窗 + 观影式排版 + 新建时即定共享人。 - 纪念日:新建改弹框 + 观影式排版。 验证: - e2e 1510/0;v41 十二项真机 48/0;DAV 反向验证 8/0; 部署断言空跑 337/0;模板 div 深度三形态穷举 33 组全配平。 - 线上 DAV 终验(--resolve 真实入口 + 真 DAV 口令)12/0; 线上确认 Depth:0 恰好 1 个 response。
This commit is contained in:
@@ -658,6 +658,31 @@ final class Trip
|
||||
$st->execute([$eventId]);
|
||||
$rows = $st->fetchAll();
|
||||
$ids = array_map('intval', array_column($rows, 'id'));
|
||||
/* 🔴 v41(用户 2026-10-10 第 8 条):行程行要把「自驾的车牌号」直接跟在
|
||||
「自驾」两个字后面 ⇒ 这里一次性把用到的车辆**车牌**挂上去。
|
||||
⚠️ 用一条 IN 查询而不是逐行 JOIN:一张"十几段"的行程单逐行查会把
|
||||
N 次往返变成 N 次;车辆是低频引用(多数段没有车),
|
||||
IN 一次就够。
|
||||
⚠️ 字段名 `vehicle_plate` 与 `Vehicle::label` 的取向不同:
|
||||
label 是给"选车下拉"用的(车牌 + 名称,方便辨认),
|
||||
详情页要的是**车牌号本身**(用户原话就是"车牌号")。 */
|
||||
$vehIds = array_values(array_filter(array_map(
|
||||
static fn($n) => (int)($n['vehicle_id'] ?? 0), $rows)));
|
||||
if ($vehIds) {
|
||||
$vin = implode(',', array_fill(0, count(array_unique($vehIds)), '?'));
|
||||
$sv = Database::get()->prepare(
|
||||
"SELECT id, plate FROM vehicles WHERE id IN ($vin)"
|
||||
);
|
||||
$sv->execute(array_values(array_unique($vehIds)));
|
||||
$plates = [];
|
||||
foreach ($sv->fetchAll() as $v) {
|
||||
$plates[(int)$v['id']] = (string)$v['plate'];
|
||||
}
|
||||
foreach ($rows as &$nv) {
|
||||
$nv['vehicle_plate'] = $plates[(int)($nv['vehicle_id'] ?? 0)] ?? '';
|
||||
}
|
||||
unset($nv);
|
||||
}
|
||||
// 一次性把全部节点的附件取出来(逐节点查会让"十几段的旅程"变成几十次查询)
|
||||
$attach = [];
|
||||
foreach ($ids as $nid) {
|
||||
|
||||
Reference in New Issue
Block a user