feat: customize sessions and overview with faster account workflows

This commit is contained in:
陈煜 committed 2026-10-03 18:07:19 +08:00
1 parent 9a133e82e9
commit 425b45c91a
40 files changed
+1656 -335

No files matched your search

+2
View File
@@ -49,3 +49,5 @@ User.hiddenMenus 保存受枚举校验的菜单键,settings 不可隐藏;Use
2026-10-03 负债账户溢缴更新:负债账户存储正数欠款、负数溢缴;前端显示和输入取相反符号。统计将负债账户的负余额按汇率转换为正资产,正欠款计入负债,两类分别汇总。独立资产和借入借出债务仍要求非负本金,旧数据和 API 金额含义保留。详见 [溢缴更新说明](update-credit-balance-2026-10-03.md)。
2026-10-03 分组排序:User.accountGroupOrder 保存每个用户的账户分组顺序,空值沿用当前默认顺序。前端共享排序上下文,账户卡片、筛选及所有 AccountPicker 使用同一顺序;只显示当前可见分组,保存保留未出现在当前视图的既有偏好。settings 与备份使用相同分组名称和唯一性验证。新增可选 JSON 字段通过带中文注释的增量迁移应用;JSON/ZIP 空空间恢复偏好,已有空间保留当前设置。见 [更新说明](update-group-order-2026-10-03.md)。
2026-10-03 设置与交互:User.sessionHours 控制 1 至 720 小时的绝对会话有效期,requireHiddenPassword 控制隐藏项目再次验证,overviewCards 保存总览卡片键。设置、JSON/ZIP 备份和带注释的迁移同步;PUT schedules/:id 在计划锁内验证权限并更新未来安排。前端将设置分类、计划原生弹窗、可访问的右上角提示及账户卡片点选快捷转账集中提供。详见 [更新说明](update-settings-interaction-2026-10-03.md)。
+16 -1
View File
@@ -1,6 +1,6 @@
{
"tableCount": 9,
"columnCount": 89,
"columnCount": 92,
"tables": [
{
"TABLE_NAME": "exchangerate",
@@ -484,6 +484,21 @@
"TABLE_NAME": "user",
"COLUMN_NAME": "accountGroupOrder",
"COLUMN_COMMENT": "账户分组显示顺序;空值表示沿用默认顺序"
},
{
"TABLE_NAME": "user",
"COLUMN_NAME": "sessionHours",
"COLUMN_COMMENT": "登录有效时长(小时),范围 1 至 720"
},
{
"TABLE_NAME": "user",
"COLUMN_NAME": "requireHiddenPassword",
"COLUMN_COMMENT": "查看隐藏项目是否需要再次验证密码"
},
{
"TABLE_NAME": "user",
"COLUMN_NAME": "overviewCards",
"COLUMN_COMMENT": "总览显示的卡片键列表,NULL 表示默认全部显示"
}
]
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

@@ -0,0 +1,53 @@
# 2026-10-03 设置与交互更新
## 登录、隐私与显示
登录有效期可设置为 1 至 720 小时(30 天),默认 168 小时。注册、登录及修改账号密码时创建的会话都使用该设置。保存有效期后,当前会话从保存时间重新计时并更新 HttpOnly Cookie;其他已登录会话保留原到期时间。无操作自动退出为独立设置,仍优先生效,活动请求不会延长绝对到期时间。
查看隐藏项目默认需要再次验证密码;可关闭为已登录用户直接点击显示。两种方式都只解锁当前会话 5 分钟,可提前锁定。保存这个开关会锁定该用户所有会话的隐藏项目。服务端保留登录、归属和隐藏项目过滤,不接受客户端指定用户身份。
总览可选择总资产、总负债、净资产、轨迹、组成、最近变化及变化归因。默认全部显示,可全部关闭;关闭卡片不删除财务数据,布局按可见卡片调整。设置重新分为常规、显示与菜单、登录与隐私、账号与密码、图标、汇率、备份和清空。
新增 User.sessionHours、requireHiddenPassword 和 overviewCards,迁移包含中文字段注释。JSON / ZIP 备份包含这些设置,旧备份缺少字段时保留默认值;只在空财务空间恢复设置,已有空间保留当前偏好。备份不包含密码、令牌或会话记录。通过备份恢复的登录有效期用于后续登录,不重新设置导入时的会话 Cookie。
## 计划与提示
新增和修改计划使用原生弹窗,支持关闭、取消、Esc 和账户选择弹窗。修改接口 PUT /api/schedules/:id 与执行使用同一计划锁,验证账户归属、隐藏授权、资产属性、归档状态和精确金额;同币种到账必须与转出一致。修改仅影响后续执行,历史余额记录保留,已完成的一次性计划需新建。
操作成功和错误统一在右上角弹出,可关闭,成功默认 6 秒、错误 12 秒,最多保留 3 条。原生弹窗打开时提示仍可读、可关闭,并保留辅助技术的 alert / status 语义。汇率缺失等持续数据状态仍在相关内容旁显示;清空等确认流程保持明确确认。
## 京东金融图标
采用 [京东金融 App Store 正式条目](https://apps.apple.com/cn/app/id895682747) 的应用图标:金色背景、白色吉祥物和红色铜钱图案,无“京东金融”文字。资源具体地址和 SHA-256 保存在 apps/api/assets/icons/sources.json。保留固定内置 ID,已使用它的账户自动显示新版。京东金融图案中的白色主体保留,其他图标沿用原有背景处理;已验证的存储 PNG 读取时不再次去白。商标与版权归所属品牌,仅用于账户识别。
## 快速转账
开启快速记账后,右侧显示悬浮“转账”按钮。点击打开小卡片,依次点击账户卡片选择转出和转入,再输入金额确认;可重选或关闭。选中卡片高亮,两个账户必须不同且均为启用的资产账户;隐藏账户必须处于解锁可见范围。筛选分组不会限制跨组选择。退出快速记账、离开账户列表、锁定隐藏项目或退出账号会取消此选择流程。
同币种自动使用相同到账金额;跨币种单独填写实际到账金额。快捷方式按当前北京时间记录,手续费为 0、备注为空;手续费、备注和指定时间仍可通过普通“转账”入口填写。复用现有原子转账接口及唯一请求 ID,允许余额透支,记录、总览和日历使用已有规则。不同币种不会修改公共参考汇率。所有“账户间转账”按钮文字统一为“转账”。
## 文案与本位币金额
界面统一使用“隐藏资产”文案,实际隐藏范围仍包含账户、资产和债务。同本位币的卡片和详情只显示原币金额,移除重复“折合”或本位币金额;外币项目仍显示折合金额,缺汇率时明确提示。浏览器已分别检查人民币和美元账户,以及人民币账户详情。
## 验收
- 33 项单元检查通过,前后端类型检查和生产构建通过。
- 完整 15 项真实 MySQL 集成检查通过,新增覆盖登录时长上下限、Cookie 与会话到期、隐藏密码开关、跨用户隔离、卡片输入、旧 ZIP 与设置恢复、计划权限及历史保留。新增验收使用独立回环源地址,避免消耗原有测试集的每 IP 登录限流;生产限流规则保留。
- 图标最终修正后,4 项图标读取、颜色保留、转账与 OpenAPI 专项检查再次通过。
- 15 个迁移已应用,9 张表与 92 个字段的注释核验通过。
- 浏览器专用虚构账号验证卡片选择实际影响总览、计划新增与修改成功、错误提示在弹窗内可关闭、京东金融图案显示。
- 实际点击卡片完成快捷同币种转账 12.34:2000 → 1987.66,300 → 312.34;跨币种转出 7.77、到账 1.11:1987.66 → 1979.89,USD 100 → 101.11。未使用真实用户数据或执行真实资金交易。
- 桌面浏览器验收完成;已实现窄屏布局,未在真实手机上实测。临时账号、脚本和隔离 API 清理。保留用户原有 Vite 配置改动,只有本地 Git 提交,不 push。
完成时间:2026-10-03 17:54。
![登录与隐私设置](settings-privacy-2026-10-03.png)
![计划修改弹窗](schedule-dialog-2026-10-03.png)
![右上角提示](toast-2026-10-03.png)
![快速转账](quick-transfer-2026-10-03.png)
![京东金融 App 图标](jd-finance-icon-2026-10-03.png)