地图与正文同宽 / 详情页封面改列表行样式 / 封面拖拽上传(批 21)

① 带地图的页面(首页旅行地图、详情页行程地图)原本铺满整个视口
  (批 18 的负 margin 出血),用户反馈「上面正文固定宽、下面地图铺满屏」
  看着奇怪 → 改回与正文版心同宽,bleed() 已删、CSS 去边框覆盖已删。

② 活动详情页顶部整幅 16:9 大封面太大 → 改用活动列表同款「封面行」
  (.act-row-static:小封面 + 参与人 + 统计),数据复用 collectStats
  同一聚合口径;.activity-cover 样式删除。

③ 创建/编辑活动封面支持直接把图片拖进上传区:drop→DataTransfer 塞给
  原有 file input 并触发 change,类型/大小校验与裁剪流程原样复用;
  拖入悬停给高亮反馈。

验证:本地全链(含 _map12/_map16 同宽与封面行断言、5 档视口)全绿;
部署哨兵同步改向(批 17/18 锚定旧实现的断言全部反向或改口径)。
This commit is contained in:
2026-09-24 22:13:29 +08:00
parent 08f491c7ab
commit 331fadfb48
5 changed files with 108 additions and 71 deletions
+5
View File
@@ -348,12 +348,17 @@ class ActivityController
array_column($realityNodes, 'id')
));
// 批 21:详情页顶部改用列表同款「封面行」(小封面 + 参与人/统计),
// 复用与列表同一份聚合口径(collectStats),不另写一套查询
$actStats = $this->collectStats([$id]);
view('activities/show', [
'activity' => $activity,
'planNodes' => $planNodes,
'realityNodes' => $realityNodes,
'executedPlanIds' => $executedPlanIds,
'nodeMembers' => $nodeMembers,
'actStats' => $actStats,
// 路线地图:每个执行节点第一张图片附件 id(圆形标记用),一条 GROUP BY 防止 N+1
'nodeFirstImage' => Attachments::firstImageIdsForNodes(array_column($realityNodes, 'id')),
// 批 19:路线地图标记图标按出行方式映射(回退节点类型图标)