{{ pageTitle }}
{{ user.name }}
{{ pullDist >= 70 ? '↑' : '↓' }}

本月收支

详情 ›
收入 {{ fmt(summary.income) }}
支出 {{ fmt(summary.expense) }}
结余 {{ fmt(summary.balance) }}
日均 {{ fmt(dailyAvg.daily_avg) }}

最近账单

全部 ›
{{ catLabel(r) }} {{ r.date }} · {{ r.person }}
{{ r.type === 'income' ? '+' : '-' }}{{ fmt(r.amount) }}

今日概览 · {{ dailyData.date }}

收入 {{ fmt(dailyData.income) }}
支出 {{ fmt(dailyData.expense) }}
结余 {{ fmt(dailyData.income - dailyData.expense) }}
笔数 {{ dailyData.count }}

今日明细

{{ catLabel(r) }} {{ r.type === 'income' ? '收入' : '支出' }} {{ r.person }} · {{ r.account }}
{{ r.type === 'income' ? '+' : '-' }}{{ fmt(r.amount) }}
今天还没有记账 📒
{{ catLabel(r) }} {{ r.type === 'income' ? '收入' : '支出' }} {{ r.date }} · {{ r.person }} · {{ r.account }}
{{ r.type === 'income' ? '+' : '-' }}{{ fmt(r.amount) }}

储蓄情况

储蓄率 {{ savingsRate.savings_rate }}%
存下 {{ fmt(savingsRate.savings) }}

环比对比 · {{ comparison.prev_label }}

收入
{{ fmt(comparison.current.income) }} {{ comparison.current.income >= comparison.previous.income ? '↑' : '↓' }}{{ fmt(Math.abs(comparison.current.income - comparison.previous.income)) }}
支出
{{ fmt(comparison.current.expense) }} {{ comparison.current.expense <= comparison.previous.expense ? '↓' : '↑' }}{{ fmt(Math.abs(comparison.current.expense - comparison.previous.expense)) }}
结余
{{ fmt(comparison.current.balance) }}

同比对比 · {{ comparison.yoy_label }}

收入
{{ fmt(comparison.yoy.income) }} {{ comparison.current.income >= comparison.yoy.income ? '↑' : '↓' }}{{ fmt(Math.abs(comparison.current.income - comparison.yoy.income)) }}
支出
{{ fmt(comparison.yoy.expense) }} {{ comparison.current.expense <= comparison.yoy.expense ? '↓' : '↑' }}{{ fmt(Math.abs(comparison.current.expense - comparison.yoy.expense)) }}

成员对比 · 云浩 vs 倩冰

云浩 支出
{{ fmt(personCompare.yunhao.expense) }} {{ fmt(personCompare.yunhao.income) }}
倩冰 支出
{{ fmt(personCompare.qianbing.expense) }} {{ fmt(personCompare.qianbing.income) }}
{{ catLabel(r) }} {{ statusMap[r.status] || r.status }} {{ r.date }} · {{ r.person }} {{ r.rec_frequency === 'monthly' ? '每月' + r.rec_day + '日' : '每年' + r.rec_day + '日' }} 剩{{ r.inst_remaining }}期×{{ fmt(r.inst_monthly_amount || r.amount) }}
-{{ fmt(r.amount) }}
{{ catLabel(h) }} {{ sourceMap[h.source] || h.source }} {{ h.date }} · {{ h.person }}
-{{ fmt(h.amount) }}
暂无历史记录
{{ b.person }} · {{ b.category }} {{ b.pct }}%
已花 ¥{{ fmt(b.spent) }} / 预算 ¥{{ fmt(b.budget) }}

家底总览

总资产 {{ fmt(assetsOverview.total_assets) }}
总负债 {{ fmt(assetsOverview.total_liabilities) }}
净资产 {{ fmt(assetsOverview.net_worth) }}

资产账户

{{ a.name }} {{ a.owner }} · {{ a.type }}
{{ fmt(a.balance) }}

负债

总负债已含信用卡待还 {{ fmt(assetsOverview.credit_cards_total) }}
{{ l.project }} {{ l.owner }} · {{ l.detail }}
-{{ fmt(l.amount) }}

{{ cronDetail.name }}

{{ fmtCronSchedule(cronDetail.schedule) }} {{ cronDetail.enabled ? '启用中' : '已禁用' }}
{{ fmtPayloadCmd(cronDetail.payload) }}
上次执行:{{ cronDetail.last_status || '-' }} · {{ fmtTimestamp(cronDetail.last_run) }} · 下次 {{ fmtTimestamp(cronDetail.next_run) }}

故障告警

连续失败 {{ cronDetail.failure_alert.after || 2 }} 次告警 冷却 {{ Math.round((cronDetail.failure_alert.cooldownMs || 3600000) / 60000) }} 分钟

执行记录

{{ cronRuns.length }} 条
{{ fmtRunStatus(r.status) }} {{ fmtTsi(r.ts_iso) }} {{ r.message }}
{{ r.duration_ms }}ms
暂无执行记录

定时任务

加载中…
{{ j.name }} {{ fmtCronSchedule(j.schedule) }} {{ fmtPayloadCmd(j.payload) }}
{{ j.last_status === 'ok' ? '✓' : '✗' }} {{ fmtTimestamp(j.last_run) }} 未运行 下次 {{ fmtTimestamp(j.next_run) }}
暂无定时任务

{{ detailData.displayName }}

编辑账户 去编辑 ›
{{ detailData.displayMeta }} {{ detailData.isLiability ? '-' : '' }}{{ fmt(detailData.amount || detailData.balance) }}

账户流水

{{ t.category || '转账' }} {{ t.date }} · {{ t.note || '' }}
{{ t.kind === 'income' ? '+' : '-' }}{{ fmt(t.amount) }}
暂无流水记录

还款计划

账户流水

{{ t.category || '转账' }} {{ t.date }} · {{ t.note || '' }}
{{ t.kind === 'income' ? '+' : '-' }}{{ fmt(t.amount) }}
该负债暂无明细数据

转账记录

{{ transfers.length }} 笔
{{ t.from_person }}·{{ t.from_account }} → {{ t.to_person }}·{{ t.to_account }} {{ t.person }} · {{ t.type==='income' ? '转入' : '转出' }} {{ t.date }}{{ t.clean_note ? ' · ' + t.clean_note : '' }} {{ t.date }} · {{ t.note || t.category }}
{{ fmt(t.amount) }} {{ t.type==='income'?'+':'-' }}{{ fmt(t.amount) }}
暂无转账记录

{{ editingRecord ? '编辑账单' : '记一笔' }}

{{ editingPlannedRecord ? '编辑计划账单' : '新增计划账单' }}

{{ editingBudget ? '编辑预算' : '设置预算' }}

确认删除

{{ deleteTarget.date }} · {{ deleteTarget.person }} · {{ deleteTarget.category }} · ¥{{ fmt(deleteTarget.amount) }}

删除后不可恢复,确定要删除这条记录吗?

{{ confirmTarget.status === 'manual' ? '确认扣款' : '立即处理' }}

{{ confirmTarget.date }} · {{ confirmTarget.category }}

确认删除

{{ plannedDeleteTarget.date }} · {{ plannedDeleteTarget.category }} · ¥{{ fmt(plannedDeleteTarget.amount) }}

删除后该计划不再自动处理,也不可恢复,确定删除吗?

确认删除

{{ budgetDeleteTarget.person }} · {{ budgetDeleteTarget.category }} · 每月 ¥{{ fmt(budgetDeleteTarget.amount) }}

删除后该品类不再参与预算统计,确定删除吗?

{{ transferAddMode ? '新增转账' : '编辑转账' }}

{{ transferAddMode ? '将生成转出/转入两条配对记录,不影响收支统计' : ((editingTransfer ? editingTransfer.note : '') + '(转出/转入两条记录同步修改)') }}

确认删除转账

{{ transferDeleteTarget.label }} · ¥{{ fmt(transferDeleteTarget.amount) }}

将同时删除转出/转入两条配对记录,不可恢复。

还款计划

{{ p.note || '信用卡分期' }} ¥{{ fmt(p.monthly_amount) }}/期
总额 {{ fmt(p.total_amount) }} · 剩余 {{ p.remaining_periods }}/{{ p.total_periods }}期 · 下期 {{ p.next_date }} · 至 {{ p.end_date }}
{{ s.date }}
¥{{ fmt(s.amount) }}

编辑账户

{{ accountForm.owner }} · {{ accountForm.name }}(余额 = 期初余额 + 流水,实时计算)

{{ ccAddMode ? '添加信用卡' : '信用卡设置' }}

{{ ccForm.owner }} · {{ ccForm.name }}

{{ instAddMode ? '添加分期计划' : '编辑分期计划' }}

待还款 = 剩余期数 × 月供,保存后实时生效

确认删除分期计划

{{ instDeleteTarget.label }}

仅限录错更正;删除后待还款立即减少,不可恢复。正常还清请用「结清」。

确认删除账户

{{ accountDeleteTarget.label }}

仅允许删除无流水的账户;有流水或关联信用卡会被拒绝。