月月固定消费记录小助手
记录每月固定支出的微信小程序。核心逻辑:先算清必须花的钱,再看剩余可支配部分。
技术栈
原生微信小程序(WXML / WXSS / JS / JSON),微信云开发(云函数 + 云数据库,用于可选的多端同步),echarts-for-weixin 饼图,自研 canvas 2d 条形图与折线图,默认使用 wx.Storage 本地存储。
主要功能
仪表盘展示月平均固定支出、可支配收入、本月/下月支出笔数,支持饼图、条形图、折线图三种视图切换,其中条形图在分类较多时支持横向滚动。支出管理支持添加、编辑、删除固定支出,并按日/周/月/季/年/自定义周期折算。分类选择提供 11 个大类,包括住房、交通、保险、医疗健康、通讯订阅等。月度报告自动生成图片,可保存到相册或分享。数据管理支持 JSON 备份的导入/导出,以及清空本地数据。
可选开启微信云同步:在设置页打开开关后,支出记录、月收入、货币偏好等数据会自动同步到微信云开发,在手机、平板、电脑间保持一致。
实现要点
默认数据存在本地,不上传服务器,不需要登录。云同步需用户主动开启,数据按微信 OPENID 隔离存储。
所有统计统一换算成「月平均金额」,方便横向对比。报告预览直接显示最终生成的图片,避免 preview 和实际导出不一致。
同步采用客户端串行队列 + 云函数数据库事务:所有 push/pull 串行执行,避免并发冲突;pushData 云函数在事务内完成读-合-写,保证原子性。删除使用 tombstone(deleted: true + updatedAt),防止多设备同步时已删除记录复活。
导入时逐条校验字段,防止坏数据覆盖本地记录。云函数端也做输入校验与数据归一化,确保云端数据一致性。
隐私与数据
默认情况下,支出记录、月收入、货币偏好等数据仅保存在用户设备本地。开启云同步后,数据通过微信云开发的安全通道上传,并按微信用户 OPENID 隔离存储。不集成第三方统计或广告 SDK。导出/导入完全由用户主动触发。