标题颜色/看板/截止/负责人/备注/协作人/留言头像 全部修正 (#77)

用户 2026-11-05:「还是不对,标题的颜色不对。分组看板那个地方没改,截止没改,
负责人没改,备注没改,协作人没改。评论那个地方的头像怎么又没了?」

逐条查下来,四个真问题:

① 上一轮只改了 3 个标题,漏了一大片
   只换了「子任务/附件/留言」,而 **看板、状态、协作人**、
   以及「更多信息」里的**字段标签**全是手写的 fontTiny + faint。
   ⇒ 看板/状态/协作人 补 FbSectionTitle(Bold + accent + 字距 0.6)。
   ⇒ 截止/负责人/备注/分类/循环 这些**行内字段标签**新增 fieldLb() Builder:
     同样取主题色 + Bold + letterSpacing,但宽度 48、无内边距
     (不能直接用 FbSectionTitle:它 width 100% + padding,会把右侧控件顶下去)。
   ⚠️ 这与「编辑表单」的口径不同:那边 `期限` 仍是浅灰小字。
      用户明确要求这个面板里字段标签也用主题色粗体 —— 按用户要求走,
      已在 fieldLb 的注释里写明这个差异,避免以后有人"统一"回去。

② 留言头像丢失的真因
   不是数据问题,是 `FbPersonChip` **不透传 imageUrl**。
   它内部的 `FbAvatar({ name, color, dia, fontSizeVp })` 漏了这个参数,
   而 `FbAvatar` 自己是支持的(注释里还写着"800 人里只有 19 人有头像,
   有图显示图、没图回落色块字")。
   ⇒ 上一轮我换成 FbPersonChip 后,原来手写 FbAvatar 时**能显示的头像反而没了**。
      给 FbPersonChip 补 `@Param imageUrl` 并传给内部 FbAvatar,
      调用点把 `fbImageSrc(c.avatar, token)` 传进去。

③ 状态区原来没有标题
   三个 chip 直接飘在那(上下每个区段都有标题)。补 FbSectionTitle(状态)。

④ 协作人标题改组件
   顺手把「+ 共享」按钮挪到标题下面单独一行(FbSectionTitle 是 100% 宽,
   放同一个 Row 里会把它压成 0 宽)。

编译通过,已装真机。
This commit is contained in:
2026-11-05 19:34:12 +08:00
parent 09f7878994
commit b42e657bb2
2 changed files with 88 additions and 36 deletions
+25 -1
View File
@@ -334,10 +334,34 @@ export struct FbPersonChip {
@Param color: string = '#A84A28';
/** 是否显示文字(只放头像时传 false) */
@Param withText: boolean = true;
/**
* 头像图 URL(空 = 用色块字回落)。
*
* 🔴 #77i(用户 2026-11-05):「评论那个地方的头像怎么又没了?」
*
* 真因:`FbAvatar` **本来就支持** `imageUrl`(它自己的注释里写着
* 「名册 800 人里只有 19 人传过头像 ⇒ 两者都要有:有图显示图、没图回落色块字」),
* 但 `FbPersonChip` **没有把这个参数透传下去** ——
* 它内部只写了 `FbAvatar({ name, color, dia, fontSizeVp })`。
* ⇒ 凡是用 `FbPersonChip` 的地方,头像永远是首字色块,真图显示不出来。
*
* ⚠️ 这是我上一轮"改用规范组件"时替换掉的:原来手写的
* `FbAvatar({ ..., imageUrl: ... })` 是**能显示图的**,
* 换成 `FbPersonChip` 后反而丢了图 —— 用规范组件没错,
* 但规范组件本身缺了这层透传,得先补它。
* ⚠️ URL 由调用方用 `fbImageSrc(key, token)` 拼好传进来(与 `FbAvatar` 同口径)。
*/
@Param imageUrl: string = '';
build() {
Row({ space: 4 }) {
FbAvatar({ name: this.name, color: this.color, dia: 18, fontSizeVp: 10 })
FbAvatar({
name: this.name,
color: this.color,
dia: 18,
fontSizeVp: 10,
imageUrl: this.imageUrl
})
if (this.withText) {
Text(this.name)
.fontSize(FbMetric.fontTiny)