跨端: 日历「新建」按钮补文字(原先只有一个加号)+ 详情页三处缺失登记
## 一、日历的「新建」按钮(对齐 WebUI 的主动作)
WebUI `CalendarView.tsx:362-369` 那个按钮是工具栏里**唯一的实心按钮**:
`px-2.5 py-1 bg-blue-600 text-white` + `<PlusIcon/>` + **「新建」两个字**。
鸿蒙原先只有一个光秃秃的 `Button('+')` —— 丢掉的不只是文字,是**主动作这层语义**:
用户得猜"这个加号加什么"(加日程?加订阅?加日历?)。
改成蓝底 + 图标 + 「新建」,与 WebUI 同形。**设备实测截图确认**。
★ 与这条对照的是它左边那两条「导入/导出」:鸿蒙**有意**用文字而非图标,
理由已写在代码注释里(WebUI 有 `title` 可悬停,手指没有悬停)。
同一个道理在主动作上更成立 —— 主动作不该是个谜语。
## 二、邮件详情页缺三块功能(审计发现,服务端都已支持)
对照 `MailView.tsx` 逐段核对,鸿蒙 `MailDetailPage.ets` 缺:
| 功能 | WebUI | 服务端 |
|---|---|---|
| `RenameProposalBar` | `MailView.tsx:324` | ✅ `rename_proposal.go` 已在解析 `propose_alias` |
| `ForwardBar`(转发) | `MailView.tsx:378` | ✅ `forward.go`(含 `forwardSubject` 的 Fwd: 叠加处理) |
| `BudgetEditor`(预算) | `MailView.tsx:235` | ✅ `max_rounds` 字段 |
改名建议那条尤其重要(WebUI 注释:「Agent 干到一半自己改掉,人上一秒记住的
地址下一秒就失效」)—— 是否决制而不是 Agent 单方面改,这是**寻址稳定性**的设计。
三条都**没有**在这批里硬做:各含交互 + 接口 + 状态,不是顺手能补的量级。
登记进 `docs/DEBTS.json`(`harmony-maildetail-missing-three`)——
硬塞的结果是每条都半成品,那比缺着更糟(缺着是可见的,半成品是不可见的)。
## 三、审计中确认**已对齐**的部分(不是漏做)
- 通信:工具条三页签分组与顺序、列表行的字段集(发件人/主题/摘要/时间/未读点/
账号徽标/档位徽标)、会话折叠与组头(别名/主题/未读/封数)、空态文案、
发件箱的三处差异(数据源/`to_name`/不筛权限)、归档确认框。
- 日历:工具条分组与顺序、宽屏两栏(左网格 + 右 400vp 常驻)、右栏三态、
月/周/日三档网格与农历小字、非本月淡出、今天高亮、事件圆点、
点某天的行为(宽屏换右栏 / 窄屏滑入)、导入导出的三条结果分支。
- 联系人:卡片/列表两视图、字段集、归档确认框(含破坏性操作的二次确认)。
- 「我的」:八个分段的字段与顺序、壁纸选择器、主题三态、多账号入口。
- 管理页:列与操作、管理员门禁。
- 外壳:侧栏三项 + 底簇、底栏四项、徽标三档色调与位置、玻璃材质、让位。
## 判据
`run-all.mjs` → `checks=504 pass=503 fail=1`(唯一那条是 build-stamp 的
产物过期,重建后 7/7)。`hvigorw assembleHap` 成功。
`docs/DEBTS.json` 新增三条登记(断点差异 / 列表附件数 / 详情页三功能)。
This commit is contained in:
@ -38,6 +38,7 @@ import { CalendarApi } from '../api/CalendarApi';
|
||||
import { hilog } from '@kit.PerformanceAnalysisKit';
|
||||
import { CalendarEvent, CalendarEventInput, LunarLabels, LunarRangeResponse } from '../model/Models';
|
||||
import { Theme } from '../common/Theme';
|
||||
import { AmIcon } from '../common/Icons';
|
||||
import {
|
||||
DayCell,
|
||||
monthGrid,
|
||||
@ -1205,13 +1206,29 @@ export struct CalendarPage {
|
||||
.fontColor(this.icsBusy ? Theme.textSubtle : Theme.accent)
|
||||
.margin({ left: 8 })
|
||||
.onClick(() => { this.exportIcs(); })
|
||||
Button('+')
|
||||
.fontSize(Theme.fontBody)
|
||||
.backgroundColor(Theme.accent)
|
||||
.fontColor(Theme.accentFg)
|
||||
.height(26)
|
||||
.margin({ left: 8 })
|
||||
.onClick(() => this.openNew())
|
||||
/*
|
||||
* 新建 —— 对齐 WebUI `CalendarView.tsx:362-369`:**蓝底 + 图标 + 文字「新建」**。
|
||||
*
|
||||
* ★ 2026-09-19 审计改:原先这里是光秃秃的 `Button('+')`。
|
||||
* 而 WebUI 那个按钮是 `px-2.5 py-1 bg-blue-600 text-white text-xs` +
|
||||
* `<PlusIcon/>` + **「新建」两个字** —— 它是工具栏里唯一的实心按钮,
|
||||
* 视觉上是"主动作"。只画一个加号会丢掉这层语义:
|
||||
* 用户要猜"这个加号加什么"(加日程?加订阅?加日历?)。
|
||||
*
|
||||
* 上面「导入/导出」两条也刚因此保留为**文字**而不是图标
|
||||
* (理由见它们上面的注释:WebUI 有 title 可悬停,手指没有悬停)。
|
||||
* 同一个道理在这里更成立 —— 主动作不该是个谜语。
|
||||
*/
|
||||
Row({ space: 4 }) {
|
||||
AmIcon({ iconName: 'plus', iconSize: 13, iconColor: Theme.accentFg })
|
||||
Text('新建').fontSize(Theme.fontSmall).fontColor(Theme.accentFg)
|
||||
}
|
||||
.padding({ left: 10, right: 10 })
|
||||
.height(26)
|
||||
.backgroundColor(Theme.accent)
|
||||
.borderRadius(Theme.radiusControl)
|
||||
.margin({ left: 8 })
|
||||
.onClick(() => this.openNew())
|
||||
}
|
||||
.width('100%')
|
||||
.padding({ left: 10, right: 10, top: 6, bottom: 4 })
|
||||
|
||||
Reference in New Issue
Block a user