feat: 新增记账系统(收支记录、报销跟踪、月度汇总)

This commit is contained in:
root
2026-10-16 10:40:25 +08:00
parent 337b005d52
commit 838753a058
8 changed files with 672 additions and 9 deletions
+24 -1
View File
@@ -1,6 +1,6 @@
# 实习工作日志系统 设计方案
- 版本:v1.10(Electron 桌面应用)
- 版本:v1.11(记账系统)
- 范围:个人版全量功能;团队版仅作扩展预留
## 1. 产品定位
@@ -154,6 +154,15 @@ AI 润色为可选进阶:将统计、成果、周记交给大模型按四段
| 账号管理 | 设置页可修改登录密码、删除用户(连同其全部数据,二次确认) |
| 旧数据迁移 | 首次创建用户时可勾选迁移升级前单机数据,迁移仅复制、原库保留兜底 |
### 3.12 记账系统
| 项 | 说明 |
|---|---|
| 录入 | 支出/收入两类型;金额以「分」为整数存储避免浮点误差;日期、分类(支出:餐饮/交通/住房/通讯/学习/娱乐/其他;收入:工资/报销/其他,固定枚举)、备注 |
| 报销跟踪 | 支出可标记「需要报销」并跟踪待报销/已报销状态,面向出差垫付场景;汇总卡片显示待报销金额 |
| 汇总 | 按月展示收入、支出、结余、待报销四卡片;支出分类分布条形图 |
| 明细 | 月度流水表格,类型与报销状态筛选,支持弹窗编辑、删除确认、标记已报销 |
## 4. 数据模型(SQLite)
### 4.1 建表语句
@@ -232,6 +241,19 @@ CREATE TABLE credential (
updated_at TEXT NOT NULL
);
-- 记账流水(amount 单位为分)
CREATE TABLE transaction (
id INTEGER PRIMARY KEY AUTOINCREMENT,
type TEXT NOT NULL,
category TEXT NOT NULL,
amount INTEGER NOT NULL,
date TEXT NOT NULL,
note TEXT,
reimbursable INTEGER NOT NULL DEFAULT 0,
reimbursed INTEGER NOT NULL DEFAULT 0,
created_at TEXT NOT NULL
);
-- 设置
CREATE TABLE setting (
key TEXT PRIMARY KEY,
@@ -482,3 +504,4 @@ src/
- v1.8:新增用户系统——每位用户独立 IndexedDB 数据库物理隔离数据;登录密码仅存 PBKDF2 哈希;会话存 sessionStorage 并支持 30 分钟无操作自动退出;设置页支持修改登录密码与删除用户;首次创建用户可一键迁移升级前单机数据(原库保留兜底)
- v1.9:PWA 应用化——新增 Web 应用清单、Service Worker 离线缓存与自绘应用图标;在 Edge/Chrome 中可一键安装为独立窗口应用(桌面图标、开始菜单入口),离线可用,数据随浏览器配置文件存储
- v1.10:Electron 桌面应用——pnpm dist 一键产出 NSIS 安装包与免安装目录;主进程加载本地构建产物,数据存于系统用户目录;窗口禁用菜单栏、外部链接交由系统浏览器打开
- v1.11:新增记账系统——支出/收入录入(金额以分存储)、固定分类枚举、报销跟踪(待报销/已报销与待报销金额汇总)、月度汇总卡片与支出分类分布、月度流水筛选与弹窗编辑;备份格式升级至 v3 并向下兼容