Skip to content

Latest commit

 

History

History
142 lines (102 loc) · 9.83 KB

File metadata and controls

142 lines (102 loc) · 9.83 KB

PRD · v0.11 · 隐私模式(公共场合 / 分享时隐藏金额)

状态:待评审(PRD 阶段)· 交互预览见 preview/pages/privacy-mode.html 用户视角需求文档。技术选型/取舍见评审通过后的 tech-design/v0.11.md

背景

家庭资产管理,屏幕上满是真金白银。两个真实场景会让人不安:

  • 场景 A · 主动分享 / 截图:想给朋友看一张资产配置环形图、或一段 AI 理财洞察,但不想连带暴露净资产、各账户余额。
  • 场景 B · 公共场合瞥一眼:电梯、地铁、咖啡馆随手打开看一眼,怕旁边人扫到家底。

现有「月报脱敏分享」(v0.5.4)解决的是结构化导出的分享;本迭代补的是实时屏幕——随手一瞥 + 随手截图。

核心原则(决定整套设计)

遮绝对金额,留相对信息。

  • :净资产 / 总资产 / 总负债 / 紧急储备金额 / 账户余额 / 收支金额 / 盈亏金额 / 累计损益 / 图表金额轴与金额数据标签 / 金额类 tooltip。
  • :百分比、收益率 %、环比/同比 %、占比 %、储蓄率、趋势曲线与扇形的形状、日期、账户名、文案。

旁人看不到「你有多少钱」,但图表与洞察仍然有意义、可分享。比例不暴露绝对财富。

功能需求(FR)

FR-116 · 一键隐私开关(双入口:nav + 常驻浮动)

  • 眼睛图标(inline SVG,Feather eye / eye-off,无 emoji,贴合晚清账册风),两处同步同一状态:
    • 顶部 nav:与「币种 / 账期 / 账户」镜头 pill 同组——利于第一次发现(隐私=又一种"显示镜头")。
    • 常驻浮动控件:fixed 固定左下角,任意滚动位置可达;移动端目录浮钮也置于左下、与隐私浮控叠成同一组操作区(目录 + 隐私相近入口)。
    • 解决长页痛点:dashboard/reports/checkup 是长页,若只放 nav,"隐藏 + 滚到底"就够不着;浮动入口保证随处一键隐藏/恢复
  • 一点 → 全站金额瞬时进入隐藏态;再点 → 还原。纯前端切换,无页面刷新、无服务端往返、离线可用。
  • 全局生效:dashboard / reports / checkup / accounts / entry / 账户详情 等所有出现金额处统一响应。

FR-117 · 遮挡对象与保留对象

  • 严格按「核心原则」:仅遮绝对金额;百分比 / 比例 / 收益率 / 趋势形状 / 日期 / 账户名 / 文案保留
  • 不遮账户名(本迭代用户选定:只遮金额)。

FR-118 · 遮挡样式:高斯模糊

  • 隐藏态下金额做高斯模糊,模糊度足以使数字不可读。
  • 隐藏态金额 不可选中/复制(user-select:none),避免绕过模糊直接拿到明文。
  • 定宽容器:模糊金额置于固定/最小宽度容器内,尽量不让"宽度"暴露数字量级(已知局限:无法 100% 消除,见「非目标/局限」)。

FR-119 · 记忆策略:每次进默认显示

  • 持久化到设备;每次打开应用默认显示明文,需要时手动点隐藏。
  • 当前会话内(同一次使用):跨页面导航、HTMX 片段刷新、币种/账期切换,隐藏态保持(会话级记忆),不会切一下就漏出来。

FR-120 · 状态指示 + 随处恢复

  • 隐藏态下:常驻浮动控件展开为醒目的「金额已隐藏 · 点恢复」浮块(eye-off 高亮)——指示 + 恢复二合一,任意滚动位置一键还原(直接解决"隐藏 + 滚到底怎么恢复")。
  • nav 眼睛同步切 eye-off 高亮。
  • 不依赖会被滚出视野的顶部提示条;浮动控件本身就是常驻指示与恢复入口。

FR-121 · 图表联动(Chart.js)

  • 隐藏态:隐藏金额 y 轴刻度 + 金额数据标签 + 金额类 tooltip;百分比数据标签、曲线/扇形形状保留
  • 切换隐私态时图表即时反映(重绘或遮罩),与 DOM 金额保持一致。

FR-122 · 截图安全(自然获得)

  • 因 DOM 渲染即为模糊态,用户截图/录屏所得也是模糊的——无需额外处理。

FR-123 · 按住临时查看(peek)

  • 隐藏态下,按住某个被遮金额 → 该数字临时显示;松开 / 手指滑走 / 滚动 / 窗口失焦 → 立即复原。只显示被按住的那一个,其余仍遮。
  • 手机长按 + 桌面按住通用(Pointer 事件);触摸时阻止长按选中与上下文菜单。
  • 比"点开保持"更安全:刻意、短暂,不会忘了关又一直露。
  • 可发现性:被遮金额在隐藏态显示「可按」光标 + 浮动控件文案提示「长按可看」。

非目标 / 已知局限

  • 非取证级:DOM 中仍存在真实数值(威胁模型 = 肩窥 / 随手截图,不是防取证、防 devtools)。这是刻意的——纯前端、瞬时、零成本。
  • 不做服务端遮挡(不改任何接口/数据)。
  • 不遮账户名(本迭代)。
  • 不持久化到设备(本迭代)。
  • 不做「默认模糊 + 逐值点开保持」交互(改用 FR-123 的按住临时查看 peek,更安全)。
  • 模糊宽度局限:高斯模糊保留字符宽度,理论上泄露一点量级;用定宽容器压低,接受残余。

验收标准

  1. 顶部一点眼睛 → 全站金额模糊、百分比/收益率/占比照常;再点 → 还原。
  2. 隐藏态下导航到 reports / checkup / accounts / entry / 账户详情,金额仍模糊(会话级保持)。
  3. 关闭浏览器重新打开 → 默认显示明文(不记忆)。
  4. 图表:隐藏态金额轴与金额标签消失、百分比标签与形状保留;切换即时一致。
  5. 隐藏态金额无法选中复制。
  6. 三币种 / 账期 / 账户筛选切换下,隐藏态保持,且不出现明文闪现。
  7. 状态指示清晰:能一眼看出当前是否处于隐私模式。
  8. 不触发任何错误兜底;不改任何接口与数据。

PRD · v0.11.4 · 报表账户表补全指标 + vs基准口径修(FR-135/136)

背景

用户在报表页发现两件事:①「第四表·账户级收益」只有 XIRR/基准/vs基准/当前价值 4 列,而我们在仪表盘加的那么多账户指标(累计损益/净投入/回撤/占比…)在这里都没有;②第一卡「家庭 XIRR · 含收入」的 vs基准 pill 显示「跑输 -243.42%」——一个比例减比例的结果,单位该是百分点(pp),且量级明显不对(头条显示 8.30%,却说跑输 243%)。

功能需求(FR)

FR-135 · 报表「第四表·账户级收益」复用管理页指标配置

  • 报表账户表读同一套 /admin/metrics(账户级)开关,渲染与仪表盘一致的可配置指标列:收益率 / 本位币年化 / 累计损益 / 累计净投入 / 本期损益 / 本期Δ / 最大回撤 / 占比 / 持有期数 / 预实 / 近况。
  • 保留报表特有列:类型 / 类目 / 基准% / vs基准。
  • 提供「显示指标」chips,可临时切列显隐;与仪表盘共享隐藏集(在一处隐藏某列,两页一致)。
  • 一处配置(管理页)驱动两页;不新增独立开关。

FR-136 · vs基准 / 预实:单位 pp + 实际取「显示的那个 XIRR」

  • 「实际 − 基准」这类比例相减的结果,单位一律「百分点 pp」(基准值本身仍用 %)。家庭卡 + 账户行 + 预实列统一。
  • diff 的「实际」侧 = 卡片/列显示的那个 XIRR 本身(<12 期为累计回报、≥12 期为年化),不再用另算的「累计损益 ÷ 净投入」(净投入极小会爆成天文数字,且与显示脱节)。
  • 基准同基对齐:≥12 期直接减年化基准;<12 期把年化基准按持有月数缩放到同窗口(短账户不被「累计实际 vs 年化预期」错判)。

验收标准

  1. 报表账户表出现管理页勾选的全部账户级指标列;在管理页增减指标 → 报表表随之增减。
  2. 「显示指标」chips 可切列;与仪表盘隐藏同一列时两页一致。
  3. 家庭卡 vs基准 pill = 头条 XIRR − 加权基准,单位 pp,量级理智(如 8.30% vs 4.61% → 跑赢 +3.69pp),不再出现 -243% / +19497pp。
  4. 账户行 vs基准 / 预实同口径、同单位 pp。
  5. 不改任何接口/数据/schema(纯显示口径修 + 前端配置化)。

PRD · v0.11.5 · 全系统比例相比口径审计 + 报表观察账期(FR-137)

背景

承接 v0.11.4:用户要求把全系统「两个比例类指标相比」的地方都核对一遍,统一成「相减 + 单位 pp」(就像家庭 XIRR vs基准)。另:报表本就是每月快照,却缺一个像仪表盘那样的「时间筛选器」,不能回看历史某个月的报表快照。

功能需求(FR)

审计口径(承 FR-136,推广到全系统)

  • 凡「两个比例相比」的结果 = 相减、单位 pp(基准/份额/进度等单一比率保持 %):
    • 配置对照「超配 / 欠配」= 当前份额 − 模板份额 → pp。
    • 财富水位「真实收益 / 相对社会收益」= 名义增长 − CPI/M2 累计 → pp(不再 Fisher 除法出「率」)。
  • 已正确(pp)的不动:vs基准、预实、体检账户基准对照、体检 RET 规则。
  • 保持 %(非相比)的:收益率 / XIRR / TWR / 占比 / 回撤 / 负债率 / 储蓄率 / 配置份额 / 风险敞口 / 目标进度 / 环比同比。

FR-137 · 报表「观察账期」筛选器

  • 报表 = 每月快照 → 顶部加 as-of 账期下拉(与仪表盘同款交互),可回看任一个已关账账期的报表快照。
  • 下拉只列 CLOSED 账期(报表就是已关账快照语义);默认锚 = 最近已关账;选历史月 → 整页(收益指标/分解/负债/风险/配置/财富水位/账户表)切到那一期。
  • 切 range / 币种 / 账户范围时保留所选账期(asof 贯穿链接)。

验收标准

  1. 报表页出现「账期」下拉,列出所有已关账月;默认选中最近已关账,页顶朱印/「数据截至」与之一致。
  2. 选更早月份 → 报表快照整体切换到该月(数据截至、负债末点、账户价值等随之变)。
  3. 切 range/币种后仍停在所选账期。
  4. 配置超配/欠配、财富水位真实/相对社会收益显示为 pp;单一比率仍为 %。
  5. 无 schema/接口破坏(asof 为可选 query 参数,缺省=最近已关账,老链接照常)。