v62:纪念日列表修正 / 分类图标与设置菜单 / 首页卡片体系
- 纪念日列表:display:flex 从 td 移到内层 div(写在 td 上会破坏表格列算法, 表现为关联人列与其它列高度不一致);行内列序按表头对齐; 改完再点「新建」不再带出上次修改的数据;文案改为「与我相关」「来自名册」; 别人记的、把我挂成关联人的条目一并显示(split() 返回 hiddenIds, 路由层据此过滤「接下来的日子」,与两张表同一套可见性) - 分类图标:新增 app/AnnivIcon.php(17 个行内 SVG 图标 + 同 key 的 emoji 供日历纯文本处使用,内网无 CDN 不用 FontAwesome);去掉「看日历」按钮; 设置按钮改为菜单,第一项进 days/settings 独立页;分类可自选图标, 列表徽标与日历条目都按分类显示 - 首页卡片:新增 app/HomeCards.php 与 templates/home_cards.php; 8 格宽 × 高 2/4/6/8;首页拆成 templates/home/_card_*.php 共 8 个片段; home/cards 可改尺寸、调顺序、开关
This commit is contained in:
+14
-5
@@ -30,11 +30,20 @@ $kinds = $kinds ?? null;
|
||||
$e0 = $editing ?: [];
|
||||
$v = static fn(string $k, $def = '') => $e0[$k] ?? $def;
|
||||
$repeat = (string)($e0['repeat_type'] ?? 'solar');
|
||||
// 用户 2026-10-03 第 9 条:分类下拉的选项来自**可配置**的分类清单
|
||||
$kinds = (array)($kinds ?? \App\Anniversary::PRESET_KINDS);
|
||||
/* 用户 2026-10-03 第 9 条:分类下拉的选项来自**可配置**的分类清单。
|
||||
🔴 v62:清单改成"名称 + 图标"(`kindsFull`)。下拉里的 `<option>` 放不进 SVG,
|
||||
所以这里用同一图标的 emoji 形态打头(与日历里一致)—— 用户一眼能对上
|
||||
"下拉里选的那个"和"列表/日历上显示的那个"是同一个。 */
|
||||
$kindsFull = (array)($kindsFull ?? \App\Anniversary::kindsFull((int)\App\Auth::familyId()));
|
||||
$kinds = array_column($kindsFull, 'name');
|
||||
$curKind = (string)($e0['kind'] ?? '');
|
||||
if ($curKind !== '' && !in_array($curKind, $kinds, true)) {
|
||||
array_unshift($kinds, $curKind);
|
||||
// 老数据里的分类名可能已经从清单里删掉了 —— 仍然列出来,否则一保存就被清空
|
||||
array_unshift($kindsFull, [
|
||||
'name' => $curKind,
|
||||
'icon' => \App\Anniversary::defaultIcon($curKind),
|
||||
]);
|
||||
$kinds = array_column($kindsFull, 'name');
|
||||
}
|
||||
|
||||
/* 🔴 v41 弹框开关(与观影/旅程同一套命名习惯):
|
||||
@@ -108,8 +117,8 @@ $backUrl = url('days');
|
||||
<span class="mv-lb">分类</span>
|
||||
<select class="select" id="an-kind" name="kind">
|
||||
<option value="">不分类</option>
|
||||
<?php foreach ($kinds as $k): ?>
|
||||
<option value="<?= e((string)$k) ?>" <?= $curKind === (string)$k ? 'selected' : '' ?>><?= e((string)$k) ?></option>
|
||||
<?php foreach ($kindsFull as $kf): ?>
|
||||
<option value="<?= e((string)$kf['name']) ?>" <?= $curKind === (string)$kf['name'] ? 'selected' : '' ?>><?= e(\App\AnnivIcon::emo((string)$kf['icon']) . ' ' . (string)$kf['name']) ?></option>
|
||||
<?php endforeach; ?>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user