读书上传+在线阅读+笔记导入:端上补齐三个入口 laoyang/FamilyBook#28

用户原话(2026-10-28):「鸿蒙端对齐网页端」。读书端上原来只有书架。

1) FbBookUploadSheet:上传电子书(选文件→服务端解析建书)+ 粘贴导入读书笔记
2) FbBookReadSheet:在线阅读(章节列表 + 单章正文,一次一章)
3) FbBookSheet 详情态加「在线阅读」入口(有章节时才显示);
   FbBooksPage 加「+上传/导入」入口 + 设置菜单「导入笔记」接上

编译 BUILD SUCCESSFUL;服务端冒烟 _i28_book_api.py 11/0 + 反证命中。
This commit is contained in:
2026-10-28 22:47:38 +08:00
parent f1f279f973
commit f5a979f5c8
6 changed files with 599 additions and 14 deletions
+29 -3
View File
@@ -27,6 +27,7 @@ import { fbOnScroll, fbOnTouch } from '../../common/FbScroll';
import { fbMaskTransition, fbSheetTransition } from '../../common/FbAnim';
import { FbModuleSettingsSheet } from '../../components/FbModuleSettingsSheet';
import { FbBookSheet, FbBookStatsSheet } from '../../components/FbBookSheet';
import { FbBookUploadSheet } from '../../components/FbBookUploadSheet';
import { FB_BACK } from '../../common/FbBack';
import { FB_SET_BOOKS } from '../../model/FbSettingsMenus';
@@ -66,6 +67,8 @@ export struct FbBooksPage {
/** 读书统计浮层 */
@Local statsOpen: boolean = false;
/** 上传电子书 / 导入笔记浮层(工单 #28) */
@Local uploadOpen: boolean = false;
/**
* 页面出现:先读缓存、再拉接口(本地优先,见 FbModuleRepo 的说明)。
@@ -157,10 +160,17 @@ export struct FbBooksPage {
.layoutWeight(1)
/* 🔴 v67:原来这颗是「统计」图标且**没有 `onTap`**(纯摆设,点了没反应)。
现在拆成两颗:+ 加一本(主操作)、统计(设置里也有一条,这里给个快捷)。 */
现在拆成三颗:+ 上传/导入(工单 #28)、+手填、统计。 */
FbIconButton({
icon: $r('app.media.fb_ic_plus'),
tint: this.accent,
onTap: (): void => {
this.uploadOpen = true;
}
})
FbIconButton({
icon: $r('app.media.fb_ic_edit'),
tint: this.accent,
onTap: (): void => {
this.openNewBook();
}
@@ -247,11 +257,13 @@ export struct FbBooksPage {
},
onPick: (action: string): void => {
/* 🔴 v67:三条原来是空 `action`(画灰、点了没反应 = 用户说的"设置没有任何东西")。
现在 `bookstats` 真的能进去;另两条要文件选择/微信授权,
网页端才有 ⇒ 在组件里仍是「暂未开放」,这里的 hint 也写清楚了。 */
v95+(工单 #28):导入笔记也接上了(与上传同一个浮层,切到第二个 tab)。 */
if (action === 'bookstats') {
this.settingsOpen = false;
this.statsOpen = true;
} else if (action === 'bookimport') {
this.settingsOpen = false;
this.uploadOpen = true;
}
}
})
@@ -295,6 +307,20 @@ export struct FbBooksPage {
})
.transition(fbSheetTransition())
}
// ---- 上传电子书 / 导入笔记(工单 #28)----
if (this.uploadOpen) {
FbBookUploadSheet({
accent: this.accent,
onClose: (): void => {
this.uploadOpen = false;
},
onDone: (): void => {
this.load();
}
})
.transition(fbSheetTransition())
}
}
.width('100%')
.height('100%')