Commit Graph

37 Commits

Author SHA1 Message Date
clz
65ea2fa477 refactor(web): unify bills as UIBill, remove BillRecord 2026-01-18 21:14:54 +08:00
clz
c61691249f fix(web): 修复弹窗裁切/宽度与日期选择器 2026-01-18 20:17:48 +08:00
clz
f5afb0c135 feat: 支持账单编辑(PATCH /api/bills/:id) 2026-01-18 20:17:19 +08:00
CHE LIANG ZHAO
339b8afe98 fix(webhook): harden security and reliability
- Require non-default WEBHOOK_SECRET\n- Strict main/master ref matching\n- Constant-time HMAC signature check\n- Limit request body and add server timeouts\n- Single-flight deploy lock; pass ref/commit to deploy.sh\n- deploy.sh deploys correct branch (main/master)
2026-01-16 14:06:10 +08:00
CHE LIANG ZHAO
3b7c1cd82b chore(release): v1.0.7
- README/CHANGELOG: add v1.0.7 entry\n- Server: JWT expiry validated server-side (401 codes)\n- Web: logout/redirect on 401; proxy forwards Authorization\n- Server: bill service uses repository consistently
2026-01-16 11:15:05 +08:00
CHE LIANG ZHAO
ad6a6d44ea fix(web, server): 修复数据分析页面总支出和大盘数据错误
- 数据分析页面改为使用后端返回的聚合统计,而不是前端计算
- 移除后端 page_size 最大 100 的限制,允许获取更多数据
- 确保账单管理和数据分析页面使用相同的数据源,保证一致性
- 更新版本号至 1.0.6
2026-01-14 15:52:02 +08:00
CHE LIANG ZHAO
53d6b32856 fix: 更新正确的mockdata 2026-01-14 14:54:47 +08:00
CHE LIANG ZHAO
4805f94126 fix(server, webhook): 添加 MongoDB 数据持久化和上传前去重功能
- 优化支付宝时间格式解析(支持无前导零格式)
- 修复 webhook 服务编译错误
- 更新版本号至 1.0.5
2026-01-14 14:53:50 +08:00
CHE LIANG ZHAO
05ab270677 feat: 添加 Gitea webhook 自动部署功能
- 新增独立的 webhook 服务 (Go, 端口 9000)
- HMAC-SHA256 签名验证
- 零停机热更新部署
- 自动清理旧镜像
- 完整配置文档 WEBHOOK_SETUP.md
- 精简 README 版本历史为表格形式
2026-01-13 14:37:01 +08:00
CHE LIANG ZHAO
471bdeaf6b docs: 更新 README 版本历史 2026-01-13 13:31:28 +08:00
CHE LIANG ZHAO
d931606b3c chore: 更新版本号到 1.0.3,添加 CHANGELOG 2026-01-13 13:29:44 +08:00
CHE LIANG ZHAO
6580a434ee feat(web): 新增 DateTimePicker 组件,优化手动添加账单表单
- 使用 shadcn-ui 的 Calendar + Popover 替换原生 datetime-local
- 根据收支类型动态切换分类选项(支出/收入分类)
- 切换收支类型时自动清空已选分类
- 收入模式下隐藏支付方式和交易状态输入框
- 调整表单布局为 1:1 两列
2026-01-13 13:23:06 +08:00
0e41bbdf59 fix: 修复docker volume映射路径与配置不一致导致上传文件无法持久化的问题 2026-01-11 22:18:55 +08:00
682e81f31b Update .gitignore and remove executable file 2026-01-11 22:15:53 +08:00
8a9de1b328 fix: 修复账单时间显示为UTC时区问题,改为本地时间
- 新增 LocalTime 自定义类型,JSON序列化输出本地时间格式
- 修改 CleanedBill.Time 字段类型为 LocalTime
- 更新 parseTime 函数返回 LocalTime 类型
- 前端添加 formatDateTime 工具函数(兼容处理)
- 版本号更新至 1.0.2
2026-01-11 21:40:27 +08:00
clz
d49d9afb3a fix: 修复智能复核页面空数据显示错误,更新版本至 1.0.1 2026-01-11 20:14:27 +08:00
clz
c74a430ab8 docs: 更新 README 文档
- 添加版本徽章 (1.0.0)
- 补充完整 API 文档(认证、账单查询、统计等)
- 添加认证相关环境变量说明
- 更新路线图,标记已完成功能
- 更新项目结构,添加登录页和状态管理
2026-01-11 19:53:55 +08:00
clz
c242694d9b feat: 优化配置和文件上传
- 上传文件名添加唯一ID避免覆盖
- 支持通过环境变量配置 JWT 密钥和 Token 过期时间
- 支持通过环境变量覆盖管理员账号(可选)
2026-01-11 19:11:47 +08:00
clz
fb5b46f90c chore: 调整 Token 过期时间为 1 小时 2026-01-11 18:58:34 +08:00
clz
c397e4fb88 chore: 更新版本号至 1.0.0 2026-01-11 18:57:37 +08:00
clz
829b3445bc feat: 添加用户登录认证功能
- 新增登录页面(使用 shadcn-svelte 组件)
- 后端添加 JWT 认证 API (/api/auth/login, /api/auth/validate)
- 用户账号通过 server/config.yaml 配置
- 前端路由保护(未登录跳转登录页)
- 侧边栏显示当前用户信息
- 支持退出登录功能
2026-01-11 18:50:01 +08:00
clz
4884993d27 feat: 改进智能复核页面,显示所有待复核数据 2026-01-10 21:24:44 +08:00
clz
6374f55aa1 feat: 添加 /api/review-stats 端点和仪表盘实时数据集成 2026-01-10 21:18:38 +08:00
clz
06f6c847d8 feat: 手动账单输入功能及时区修复
- 新增手动账单输入功能
  - 创建 ManualBillInput 组件,支持批量添加账单
  - 添加服务器端 API /api/bills/manual 处理手动账单创建
  - 支持时间选择器,默认当前时间
  - 交易对方字段设为可选
  - 实时显示待提交账单列表
  - 提交成功后显示成功/失败/重复统计

- 修复时区问题
  - 后端使用 time.ParseInLocation 解析本地时间,避免 UTC 时区错误
  - 确保手动输入的时间按本地时区正确存储

- UI 优化
  - 账单管理页面添加标签页切换(列表/手动添加)
  - 主页添加快捷按钮跳转至手动添加页面
  - 手动账单来源正确显示为"手动输入"
  - 使用 shadcn-svelte 组件统一 UI 风格
  - 提交成功后保持日期筛选并重新加载数据
2026-01-10 20:48:24 +08:00
clz
99aaa05338 feat: 每日趋势图使用全部数据,不受日期筛选控制 2026-01-10 20:01:26 +08:00
eb76c3a8dc fix: 修复微信账单金额解析问题(半角¥符号支持)
- 修复 parse_amount 函数同时支持全角¥和半角¥
- 新增 MonthRangePicker 日期选择组件
- 新增 /api/monthly-stats 接口获取月度统计
- 分析页面月度趋势使用全量数据
- 新增健康检查路由
2026-01-10 19:21:24 +08:00
9247e1ec7f fix: 优化分析页时间范围筛选器默认值逻辑
- DateRangePicker 组件默认值逻辑调整,支持父组件传递的初始值
- 分析页 startDate/endDate 初始化为本月范围,修复首次加载显示不正确问题
- DailyTrendChart 日期解析逻辑优化,兼容多种格式
- bills页与后端聚合统计相关逻辑微调
- 后端账单服务相关处理细节优化
2026-01-10 16:50:04 +08:00
6d33132a4a fix: 修复前后端时区问题和日期范围选择器性能
- 前端时区修复:统一使用本地时区格式化日期
- 日期范围选择器优化:使用 untrack 避免循环更新
- 后端时区修复:使用 time.ParseInLocation 指定本地时区
- 其他优化:修复分页逻辑
2026-01-10 01:55:45 +08:00
48332efce4 fix: 修复日期范围选择器时区和性能问题
- 修复时区问题:使用本地时区格式化日期,避免 toISOString() 导致的日期偏移
- 优化日期范围选择器性能:使用 untrack 避免循环更新
- 统一日期格式化方法:在 utils.ts 中添加 formatLocalDate 工具函数
- 修复分页逻辑:优化页码计算和显示
- 更新相关页面:bills 和 analysis 页面使用统一的日期格式化方法
2026-01-10 01:51:18 +08:00
087ae027cc feat: 完善项目架构并增强分析页面功能
- 新增项目文档和 Docker 配置
  - 添加 README.md 和 TODO.md 项目文档
  - 为各服务添加 Dockerfile 和 docker-compose 配置

- 重构后端架构
  - 新增 adapter 层(HTTP/Python 适配器)
  - 新增 repository 层(数据访问抽象)
  - 新增 router 模块统一管理路由
  - 新增账单处理 handler

- 扩展前端 UI 组件库
  - 新增 Calendar、DateRangePicker、Drawer、Popover 等组件
  - 集成 shadcn-svelte 组件库

- 增强分析页面功能
  - 添加时间范围筛选器(支持本月默认值)
  - 修复 DateRangePicker 默认值显示问题
  - 优化数据获取和展示逻辑

- 完善分析器服务
  - 新增 FastAPI 服务接口
  - 改进账单清理器实现
2026-01-10 01:23:36 +08:00
CHE LIANG ZHAO
94f8ea12e6 chore: 添加 mongo 目录到 gitignore 2026-01-09 19:05:41 +08:00
CHE LIANG ZHAO
c1ffe2e822 feat: server connect mongo 2026-01-08 23:42:01 +08:00
CHE LIANG ZHAO
ccd2d0386a feat(analysis): 趋势图增加本周选项、线性图简化为总金额曲线
- 添加本周时间范围选项
- 线性图模式只显示总支出曲线,不再显示分类曲线
- 图例根据图表类型动态切换(堆叠图显示分类,线性图显示总支出)
- 时间范围选项:7天、本周、30天、本月、3个月、本年
2026-01-08 11:33:30 +08:00
CHE LIANG ZHAO
b226c85fa7 feat(analysis): 添加账单详情查看和编辑功能
- BillRecordsTable: 新增点击行查看详情弹窗,支持编辑模式
- CategoryRanking: 分类支出表格支持点击查看/编辑账单详情
- DailyTrendChart: 每日趋势表格支持点击查看/编辑账单详情
- TopExpenses: Top10支出支持点击查看/编辑,前三名高亮显示
- OverviewCards/MonthlyTrend: 添加卡片hover效果
- 新增 categories.ts: 集中管理账单分类数据
- 分类下拉按使用频率排序
2026-01-08 10:48:11 +08:00
clz
9d409d6a93 feat(analysis): 增强图表交互功能
- 分类支出排行: 饼图支持点击类别切换显示/隐藏,百分比动态重新计算
- 每日支出趋势: 图例支持点击切换类别显示,隐藏类别不参与堆叠计算
- Dialog列表: 添加列排序功能(时间/商家/描述/金额)
- Dialog列表: 添加分页功能,每页10条(分类)/8条(每日)
- 饼图hover效果: 扇形放大、阴影增强、中心显示详情
2026-01-08 02:55:54 +08:00
clz
c40a118a3d refactor: 重构项目结构
- 将 Python 代码移至 analyzer/ 目录(含 venv)
- 拆分 Go 服务器代码为模块化结构:
  - config/: 配置加载
  - model/: 请求/响应模型
  - service/: 业务逻辑
  - handler/: API处理器
- 添加 .gitignore 文件
- 删除旧的独立脚本文件
2026-01-07 23:26:32 +08:00
CHE LIANG ZHAO
b15922a027 first commit 2026-01-07 18:14:53 +08:00