后台三处列表/详情:标题顶头独占一行,标签下移(与前台统一)

用户:「管理后台的待审核和全部问题那个列表里面也是一样的。
      标题应该顶头,然后在标题下面另起一行,写上来自于哪一个软件、
      它的状态是什么、它是什么分类。点到一个具体的反馈里面也是一样的,
      标题顶头,然后把同步日历、bug、待处理往下一行。管理后台也是全部按照这种方式去处理。」

改三处:
1. fb_admin_pending_row(待审核列表)
   prow-top(标签在前+标题)→ prow-head(标题独占一行)+ prow-tags(软件/分类/状态)
2. 全部问题列表
   item-top → item-head + item-tags
   🔴 同时补上软件名(fb_software_chip)—— 后台是跨软件视图,
      前台某个软件内部不需要显示软件名(满页同一个),后台必须显示。
3. 后台详情页头部
   item-top → item-head + item-tags,标题字号 19px 略大于列表

样式新增 .prow-head / .prow-tags(.prow-top 保留给操作日志,
日志条目只有「动作+编号」,单行反而合适)。

验证(真实渲染 + 浏览器测量,不登录后台、不动数据):
  待审核行  标题 top=87 left=222 / 标签 top=119 left=222 → 标签在下方、左对齐 0px 偏差
  全部问题  标题 top=318 left=223 / 标签 top=351 left=223 → 同上
  详情头    标题 top=541 left=228 / 标签 top=575 left=228 → 同上
  另外静态检查:三处的 head 段内均无状态标签,tags 段内均含软件/分类/状态。
  前台 5 个路由 200,未受影响。
This commit is contained in:
2026-11-03 18:58:04 +08:00
parent 82f4fa3c49
commit dcf510ef28
4 changed files with 40 additions and 16 deletions
+32 -13
View File
@@ -754,11 +754,20 @@ fb_layout_head('管理后台', ['robots' => 'noindex,nofollow']);
<div class="list">
<?php foreach ($rows as $t): ?>
<div class="item" style="cursor:default">
<div class="item-top">
<span class="badge cat"><?php echo e(fb_category_label($t['category'])); ?></span>
<span class="badge st st-<?php echo e($t['status']); ?>"><?php echo e(fb_status_label($t['status'])); ?></span>
<?php
/* 标题顶头独占一行,标签(软件 / 分类 / 状态)另起一行。
* 后台是跨软件视图,所以这里必须带软件名 —— 前台某个软件内部
* 不需要显示软件名(满页都是同一个),后台需要。 */
$aSw = !empty($t['software_id']) ? fb_software((int)$t['software_id']) : null;
?>
<div class="item-head">
<a class="item-title" href="admin.php?tab=thread&amp;id=<?php echo (int)$t['id']; ?>"><?php echo e($t['title']); ?></a>
<span class="item-id">#<?php echo (int)$t['id']; ?></span>
</div>
<div class="item-tags">
<?php if ($aSw): ?><?php echo fb_software_chip($aSw); ?><?php endif; ?>
<span class="badge cat"><?php echo e(fb_category_label($t['category'])); ?></span>
<span class="badge st st-<?php echo e($t['status']); ?>"><?php echo e(fb_status_label($t['status'])); ?></span>
<?php if ((int)$t['visible'] !== 1): ?><span class="badge st st-closed">未公开</span><?php endif; ?>
</div>
<p class="item-ex"><?php echo e(fb_excerpt((string)$t['body'], 120)); ?></p>
@@ -797,16 +806,21 @@ fb_layout_head('管理后台', ['robots' => 'noindex,nofollow']);
<div class="crumbs"><a href="admin.php?tab=all">← 返回全部问题</a></div>
<div class="card-form" style="margin:0 0 16px">
<div class="item-top">
<?php
$dSw = !empty($t['software_id']) ? fb_software((int)$t['software_id']) : null;
$dCat = !empty($t['category_id']) ? fb_category((int)$t['category_id']) : null;
?>
<?php
$dSw = !empty($t['software_id']) ? fb_software((int)$t['software_id']) : null;
$dCat = !empty($t['category_id']) ? fb_category((int)$t['category_id']) : null;
?>
<?php /* 标题顶头独占一行,标签另起一行 —— 与列表页、前台详情页统一。
用户 2026-11-03:「点到一个具体的反馈里面也是一样的,标题顶头,
然后把同步日历、bug、待处理往下一行,标签写到下面去。」 */ ?>
<div class="item-head">
<span class="item-title" style="font-size:19px"><?php echo e($t['title']); ?></span>
<span class="item-id">#<?php echo (int)$t['id']; ?></span>
</div>
<div class="item-tags">
<?php if ($dSw): ?><?php echo fb_software_chip($dSw); ?><?php endif; ?>
<?php if ($dCat): ?><span class="badge cat"><?php echo e((string)$dCat['name']); ?></span><?php endif; ?>
<span class="badge st st-<?php echo e($t['status']); ?>"><?php echo e(fb_status_label($t['status'])); ?></span>
<span class="item-title"><?php echo e($t['title']); ?></span>
<span class="item-id">#<?php echo (int)$t['id']; ?></span>
</div>
<div class="item-ex" style="white-space:normal"><?php echo nl2br(e($t['body'])); ?></div>
<?php if (!empty($atts['main'])) { echo fb_attach_render($atts['main']); } ?>
@@ -1450,14 +1464,19 @@ function fb_admin_pending_row(array $t) {
<div class="prow">
<div class="prow-main">
<?php $cSw = !empty($t['software_id']) ? fb_software((int)$t['software_id']) : null; ?>
<div class="prow-top">
<?php /* 标题顶头独占一行,标签(软件/分类/状态)另起一行放下面。
用户 2026-11-03:后台待审核、全部问题、详情页全都按这个方式处理 ——
标签放在标题前面会把标题挤到右边。 */ ?>
<div class="prow-head">
<a class="prow-title" href="<?php echo e($url); ?>"><?php echo e($t['title']); ?></a>
<span class="item-id" title="问题编号">#<?php echo (int)$t['id']; ?></span>
</div>
<div class="prow-tags">
<?php if ($cSw): ?><?php echo fb_software_chip($cSw); ?><?php endif; ?>
<?php if (!empty($t['category_id'])): ?>
<span class="badge cat"><?php echo e(fb_category_label((int)$t['category_id'])); ?></span>
<?php endif; ?>
<span class="badge st st-<?php echo e($t['status']); ?>"><?php echo e(fb_status_label($t['status'])); ?></span>
<a class="prow-title" href="<?php echo e($url); ?>"><?php echo e($t['title']); ?></a>
<span class="item-id" title="问题编号">#<?php echo (int)$t['id']; ?></span>
</div>
<p class="prow-ex"><?php echo e(fb_excerpt((string)$t['body'], 120)); ?></p>
<div class="prow-meta">