diff --git a/client/harmony/entry/src/main/ets/pages/MailDetailPage.ets b/client/harmony/entry/src/main/ets/pages/MailDetailPage.ets index bbf45d3..b31adea 100644 --- a/client/harmony/entry/src/main/ets/pages/MailDetailPage.ets +++ b/client/harmony/entry/src/main/ets/pages/MailDetailPage.ets @@ -807,6 +807,26 @@ export struct MailDetailView { Text('对话树').fontSize(12).fontColor(Theme.textMuted) } .onClick(() => { this.openThread(); }) + /* + * ★★ 2026-09-20 补:**转发在这里**,不在右下角的球上。 + * + * WebUI `MailView.tsx:534-541` 的头部动作行是三个: + * 标记已读 → 对话树 → **转发**(`ForwardIcon` + 文字,灰=导航) + * 而右下角只有一个球(`reply-fab`,`MailView.tsx:994`), + * 点开才是回复框。**转发从来不是球**。 + * + * 我原来在右下角摆了两个球(转发 + 回复),那是自己发明的: + * · 多出来那个球没有任何对应物,纯属"看着缺就补一个"; + * · 转发在 WebUI 是"**导航**"(灰、跟对话树并列), + * 球是"**主操作**"(蓝、抢注意力)—— 把导航做成主操作, + * 页面里就有了两个同等重量的动作,看不出主次。 + * 现在与 WebUI 同构:头部一个转发入口,右下只剩回复球。 + */ + Row({ space: 4 }) { + AmIcon({ iconName: 'forward', iconSize: 14, iconColor: Theme.textMuted }) + Text('转发').fontSize(12).fontColor(Theme.textMuted) + } + .onClick(() => { this.showReplyBox = false; this.showForwardBox = true; }) } .width('100%') .margin({ bottom: 6 }) @@ -1038,21 +1058,6 @@ export struct MailDetailView { * 会让人分不出哪个更主要。 */ Row({ space: 12 }) { - Button() { - AmIcon({ iconName: 'forward', iconSize: 20, iconColor: Theme.accentFor() }) - } - .width(48).height(48) - .borderRadius(24) - .backgroundColor(Theme.surfaceMuted) - .onClick(() => { - /* - * 打开转发框时把回复框关掉:两者都是底部弹层, - * 同时开着会叠在一起(WebUI 也用同一份 `forwarding` 状态互斥)。 - */ - this.showReplyBox = false; - this.showForwardBox = true; - }) - Button() { AmIcon({ iconName: 'chatBubble', iconSize: 24, iconColor: Theme.accentFg }) } @@ -1062,7 +1067,7 @@ export struct MailDetailView { .onClick(() => { this.showForwardBox = false; this.showReplyBox = true; }) } .alignItems(VerticalAlign.Bottom) - /* 让出底部悬浮条;右边距与原来的回复球一致(球没变位置,只是多了左边一个) */ + /* 让出底部悬浮条(右下只剩这一个回复球,与 WebUI `reply-fab` 同位) */ .margin({ right: 16, bottom: this.navReserve + 16 }) } .width('100%').layoutWeight(1)