读书上传+在线阅读+笔记导入:端上补齐三个入口 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:
@@ -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%')
|
||||
|
||||
Reference in New Issue
Block a user