# 07 · 模块功能设计(参考 Ghostfolio & Maybe 梳理) > 基于对 [Ghostfolio](https://github.com/ghostfolio/ghostfolio) 和 [Maybe](https://github.com/maybe-finance/maybe) 两款开源 FIRE/理财 App 的分析,对原 PRD 四大模块进行功能细化与重新组织。 > 本文是 `01-需求文档-PRD.md` 的功能细化版,以此为准开发。 --- ## 一、参考项目核心设计逻辑 ### Ghostfolio - **净资产曲线是中心**,所有功能围绕它展开 - 每笔买卖/股息/转账都是"活动记录",由此自动算出收益率、配置比例 - FIRE 独立模块:配置安全提取率 → 自动算退休日期 - X-Ray 功能:透视持仓底层,发现重叠和失衡 ### Maybe - **净值追踪 + 负债管理**(净资产 = 资产 − 负债,两侧都要记) - 收支交易记录 → 才能算出真实储蓄率 - 退休预测 + 投资收益情景模拟 ### 两者共同揭示的现有 App 缺口 | 缺口 | 影响 | |---|---| | 无负债字段 | 净资产 = 资产 − 0,实际高估 | | "记账"只是勾选,无金额 | 储蓄率无法自动计算,只能手填 | | 持仓无资产类别分类 | 无法看配置比例 | | 进度页无曲线图 | 只有列表,趋势不直观 | | 测算只有单一情景 | 无法感知收益率/定投额的敏感度 | --- ## 二、Tab 结构调整 原 4 Tab:**打卡 / 进度 / 测算 / 持仓** 调整为:**总览 / 账本 / 投资 / 测算** > 打卡从独立 Tab 缩小为「总览」页内的嵌入卡片,降低视觉权重; > 新增「账本」Tab,承接真实收支记录功能。 --- ## 三、各模块详细功能 ### Tab 1:总览(Dashboard) > 参考:Ghostfolio Overview + 原打卡页 **净资产概览区** - 当前净资产数字(资产 − 负债) - 与上月对比的变化额和变化率(↑ ¥2,300 / +3.2%) - FIRE 进度条 + 百分比 + 预计达成年月 **净值曲线** - 折线图,按月展示历史净资产(qiun-data-charts) - 后续可叠加「目标线」辅助判断偏离 **关键指标卡片** - 本月储蓄率(来自账本模块) - 距 FIRE 剩余月数(来自测算模块) - 本月定投执行状态 **今日打卡(嵌入卡片)** - 见下方「打卡重新设计」章节 --- ### Tab 2:账本(Ledger) > 参考:Maybe 的 Transaction History + Budgeting > 让「记账」从勾选行为变成真实数据 **快速记账** - 金额 + 日期 + 类别 + 备注 - 类别:收入 / 必要支出 / 可选支出 / 冲动消费 **月度汇总** - 总收入、总支出、净储蓄额 - 储蓄率 = (收入 − 支出)/ 收入 × 100%(自动计算,不再手填) **净资产快照录入**(从进度页移入) - 录入当前总资产(元) - 录入当前负债(元,可选) - 净资产 = 资产 − 负债,自动写入进度曲线 **历史收支列表** - 按月筛选,支持删除 --- ### Tab 3:投资(Portfolio) > 参考:Ghostfolio Portfolio + X-Ray **持仓列表** - 手动录入:名称、当前市值、买入成本 - 显示:浮盈金额、浮盈百分比 - 支持编辑 / 删除 **资产配置** - 录入时选择资产类别:A 股 / 美股ETF / 基金 / 债券 / 现金等价物 / 其他 - 配置饼图(各类别占比) - 总市值、总成本、总浮盈 **与净资产的关联** - 投资资产占净资产比例(投资化程度) - 现金/投资比例参考 > ⚠️ 本期不接实时行情,全部手动更新市值(见风险文档)。 --- ### Tab 4:测算(FIRE Calculator) > 参考:Ghostfolio FIRE Section + cFIREsim 情景模拟 **Barista FIRE 逻辑展示** - 年支出 − 兼职年收入 = 投资需覆盖金额 - ÷ 安全提取率 = 目标本金 - 公式透明展示,参数可调 **达成时间线** - 预计达成日期(年 + 月) - 剩余年数和月数 - 基于复利公式:FV = PV·(1+r)ⁿ + PMT·[(1+r)ⁿ−1]/r **三档情景对比** | 情景 | 年化收益率 | 预计达成 | |---|---|---| | 保守 | 4% | 自动计算 | | 基准 | 6% | 自动计算 | | 乐观 | 8% | 自动计算 | **可调参数**(持久化到 settings store) - 每月定投额 - 年化收益率(基准档) - 年支出 - 兼职年收入 - 安全提取率 - 目标本金(可手动覆盖) --- ## 四、打卡重新设计 ### 问题 原 4 项中「定投到账」不适合每日打卡(定投按月执行),导致每天随便勾。 ### 新方案:分频率打卡 **每日习惯(3 项,天天可勾)** | 项目 | 说明 | |---|---| | 今日收支已记录 | 触发去账本模块记一笔 | | 无计划外支出 > 200 元 | 冲动消费自查 | | 看了今日净值/进度 | 保持目标感 | **月度任务(1 项,每月 1 日出现,勾一次完成)** | 项目 | 说明 | |---|---| | 本月定投已执行 | 记录当月定投是否到账 | ### 完成规则 - **今日打卡**:3 项全勾 = allDone,参与连续天数和月完成率统计 - **月度任务**:独立显示,不影响每日 allDone --- ## 五、数据流关系 ``` 账本(收支记录) └─→ 月储蓄率 ──→ 总览关键指标 └─→ 净资产快照 ──→ 净值曲线 ──→ 总览图表 投资(持仓) └─→ 总市值 ──→ 净资产参考(手动对齐) 设置(settings store) └─→ 测算参数 ──→ FIRE 测算 ──→ 预计达成日期 ──→ 总览展示 ``` --- ## 六、开发优先级(接续阶段 2 之后) | 优先级 | 内容 | 所在阶段 | |---|---|---| | P0 | 打卡 3 项重构 + 月度任务 | 立即 | | P0 | 测算页三档情景对比 | 阶段 2 补充 | | P1 | 投资页资产类别 + 配置饼图 | 阶段 2 补充 | | P1 | 账本模块(快速记账 + 月汇总) | 阶段 3 | | P2 | 总览 Dashboard + 净值曲线图 | 阶段 3 | | P3 | 负债字段 | 阶段 3 |