fix(kin,movies): 家谱连线重构为单一网格 + 观影设置统一页头
需求三点: 1. 观影模块「⚙ 设置」与「记一场电影」按钮高度不一致 → 统一页头动作区 四个选择器的 padding/font-size(.btn 与 .btn-sm 混用是根因);并把设置 下拉推广到观影全部页面(详情/影院/搜索/统计/报告/表单),落在返回按钮旁。 2. 家谱连线「线乱」→ 根因三条:每代各建一个网格(列宽最小值由内容决定, 各代不一致,窄屏实测 93.5px vs 164/78/78/78px);落点用百分比算而 grid 间距不参与百分比;连线行与卡片行不是同一套列。 改法:整棵树只留一个网格,辈分行/卡片行/连线行全是它的行,连线元素本身 也是网格项(靠 justify-self 落位);列宽固定为一卡之宽(不用 minmax/1fr, 否则宽屏卡片中心 ≠ 列中心)。 3. 亲属关系接口改白名单(parent/child/spouse)——原先未知 kind 被静默记成 配偶,夹具传 kind=sibling 让家谱断言长期拿错数据自证。 设置下拉抽成可复用片段 _settings_menu.php($setCurrent 高亮当前页、 $setCanWrite 控「影院管理」显隐),六七个页头不再各抄一份。 验证:e2e 456/0、桌面几何 268/0、移动端几何 504/0、交互 97/0、 家谱连线诊断 0 失败、静态空跑 exit=0、静态断言证伪 13/13、 反向验证 68/68 全抓住。
This commit is contained in:
@@ -1100,6 +1100,18 @@ switch ($r) {
|
||||
// 约定:表单里 from_id 是「当前打开的人」,也就是表单上写的那个「我」;
|
||||
// kind=parent 表示「对方是我的父母」→ 所以我是 child、对方是 parent。
|
||||
// Relations::addParent($familyId, $childId, $parentId, $role) 的第二个参数是**孩子**。
|
||||
//
|
||||
// ⚠️⚠️ 这里是**白名单**,不是 else 兜底。原先写成 `else { addSpouse(...) }`,
|
||||
// 于是任何没被识别的 kind(大小写错、拼错、以后新增的种类)都会被**静默记成配偶**
|
||||
// 且照样提示「关系已记录」——关系是错的,用户却以为成功了。
|
||||
// 实测踩到:夹具传 kind=sibling(兄弟姐妹),库里落的全是 spouse,
|
||||
// 于是「夫妻并排」「父母括号」这些断言看着在测,其实测的是一堆错关系。
|
||||
// 兄弟姐妹本就不需要单独记 —— 有同一对父母就会自动认出来(见 Kinship::siblingIds)。
|
||||
$kindMap = ['parent', 'child', 'spouse'];
|
||||
if (!in_array($kind, $kindMap, true)) {
|
||||
flash('err', '不认识这种关系,没有记录。兄弟姐妹不用单独填 —— 有同一对父母就会自动认出来。');
|
||||
redirect('people/show', ['id' => $from]);
|
||||
}
|
||||
if ($kind === 'parent') {
|
||||
// 对方是我的父母:我是孩子,对方是父母
|
||||
$r = Relations::addParent($familyId, $from, $to, $role);
|
||||
|
||||
Reference in New Issue
Block a user