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 已写好(六条全覆盖),因设备锁屏未能执行。
This commit is contained in:
2026-10-20 07:35:37 +08:00
parent 4a063114c5
commit 8146aab1a7
10 changed files with 3519 additions and 1040 deletions
+14 -4
View File
@@ -17,11 +17,21 @@
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: '' },
{ icon: 'chart', label: '统计', hint: '每年看了多少、类型分布', action: '' },
{ icon: 'notes', label: '年度报告', hint: '一句话总结这一年', action: '' }
{ 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) */