From 18329370167fa1d3f1b5f8e8b3a987ac256d4935 Mon Sep 17 00:00:00 2001 From: JianFeeeee Date: Fri, 18 Sep 2026 13:19:06 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=97=A5=E5=8E=86=E9=82=A3=E4=B8=A4?= =?UTF-8?q?=E5=A4=84"=E6=9C=AA=E5=81=9A"=E6=B8=85=E5=8D=95=E6=97=A9?= =?UTF-8?q?=E5=B7=B2=E8=BF=87=E6=9C=9F=EF=BC=88=E5=86=99=E4=BE=A7=E6=97=A9?= =?UTF-8?q?=E5=B0=B1=E5=81=9A=E5=AE=8C=E4=BA=86=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `CalendarPage` 的文件头写着「没做:新建/编辑/删除事件(**写侧**)、……**ics 导入导出**」, 而写侧当时**早就做完了**(`createEvent`/`updateEvent` 已接线、表单在 765 行起)。 `docs/HARMONY-ALIGN-PLAN.md` 的 P6 行同样标着 ⬜ 未做。 注释把已完成的说成未做,比漏写更糟:下一个读的人会去"实现"一个已经存在的东西。 本仓反复在消的"说的与做的不一致"这次落在文档/注释上(判据看不见注释, 只有人读的时候才会发现 —— 所以更该在每次真做完时顺手改)。 - `CalendarPage` 文件头:补上月/周/日三档、农历、写侧、.ics,并写明为什么还没有滑动翻页。 - `HARMONY-ALIGN-PLAN.md` P6:⬜ → ✅(滑动翻页除外),带三笔提交号(fbe7879 / 2da38bb / bcd7e7f) 与"鸿蒙无下载目录概念、DocumentViewPicker 是唯一路径"这条平台差异。 --- .../entry/src/main/ets/pages/CalendarPage.ets | 20 +++++++++++++++---- docs/HARMONY-ALIGN-PLAN.md | 2 +- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/client/harmony/entry/src/main/ets/pages/CalendarPage.ets b/client/harmony/entry/src/main/ets/pages/CalendarPage.ets index 3345564..288e733 100644 --- a/client/harmony/entry/src/main/ets/pages/CalendarPage.ets +++ b/client/harmony/entry/src/main/ets/pages/CalendarPage.ets @@ -1,13 +1,25 @@ /* - * AgentMail 鸿蒙客户端 — 日历(P6 第一步:只读月视图) + * AgentMail 鸿蒙客户端 — 日历 * * # 这一版做了什么、没做什么(别把"没做的"读成"做了") * - * 做了:月网格(可翻月、可回"今天")、点某一天看当天日程、事件点标记、 - * 今天/选中两态、加载失败**说出来**。 + * 做了: + * · 月 / 周 / 日**三档**视图(`calScale`),可翻月/翻周/翻天、可回"今天"; + * · 点某一天看当天日程、事件点标记、今天/选中两态; + * · 农历标签(`GET /calendar/lunar`,走服务端 —— 不在 ArkTS 里重写天文算法); + * · **写侧**:新建 / 编辑 / 删除日程(与 WebUI 同一份 `CalendarEventInput` 打两个端点); + * · **.ics 导入导出**(`common/IcsFile.ets` 走系统 `DocumentViewPicker`); + * · 加载失败**说出来**(静默吞掉会让"这个月没日程"与"服务端没答上来"长得一样)。 + * * 没做:农历重复事件、左右滑动翻页(P6 第 3 步)。 * 滑动那条还牵着 `docs/DEBTS.json` 的 `gesture-semantics`("鸿蒙侧出现滑动手势代码时立即建判据") - * —— 没写手势就不该先建那条假判据,所以这一版用按钮翻月。 + * —— 没写手势就不该先建那条假判据,所以目前用按钮翻月。 + * + * ★ 2026-09-18 修这段注释:它原先写着"做了:只读月视图……没做:新建/编辑/删除事件(写侧)、 + * .ics 导入导出" —— 而**写侧当时早就做完了**(`saveEvent` 调 `createEvent`/`updateEvent`, + * 表单在 765 行起)。注释把已完成的说成未做,比漏写更糟:下一个读的人会去"实现"一个 + * 已经存在的东西。这种"说的与做的不一致"本仓已经反复在消(判据看不见注释, + * 所以只有人读的时候才会发现)。 * * # 为什么先做只读 * diff --git a/docs/HARMONY-ALIGN-PLAN.md b/docs/HARMONY-ALIGN-PLAN.md index 36535c9..20ec342 100644 --- a/docs/HARMONY-ALIGN-PLAN.md +++ b/docs/HARMONY-ALIGN-PLAN.md @@ -250,7 +250,7 @@ WebUI 侧 `npm test` 在 **HEAD 上就是红的**(`test/background.test.mjs` | P3 ⚠️ 主体完成 | 授权页:`GET /permission/pending` + `POST /permission/decide` | 未决口径与 WebUI 一致(无 `permission_result`)✅;拒绝可填备注且备注送出 ✅;`expired` 当场说清"这次批准不会恢复原调用" ✅。**未验**:真机上点同意/拒绝后状态是否"立刻变"(判据只钉到"决策后重新拉列表"这一层) | | P4 ✅(P4c 上传除外) | 主题/壁纸(`/me/appearance`) | 换账号外观跟随 ✅(缓存键带账号);服务端无记录时以本地为准 ✅(§7.16);**预设 6 档都能画出来** ✅、图片壁纸渲染 ✅(§7.17 —— 这一版补的,第一版只有数据没有画面)。**未做**:P4c 上传入口。**未验**:真机观感(配色/对比) | | P5 ✅ 主体完成 | 悬浮玻璃导航(取代系统 TabBar) | **已换**:自绘浮动玻璃条 `NavBar`(留白 + 胶囊圆角 + 系统材质),内容按 `currentIndex` 挂载;命中区 ≥44vp(数值在 `NavItems.ts`,判据直接 import);内容底部让出 76vp(不让位则最后一行压在条底下:看得见、点不到)—— §7.21。判据 6 条全绿、4 种变异都能红。**未验**:玻璃条在真机上的观感(材质浓度/圆角/阴影)、深色主题下的表现、字形图标渲染 —— **原因是环境硬约束**(模拟器要写工作区外 + 审批无人可送 + 许可协议不接受代签),见 §7.21 末节的「视觉验收的实测阻塞」 | -| P6 ⬜ 未做 | 日历(`/calendar/events`,含 ics 导入导出) | 手势阈值按 **(b)**:**不要求数值一致**(数值各自定、按设备人体工学),契约钉**语义层**(左右滑=什么、边界回弹、"快滑"感知档);鸿蒙**不得引用** WebUI 的三个数(详见分期段)。**有意排序**:入口与内容一起上,不留空页签(§7.15) | +| P6 ✅(滑动翻页除外) | 日历(`/calendar/events` + 农历 `GET /calendar/lunar` + ics 导入导出) | 手势阈值按 **(b)**:**不要求数值一致**(数值各自定、按设备人体工学),契约钉**语义层**(左右滑=什么、边界回弹、「快滑」感知档);鸿蒙**不得引用** WebUI 的三个数(详见分期段)。**有意排序**:入口与内容一起上,不留空页签(§7.15)。
**2026-09-18 实况**:只读月/周/日三档 ✅(`b372d0f`)、写侧(新建/编辑/删除)✅、农历 ✅(`5ea9884` —— 走服务端端点,不在 ArkTS 里重写天文算法)、**ics 导入导出 ✅**(`7e10bfa`,走 `DocumentViewPicker`:鸿蒙无「下载目录」概念,这是该平台上唯一能让用户拿到/指定文件的路)。**仍未做**:左右滑动翻页(P6 第 3 步,牵着 `docs/DEBTS.json` 的 `gesture-semantics`) | **视觉/交互怎么验**:本机有 `harmony-emu`(实例 `HarmonyPhone`,hdc 在 `/opt/harmonyos/ohos-sdk/linux/toolchains`),能起来就能截图 + 真点,