跨端: 联系人页标题补计数(WebUI ContactPanel.tsx:68 有、我们没有)

逐页对齐时逐项比对发现的漏项。

## 事实

WebUI `ContactPanel.tsx:63-68` 的头部是三段:

    <h2>{view === 'card' ? '工作列表' : '联系人'}</h2>
    <span className="ml-2 text-xs text-gray-400">{contacts.length}</span>   ← 这一段我们没有
    <div className="flex-1" />  + 视图切换按钮

## 改动

标题右侧补 `contacts.length`,字号/颜色照 WebUI:
`text-xs`(12) → `Theme.fontSmall`,`gray-400` → `Theme.textSubtleFor()`。

★ 用 `textSubtleFor()` 而非写死灰:深色下三级文字要提亮 ——
  本仓 2026-09-18 实测过「三级文字浅色也一样不够」(`110de79`)。
★ 取值与 WebUI 同一个来源(`contacts`),**两个视图共用同一份** ——
  所以计数不随列表/卡片视图切换而变(WebUI 也是这样)。

## 设备验证

点「联系人」后 `uitest dumpLayout`:

    '联系人'   y=189..256
    '9'       y=203..243      ← 同一行、右侧,正是 WebUI 的位置

(改前该位置为空。)
This commit is contained in:
2026-09-21 16:26:20 +08:00
parent f16ebf4942
commit 877fda5829

View File

@ -2336,6 +2336,23 @@ struct ContactsTab {
Column() {
Row() {
Text(contactViewTitle(this.contactView)).fontSize(20).fontWeight(FontWeight.Bold).fontColor(Theme.textPrimary)
/*
* ★★ 2026-09-21 补(逐页对齐 WebUI 时发现的漏项)。
*
* WebUI `ContactPanel.tsx:68` 在标题右边有一个**计数**:
* <span className="ml-2 text-xs text-gray-400">{contacts.length}</span>
* 我们这里没有 —— 于是"有几个人/几条工作"只能靠往下数。
*
* 取值用 `contacts.length`(与 WebUI 同一个来源),**不是**卡片视图的
* 别的计数:两个视图共用同一份 `contacts`,所以计数不随视图变。
*
* 字号/颜色照 WebUI:`text-xs`(12) + `gray-400` → `fontSmall` + `textSubtleFor`。
* ★ 用 `textSubtleFor()` 而不是写死灰:深色下三级文字要提亮
* (本仓 2026-09-18 实测过「三级文字浅色也一样不够」)。
*/
Text(this.contacts.length.toString())
.fontSize(Theme.fontSmall).fontColor(Theme.textSubtleFor())
.margin({ left: 8 })
Blank()
/*
* 40×40 命中区 + 图标居中:尺寸加在**外层 Stack** 上,不加在 `AmIcon` 上。