去掉软件标签的描边;修「全部问题」列表分类标签渲染成空

两个问题:

一、两个标签中间那道「线」
  不是 CSS 分隔符 —— 是 .badge.sw(软件徽章)带 border:1px solid var(--swc-line),
  而 .badge.cat / .badge.st 都没有边框。并排显示时那道描边看起来
  就像凭空插了一条分隔线。去掉边框,三个标签统一为无边框胶囊。

二、反馈类型(Bug / 功能建议)在后台「全部问题」列表里不显示
  🔴 根因:fb_category_label() 参数是**数字 id**,内部会 (int) 化。
     而全部问题列表传的是 $t["category"](老 slug 字段,值为 bug),
     (int)bug === 0 → 函数返回空串 → 渲染出一个**空的** badge:
     标签框在、里面什么都没有,看起来就像「类型没了」。
  修法:
    - 新增 fb_category_label_by_slug($softwareId, $slug) 给老数据兜底
      (slug 在不同软件下可能重名,必须带 software_id)
    - 全部问题列表改用 category_id 优先、slug 兜底
    - 前台列表同样处理,并且**取不到名字就不渲染这个标签**,
      绝不再输出空胶囊
    - 在 fb_category_label() 的注释里写明「必须传数字 id」,
      避免下次再踩

验证:
  函数对照跑通:#4 category_id=6 → Bug;#5 category_id=7 → 功能建议;
  旧写法 fb_category_label("bug") → (空),确认这就是根因。
  浏览器实测详情页三个标签 border-top-width 全部 0px / style none,
  圆角都是 999px,描边已消除。
  前台列表两个条目分类标签分别渲染出 Bug / 功能建议,不再是空。
  7 个路由全 200。
This commit is contained in:
2026-11-03 20:50:00 +08:00
parent dcf510ef28
commit 974dd52367
5 changed files with 48 additions and 5 deletions
+11 -1
View File
@@ -766,7 +766,17 @@ fb_layout_head('管理后台', ['robots' => 'noindex,nofollow']);
</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>
<?php
/* 🔴 这里必须用 category_id(数字),不能用 $t['category'](老 slug 字段)。
* fb_category_label() 内部会把参数 (int) 化,传 'bug' 会变成 0 → 返回空串,
* 结果就是渲染出一个**空的** <span class="badge cat"></span>。
* 用户 2026-11-03 看到的就是「反馈类型没了」。
* 优先 category_id,没有才回退 slug(老数据兼容)。 */
$aCat = !empty($t['category_id'])
? fb_category_label((int)$t['category_id'])
: fb_category_label_by_slug((int)$t['software_id'], (string)$t['category']);
?>
<?php if ($aCat !== ''): ?><span class="badge cat"><?php echo e($aCat); ?></span><?php endif; ?>
<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>