Files
FamilyBook_harmonyos/entry/src/main/ets/model/FbSettingsMenus.ets
T
laoyang 8146aab1a7 v63+v64:影院管理补齐(v63)与观影「记一场」豆瓣/弹框选择(v64)
⚠️ 本提交含**两批**改动(同一批文件里交织,无法按文件拆开):
  · v63(影院管理与搜索/统计/年报拆成平级入口)—— 本会话之外的工作,
    随本轮一并提交以免工作区长期留半成品;
  · v64(本会话,用户 2026-10-19 六条)。

v64 六条:
① 片名可经豆瓣自动获取简介与海报(与网页端同一份服务端输出:
   summary 全文 + 已落盘的 poster_key);简介**只填空白的**,不覆盖用户写过的。
   联想 320ms 防抖(与网页端同值)。
② 开始/结束改成**与日程同一个**日期时间选择控件 —— 新抽 components/FbDateTimeField.ets
   (行 + 弹层 + 一组换算函数),日程那边旧的自绘实现整段删掉改用它
   (用户要的就是"两处一样")。
③ 影院、同看人改成**弹框选择**:
   · FbCinemaPickSheet:顶部搜索框,匹配「地方 + 名称」,「不记录影院」恒在列表;
   · FbPersonPickSheet:顶部搜索框,拼音首字母**子序列**匹配(yyq 打成 yq 也能搜到),
     多选走"暂存 + 确定"两段式(点一个不关窗)。
   两排横向胶囊/头像全删(用户:"这种方式太难找了")。
④ 允许上传**多张**图片:海报 1 张 + 观影照片可一次选 9 张、可多次追加、可逐张删。
   ⚠️ 顺序是**先建记录再传图**(建记录失败就不会留孤儿图);图失败**不挡记录**。
⑤ 删掉「地点」输入口(location 字段仍发,网页端与历史数据不受影响)。
⑥ 观影页搜索框改明显:白底 + 实色描边 + 图标放大到 18 并染主题色 +
   占位文字提到 muted/fontBody + 右侧「筛选 ›」暗示(用户:"根本看不清")。

FbMovieRepo 新增 doubanSuggest / doubanFetch / uploadPoster / uploadPhoto
(multipart 手写,与头像上传同一形态,抽成共用的 uploadOne)。

验证:静态守卫 636/0 · 端上反向验证 87/0 · 接口 e2e 57/0 · 服务端反向验证 18/0 ·
本地全量 e2e 1521/0 · hvigor 编译成功并已装机。
⚠️ 真机验证脚本 _fb_v64_verify.py 已写好(六条全覆盖),因设备锁屏未能执行。
2026-10-20 07:35:37 +08:00

71 lines
3.7 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* 家书 FamilyBook · 各模块的「设置菜单」条目(鸿蒙端)
*
* 🔴 用户 2026-10-16:「所有页面的设置按钮全部都改成和网页版一致,
* 就是**三个横线**那种设置按钮。」
*
* 这份表**逐条对齐网页版** `templates/<模块>/_settings_menu.php` 里的菜单项
* (那是权威来源;别自己发明条目)。
*
* ⚠️ `action` 为**空串** = 该功能在鸿蒙端**还没做**:
* 界面会画成灰色 + 「暂未开放」,点它**不响应**
* (比"点了没反应"好 —— 后者用户以为是卡了)。
* ⚠️ 补上某个功能时,只要把对应 `action` 填上、并在页面里处理它即可;
* 表本身不用改结构。
*/
import { FbSettingItem } from '../components/FbModuleSettingsSheet';
/** 观影(对应网页版 templates/movies/_settings_menu.php) */
/**
* 观影设置菜单。
*
* 🔴 v63(用户 2026-10-19):**影院管理与搜索/统计/年报是平级的四个入口**,
* 「影院管理就是管理影院,不要把统计搜索和年报放在这里面」。
* ⇒ 四条各有一个 `action`(v62 时后三条是空串 = 点了没反应)。
* ⚠️ 「高级搜索」与「统计」在原话里是**连着说的**("高级搜索统计"),
* 这里仍**拆成两条**:它们是两个不同页面(搜索给结果列表、统计给图),
* 合在一条里用户点进去只能看见一个,另一个就永远进不去了。
*/
export const FB_SET_MOVIES: FbSettingItem[] = [
{ icon: 'movies', label: '影院管理', hint: '看过的影院:新增 / 修改 / 删除', action: 'cinema' },
{ icon: 'search', label: '高级搜索', hint: '片名 / 影院 / 日期组合查', action: 'moviesearch' },
{ icon: 'chart', label: '统计', hint: '看过多少、按影院和年份的分布', action: 'moviestats' },
{ icon: 'notes', label: '年度报告', hint: '这一年你看了些什么', action: 'moviereport' }
];
/** 读书(templates/books/_settings_menu.php) */
export const FB_SET_BOOKS: FbSettingItem[] = [
{ icon: 'chart', label: '读书统计', hint: '每年读了多少、多少页', action: '' },
{ icon: 'plus', label: '导入读书笔记', hint: '从笔记文件批量导入', action: '' },
{ icon: 'share', label: '微信读书导入', hint: '同步微信读书的书单', action: '' }
];
/** 纪念日(templates/days/_settings_menu.php) */
export const FB_SET_DAYS: FbSettingItem[] = [
{ icon: 'filter', label: '纪念日分类', hint: '全家共用一套分类', action: '' }
];
/** 账本(templates/ledger/_settings_menu.php) */
export const FB_SET_LEDGER: FbSettingItem[] = [
{ icon: 'share', label: '共享给谁', hint: '对方就能记能看', action: '' },
{ icon: 'edit', label: '账本名字', hint: '改这本账本的名字', action: '' }
];
/** 任务(templates/tasks/_settings_menu.php) */
export const FB_SET_TASKS: FbSettingItem[] = [
{ icon: 'tasks', label: '分类与看板', hint: '管分类、管看板', action: '' },
{ icon: 'check', label: '已完成', hint: '看已经完成的任务', action: '' }
];
/** 旅程(templates/trips/_settings_menu.php) */
export const FB_SET_TRIPS: FbSettingItem[] = [
{ icon: 'nav', label: '车辆管理', hint: '自驾时的车与油耗', action: '' },
{ icon: 'trips', label: '出行方式', hint: '飞机 / 高铁 / 自驾…', action: '' },
{ icon: 'dot', label: '节点类型', hint: '行程节点的类型', action: '' }
];
/** 资源(网页版没有独立菜单;这里只放已有的入口) */
export const FB_SET_RESOURCES: FbSettingItem[] = [
{ icon: 'filter', label: '格式筛选', hint: '只看某类资源', action: '' }
];