分类下拉:修「永远未分类」+ 菜单同宽 + 主题色 (#84)

用户 2026-11-05 三点:
  1.「分类那个地方没带进来。明明是有分类的,但是它却显示的是未分类。」
  2.「分类弹出来的框太窄了,应该和输入框一样宽。」
  3.「颜色也不对…文字颜色是主题色,背景色是比主题色浅一点的那个主题色。」

① tskCats 永远是空数组
   `FbHomePage.loadTaskMeta()` 开头:
     if (this.tskBoards.length > 0) { return; }
   **只看看板有没有值**。这个方法跑过一次、看板填上之后,
   以后再进来直接返回 ⇒ `tskCats` 永远停在上一次的赋值上;
   如果第一次调用时 cats 恰好是空(或 #83 之前的版本压根没赋过),
   就再也补不上 ⇒ 下拉里只有「未分类」。
   ⇒ 改成 `if (boards.length > 0 && cats.length > 0) return;`
     "两样都有值才跳过"。
   ⚠️ 不能只判 cats:新家庭可能真的一条分类都没建,那样每次都重拉。
   ⚠️ 任务页的 `loadMeta()` 没有这个提前返回,不用改。

② 下拉菜单太窄
   `width(100%)` 管的是**控件本身**;弹出的选项菜单有独立宽度
   (`optionWidth`),不给就按选项文字撑开 ⇒ 很窄。
   ⇒ `.optionWidth(OptionWidthMode.FIT_TRIGGER)` 让它跟触发器同宽。
   ⚠️ 顺手试过 `.optionHeight(auto)` —— SDK 里 `optionHeight` 只收
      `Dimension`,传 auto 直接编译报 "No overload matches this call"。

③ 颜色改主题色
   文字 `this.accent` + `weight: Medium`;
   底色 `fbAlpha(this.accent, 0.10)`(浅一档的主题色)。
   与面板里「+ 添加附件」那颗胶囊同一套 —— 整面板"可操作控件"观感一致。
   选项列表里:选中项用主题色、其余用墨色(全主题色会失去对比)。

编译通过,已装真机。
This commit is contained in:
2026-11-05 20:19:43 +08:00
parent 79bc593d43
commit 389cb31df4
2 changed files with 41 additions and 9 deletions
+13 -1
View File
@@ -835,7 +835,19 @@ export struct FbHomePage {
/** 拉全部看板 + 分类(面板的"挪分组"、表单的"分类"都要用) */
private async loadTaskMeta(): Promise<void> {
if (this.tskBoards.length > 0) {
/* 🔴 #84(用户 2026-11-05):「鸿蒙端的分类那个地方没带进来。
明明是有分类的,但是它却显示的是未分类。」
**就是这个提前返回**:只看 `tskBoards` 有没有值。
而这个方法一旦先跑过一次、看板填上了,以后再进来就直接返回 ——
`tskCats`(分类)**永远停在上一次的赋值上**;如果第一次调用时
`m.cats` 恰好是空(或被 #83 之前的版本错过了),就永远补不上。
⇒ 改成"两样都有值才跳过"。任何一个为空就再拉一次
(接口很轻:`?view=boards` 不带任务列表)。
⚠️ 不能只判 `tskCats.length`:新家庭可能真的一条分类都没建,
那样每次都重拉。两条一起判才是"数据齐了"。 */
if (this.tskBoards.length > 0 && this.tskCats.length > 0) {
return;
}
await loadPath<FbTaskMeta>('tasks_meta', '/api/v1/tasks?view=boards', parseTaskMeta,