# Finance **Repository Path**: bees_huang/finance ## Basic Information - **Project Name**: Finance - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-05 - **Last Updated**: 2026-02-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 财务记账系统 基于Flask + Vue.js的前后端分离财务记账系统,用于管理部门内部的财务支出、发票管理和余额控制。 ## 项目结构 ``` ├── backend/ # 后端Flask应用 │ ├── config/ # 配置文件 │ │ ├── database.config # 数据库配置 │ │ ├── app.config # 应用配置 │ │ └── upload.config # 文件上传配置 │ ├── models/ # 数据模型 │ ├── routes/ # API路由 │ ├── app.py # 主应用文件 │ └── requirements.txt # Python依赖 ├── frontend/ # 前端Vue应用 │ ├── src/ │ │ ├── components/ # Vue组件 │ │ ├── views/ # 页面组件 │ │ ├── router/ # 路由配置 │ │ └── store/ # Vuex状态管理 │ └── package.json # Node.js依赖 ├── database_schema.sql # 数据库表结构 └── README.md # 项目说明 ``` ## 功能特性 ### 核心功能 - ✅ 用户认证和权限管理(管理员/普通用户) - ✅ 四种余额管理(余额、现金余额、小金库余额、总余额) - ✅ 按月记账周期管理 - ✅ 支出记录管理(有发票/无发票/待开发票) - ✅ 发票文件上传和管理(PDF格式) - ✅ 余额变动日志追踪 ### 界面功能 - ✅ 概览页面:余额展示、月度统计、待处理事项 - ✅ 账本页面:支出记录列表和管理 - ✅ 发票管理:文件上传、预览、下载 - ✅ 用户管理:用户列表和权限设置(管理员) - ✅ 悬浮记账按钮(概览和账本页面) ## 技术栈 ### 后端 - **Flask**: Web框架 - **SQLAlchemy**: ORM数据库操作 - **JWT**: 用户认证 - **PyMySQL**: MySQL数据库驱动 - **Werkzeug**: 文件上传处理 ### 前端 - **Vue 3**: 前端框架 - **Vue Router**: 路由管理 - **Vuex**: 状态管理 - **Element Plus**: UI组件库 - **Axios**: HTTP请求 ### 数据库 - **MySQL**: 关系型数据库 - **服务器**: 114.132.188.115 - **数据库名**: finance_accounting ## 安装和运行 ### 1. 数据库准备 数据库已创建完成,表结构已建立。如需重新创建,可执行: ```sql -- 在MySQL中执行 database_schema.sql 文件 mysql -h 114.132.188.115 -u bees -p finance_accounting < database_schema.sql ``` ### 2. 后端启动 ```bash # 进入后端目录 cd backend # 安装Python依赖 pip install -r requirements.txt # 创建上传目录 mkdir -p /upload # 启动Flask应用 python app.py ``` 后端将在 http://localhost:5000 启动 ### 3. 前端启动 ```bash # 进入前端目录 cd frontend # 安装Node.js依赖 npm install # 启动开发服务器 npm run serve ``` 前端将在 http://localhost:8080 启动 ## 配置说明 ### 数据库配置 (backend/config/database.config) ```ini [DATABASE] host = 114.132.188.115 user = bees password = Aa.810585158 database = finance_accounting port = 3306 charset = utf8mb4 ``` ### 文件上传配置 (backend/config/upload.config) ```ini [UPLOAD] upload_folder = /upload max_file_size = 10485760 allowed_extensions = pdf ``` ### 应用配置 (backend/config/app.config) ```ini [APP] secret_key = finance-accounting-secret-key-2026 jwt_secret_key = finance-accounting-jwt-secret-key-2026 debug = true ``` ## API接口 ### 认证接口 - `POST /api/auth/login` - 用户登录 - `POST /api/auth/register` - 用户注册(管理员) - `GET /api/auth/profile` - 获取用户信息 - `GET /api/auth/users` - 获取用户列表(管理员) ### 支出管理接口 - `POST /api/expense/add` - 添加支出记录 - `GET /api/expense/list` - 获取支出记录列表 - `GET /api/expense/periods` - 获取记账周期列表 - `GET /api/expense/balances` - 获取余额信息 ### 发票管理接口 - `POST /api/upload/invoice` - 上传发票文件 - `GET /api/upload/invoice/` - 下载发票文件 - `GET /api/invoice/list` - 获取发票列表 - `PUT /api/invoice/` - 更新发票信息 - `DELETE /api/invoice/` - 删除发票 ## 默认账户 系统初始化时会创建默认管理员账户: - **用户名**: admin - **密码**: admin123 - **角色**: 管理员 ## 文件存储 发票文件存储在 `/upload` 目录下,按年月组织: ``` /upload/ ├── 2026/ │ ├── 01/ │ │ ├── 20260108_120000_1_invoice.pdf │ │ └── 20260108_130000_2_receipt.pdf │ └── 02/ └── 2025/ ``` ## 权限说明 ### 管理员权限 - 查看和管理所有用户的支出记录 - 创建和管理用户账户 - 修改系统余额 - 查看所有发票文件 ### 普通用户权限 - 只能查看和创建自己的支出记录 - 只能上传和管理自己的发票 - 不能修改余额和用户信息 ## 开发说明 ### 添加新功能 1. 后端:在 `routes/` 目录添加新的路由文件 2. 前端:在 `views/` 或 `components/` 目录添加新组件 3. 数据库:如需新表,更新 `database_schema.sql` ### 部署注意事项 1. 确保 `/upload` 目录有写入权限 2. 配置文件中的密钥在生产环境应使用更安全的值 3. 数据库连接信息应根据实际环境调整 4. 前端构建后需要配置Web服务器 ## 故障排除 ### 常见问题 1. **数据库连接失败**: 检查配置文件中的数据库信息 2. **文件上传失败**: 确保上传目录存在且有写入权限 3. **前端无法访问后端**: 检查CORS配置和端口设置 4. **JWT认证失败**: 检查token是否正确设置 ### 日志查看 - 后端日志:Flask控制台输出 - 前端日志:浏览器开发者工具Console - 数据库日志:MySQL错误日志 --- *本系统基于财务记账系统规划 (Plan1) 开发完成。*