rosercode 65c0d8c550 feat: 新增标签体系、微信账单导入与收支记录体验优化
- 标签:新增 t_tag / t_transaction_tag 表与标签 CRUD,支持交易打标签、按标签筛选、批量添加/移除标签、导入账单默认标签,新增标签管理页
- 账单导入:新增微信支付 xlsx 解析器(WechatBillParser),支持支付宝 / 微信按类型导入;解析行保存原始完整数据(raw_data)并可在列表查看
- 收支记录:排序移至顶部并改为服务端排序(交易时间 / 金额,记忆偏好);筛选条件收纳为「更多筛选」弹层;分类筛选显示图标;一键设置支持「计入统计」;导入预览支持关键字 / 类型 / 状态 / 金额筛选
- 数据库:init.sql 新增 raw_data 字段与标签表,新增 init_tags.sql 默认标签种子
- 其他:更新 README 测试账号
2026-09-17 16:47:26 +08:00
2026-08-30 14:36:22 +08:00
2026-08-30 14:36:22 +08:00
2026-08-30 14:36:22 +08:00

收支管理系统

个人收支管理系统,支持收入/支出记录管理、分类管理、月度统计与图表展示。

技术栈

层级 技术
后端 Spring Boot 3.3.6 + Java 21 + MyBatis-Plus + MySQL
前端 Vue 3 + TypeScript + Vite + Naive UI + ECharts
构建 Gradle 8.13 (后端) / npm (前端)
认证 JWT
API 文档 Knife4j (OpenAPI 3)
JDK 版本 21.0.12.1 (Temurin LTS)
Node.js 版本 v24.0.0

前置条件

  • JDK 21.0.12.1 Temurin LTS,安装在 D:\venv\jdk-21
  • Node.js v24.0.0

数据库初始化

首次运行前需建表,执行 src/main/resources/sql/init.sql,或运行 Python 脚本:

pip install pymysql bcrypt
python init_db.py
python generate_test_data.py

启动后端

cd my-app
set JAVA_HOME=D:\venv\jdk-21
gradlew.bat bootRun

启动前端

cd my-app/frontend
npm run dev

打包

将项目源代码打包为 tar.gz(不含构建产物和 node_modules):

gradlew.bat archive

输出文件:build/distributions/finance-app-0.0.1-SNAPSHOT-{时间戳}.tar.gz

测试账号

用户名 密码
demo 123456

项目结构

my-app/
├── build.gradle
├── src/main/java/com/example/myapp/
│   ├── controller/        # 接口层
│   ├── service/           # 业务层
│   ├── mapper/            # 数据访问层
│   ├── entity/            # 实体类
│   ├── dto/               # 请求对象
│   ├── vo/                # 响应对象
│   ├── config/            # 配置类
│   ├── common/            # 公共类
│   ├── interceptor/       # 拦截器
│   └── util/              # 工具类
├── src/main/resources/
│   ├── application.yml
│   ├── mapper/
│   └── sql/init.sql
└── frontend/              # Vue 3 前端
    └── src/
        ├── api/           # API 请求封装
        ├── router/        # 路由配置
        ├── store/         # 状态管理
        └── views/         # 页面组件
S
Description
No description provided
Readme
1.3 MiB
Languages
Java 62%
Vue 26.2%
TypeScript 10.8%
Go Template 0.9%