行, 'series'=>[…] ] * @param array $timeline 整本账的净资产时间线 * @param array $people 名册 */ $canWrite = \App\Auth::canWrite() && \App\Ledger::canWrite($cur); $curId = (int)$cur['id']; $money = static fn($c): string => \App\Ledger::money($c); $charts = $charts ?? []; $timeline = $timeline ?? []; // v24 第 23 批 用户第 2 条:每个类别自己的时间线(点标签时上面那张图换成它)。 // ⚠️ 由 index.php 算好传进来(那一处注释说明了"为什么预先算、而不是点了再请求")。 $kindLines = $kindLines ?? []; // 用户第 8 条:「挂在谁名下,应该默认是自己」。这里的 $me 由 index.php 传进来(当前登录者)。 // ⚠️ 别用 `$me ?? 0` 再判 0 —— 那样一旦没传进来就会静默变成"不选",看着像默认值丢了。 $ledMe = (int)($me ?? 0); ?>

财务

· 共享后双方都能记、都能看
只读
1): ?>

笔账 · 只读(不能记账)
总资产
总负债
净资产
**(根本不可点)—— 用户说的"点击后没有任何 效果"有一部分就是指它(另一部分是图表卡里那条 chip,它的 JS 早已失效, 见下面 ck-filter 的注释)。现在两处**并成一套筛选入口**: 点这里的任意标签 = 选中该类别,上下两张图 + 下面账目表一起联动。 ⚠️ 「这个标签下的所有财务条目的**总数**」= 该类别金额合计(by_kind)。 它现在直接写在标签上(原来只是一句话的描述,不显示数),选中后再在下面 高亮条里复述一遍 合计 + 笔数。 ⚠️ 三个总数字(总资产/总负债/净资产)**不随筛选变** —— 用户已确认: 选中「存款」后,净值仍代表整本账,避免屏幕上只剩一个类别、 却被误读成"我家只有存款"。选中的类别是谁,由下面那条高亮条说明。 */ ?>
$c): ?>

金额变化 横轴时间 · 纵轴金额;每次「盘点」记一个点,旧数字不会被清掉

总金额 · 净资产 个时间点
$line): ?>
**(chart_multi 已经给每条线标了 `data-ck-line`)+ 图例项 + 总金额图切到该类曲线。三处一起动。 */ ?>
$n): ?>

没盘点过的账目按「从 0 到现在」画 —— 想让它出现真实波动,在下面账目表里点「盘点」。

账目()

这本账还没有账目。上面「记一笔」开始记吧。

类别名称金额挂在谁名下备注
(int)$en['person_id'], 'name' => (string)$en['person_name'], 'my_nickname' => (string)($en['person_nick'] ?? ''), 'avatar' => $en['avatar'] ?? null, 'avatar_color' => $en['avatar_color'] ?? null, ]) ?> — + 一个选人组件),账目多时就是几千个 form —— 密码管理器(Bitwarden)逐项扫描把主线程占死。 → 现在行上只留两个带数据的按钮,真正的表单全页只有一份(见页尾 #ledPanels)。 */ ?>
合计(资产 − 负债)