Commit Graph

11 Commits

Author SHA1 Message Date
wangxiaogang
114263e4b2 fix: 清理死代码 + 修复群组模式预算支出计算
- 清理 store 中未使用的 loading 状态(stats/budget/category/user)
- 清理 stats store 冗余类型重导出和 catch 重置逻辑
- 清理 transaction store 未使用的 currentPage
- 清理 api/group 未使用的 GroupDetail/GroupMember/getGroupDetail
- 删除无引用的 api/index.ts barrel 导出文件
- 删除后端未调用的 GET /groups/:id 群组详情路由
- 合并 stats 页面重复的 loadTabData 函数
- 修复预算页群组模式下只算个人支出(不传 group_id)
2026-06-04 21:04:59 +08:00
wangxiaogang
e764ae996e fix: 统计概览接口补充 expenseCount/incomeCount/dailyIncome 字段
- 后端 stats/overview 接口返回字段与前端 Overview 类型不一致
- 前端页面使用了 expenseCount、incomeCount、dailyIncome 但后端未返回
- 导致统计页收入标签切换时日均和笔数显示为 0
- 补充 SQL 聚合查询,返回完整字段
2026-06-04 20:41:33 +08:00
8bd4af9b9a feat: onShow静默刷新 + 群组预算双显 + TransactionItem优化
onShow 静默刷新(首次有loading,后续静默):
- budget: 添加 initialLoaded 守卫,避免首次双重请求
- profile: 添加 onShow 刷新概览/预算/账单/群组
- group-manage: 添加 onShow 刷新群组列表
- category-manage: 添加 onShow 刷新分类列表
- add: 添加 onShow 刷新分类(可能新增了分类)

群组模式预算双显:
- 服务端 GET /budget 群组模式额外返回 myAmount(本人预算)
- 客户端 Budget 类型添加 myAmount 字段
- 预算页群组模式:群组总预算卡片(只读)+ 我的预算卡片(可编辑)
- 个人模式保持原样

TransactionItem 群组模式优化:
- 主图标始终显示分类图标(不再显示创建者头像)
- 他人记录在昵称旁显示小头像(28rpx圆形)
2026-06-04 17:45:37 +08:00
e110cd5c5d fix: 全面修复 22 项问题
严重 Bug:
- NaN 金额校验绕过(add 页面 parseFloat 空字符串)
- 4 个页面补充 waitForReady(add/budget/category-manage/group-manage)
- 导出 Loading 遮罩不消失(profile exportData 缺 hideLoading)
- Store 吞掉请求错误不 re-throw(transaction/stats/budget/user)
- 分类排序 SQL 拼接改参数化查询(category PUT /sort)
- 备份接口添加管理员权限检查(backup requireAdmin)

中等问题:
- 群组加入竞态条件改为 INSERT IGNORE
- 统计页切月/切Tab添加 loadSeq 防竞态
- stats store 补全 loading 状态 + Overview 初始值补全 7 字段
- 保存成功后返回不再弹「放弃修改」确认框
- 群组管理创建/加入添加 saving 双重提交保护
- 预算页添加 onShow 刷新
- 服务端输入校验(name/color/invite_code/微信code)

UI/样式:
- 触摸目标: bell/nav-back/nav-save→88rpx, avatar-badge→64rpx, action-btn→80rpx
- :active 反馈: bell/profile-card/identity-card/id-manage/arrow/action-btn/group-btn/cat-info
- 内联样式改动态绑定(4处 spacer 使用 capsuleRight)
- FAB 文字+改用 Icon 组件
- prefers-reduced-motion 动画降级(Skeleton/profile/budget/add)
- 胶囊适配(add/category-manage/group-manage)
- CategoryIcon !important 改为 iconStyle 计算属性

文档:
- CLAUDE.md 补充 SaveSuccess/ChartWrapper 组件 + category/budget/index API
2026-06-04 17:06:02 +08:00
21f4d81959 feat: 用户信息完善 + 一起记功能
- users 表添加 nickname、avatar_url 字段
- 用户信息 API(GET/PUT /me)+ 头像上传(multer)
- 头像通过 API 路由获取(公开,不经过 auth)
- 登录接口返回用户昵称和头像
- 用户信息 Store + 个人资料编辑页面
- 我的页面和首页显示真实用户信息
- 群组表(groups、group_members)+ transactions 添加 group_id
- 群组 API(创建/加入/退出/解散)
- 交易和统计 API 支持 group_id 视图切换
- 群组客户端 Store + 身份切换
- 群组管理页面
- App 初始化群组 Store
- UPLOAD_DIR 配置化
- Node.js 备份替代 mysqldump
- 统一前端 BASE_URL(config.ts)
- uploads 加入 .gitignore
- 修复 trust proxy 警告
2026-06-03 17:50:32 +08:00
db81ad8eb2 refactor: API 请求整合与 Bug 修复
前端重构:
- 新增 api/ 目录统一管理所有 API 请求
- 所有 stores 和 pages 改为使用 api 模块
- 修复日期格式化函数,支持 Date 对象和 ISO 字符串
- 修复 TransactionItem 使用 CategoryIcon 组件
- 优化 ChartWrapper 区分 H5 和小程序环境

后端修复:
- 修复 auth 中间件 PUBLIC_PATHS 缺少 demo-login
- 修复备份工具命令注入漏洞,改用 execFile
- 修复 stats 路由 type 参数验证
- 优化分类排序为批量 SQL 更新
- 合并迁移和删除为数据库事务原子操作
- 修复交易和统计日期返回格式
- 新增自动备份功能(启动时备份)
2026-06-02 17:41:35 +08:00
36baa9a2b5 feat: v1.5 安全加固与体验优化
- 后端添加 express-rate-limit 限流(登录 10次/分钟,API 200次/分钟)
- H5 演示登录:自动获取 demo token,401 时自动重试
- 分类删除前查询关联记录数,提示用户影响范围
- 分类添加支持 8 色选择器,替代随机颜色
- 首页 overview card 改为日均+收入+笔数,避免重复显示支出
- 请求模块 401 处理优化:H5 自动刷新 token 并重试原请求
2026-06-01 17:01:19 +08:00
4737f160b7 fix: v1.4 Bug 修复与体验优化
- 修复所有日期相关逻辑使用 UTC 导致时区偏移问题
- 首页今日数据改用 stats API 聚合查询,消除 100 条上限
- 账单分页加载添加请求序号,防止并发覆盖
- 统计页 maxSingle 改为按金额排序
- 统计页 tab 切换时刷新月对比数据
- 首页 onShow 跳过首次加载,避免双重请求
- 今日卡片同时展示支出/收入,骨架屏对齐
- 账单页统一左滑删除,去掉长按
- 后端 transaction 支持 sortBy 参数
- 后端 stats overview 支持 startDate/endDate 查询
2026-05-29 17:33:24 +08:00
418d5b24f9 fix: 迁移逻辑独立执行,不依赖 schema/seed 成功
问题:runMigrations 在 try 块内,如果 seed 失败则迁移不执行
修复:将迁移逻辑移到独立的 try-catch 块,确保始终执行
添加详细日志帮助调试
2026-05-29 17:07:41 +08:00
9ef960321f fix: 启动时自动迁移缺失的数据库列
问题:旧版数据库缺少 user_id 列导致 500 错误
修复:
- init.ts 启动时自动检测并添加缺失列
- 删除 deploy/ 目录,改为手动部署
- 添加 migrate.sql 迁移脚本
- 更新 CLAUDE.md 部署说明
2026-05-29 16:46:39 +08:00
c7f29aa7a7 feat: 小菜记账 v1.0 - 完整功能实现
核心功能:
- 记账CRUD(支出/收入/分类/备注/日期)
- 统计分析(概览/分类占比/每日趋势)
- 预算管理(按月设置/进度条/超支提醒)
- 数据导出CSV

安全与认证:
- HMAC-SHA256签名token认证
- 用户数据隔离
- 输入验证与错误处理
- CORS配置

前端优化:
- 骨架屏加载
- 账单按日期分组
- 预算页面重构(快捷预设+Numpad)
- SvgIcon组件(H5+微信双端适配)
- 下拉刷新

后端优化:
- 共享日期工具函数
- 数据库连接池优化
- 健康检查端点
- 优雅关闭处理

技术栈:
- 前端:Uni-app (Vue 3 + Pinia)
- 后端:Node.js + Express + MySQL
2026-05-29 16:14:15 +08:00