# transfer_tool **Repository Path**: linz0212/transfer_tool ## Basic Information - **Project Name**: transfer_tool - **Description**: transfer_tool - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-31 - **Last Updated**: 2026-01-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 转账系统 ## 项目简介 一个现代化的转账管理系统,采用前后端分离架构,前端使用 Vue 3 + Element Plus,后端采用 ThinkPHP 6 框架。 --- ## 技术栈 ### 前端 - **框架**: Vue 3 (Composition API) - **UI 组件库**: Element Plus - **构建工具**: Vite - **HTTP 客户端**: Axios - **状态管理**: Pinia - **路由**: Vue Router 4 - **样式预处理**: Sass/SCSS - **包管理**: npm/yarn ### 后端 - **框架**: ThinkPHP 6 - **PHP 版本**: >= 7.1 - **数据库**: MySQL 5.7+ - **缓存**: Redis (可选) - **ORM**: ThinkPHP 数据库查询构造器 - **API 规范**: RESTful --- ## 项目结构 ``` transfer_tool/ ├── frontend/ # 前端项目 │ ├── public/ # 静态资源 │ ├── src/ │ │ ├── api/ # API 接口调用 │ │ ├── components/ # 通用组件 │ │ ├── views/ # 页面组件 │ │ ├── stores/ # Pinia 状态管理 │ │ ├── router/ # 路由配置 │ │ ├── utils/ # 工具函数 │ │ ├── styles/ # 全局样式 │ │ ├── App.vue # 根组件 │ │ └── main.ts # 入口文件 │ ├── package.json │ └── vite.config.ts │ ├── backend/ # 后端项目 │ ├── app/ │ │ ├── controller/ # 控制器 │ │ ├── model/ # 模型 │ │ ├── validate/ # 验证规则 │ │ ├── middleware/ # 中间件 │ │ └── service/ # 业务逻辑层 │ ├── config/ # 配置文件 │ ├── database/ │ │ ├── migrations/ # 数据库迁移 │ │ └── seeders/ # 数据填充 │ ├── public/ # 入口文件 │ │ └── index.php │ ├── route/ # 路由定义 │ ├── composer.json │ └── .env.example │ └── README.md ``` --- ## 快速开始 ### 前端部分 #### 1. 环境准备 ```bash # 需要 Node.js >= 14.0 node -v npm -v ``` #### 2. 安装依赖 ```bash cd frontend npm install # 或使用 yarn yarn install ``` #### 3. 启动开发服务器 ```bash npm run dev # 访问 http://localhost:5173 ``` #### 4. 生产构建 ```bash npm run build ``` ### 后端部分 #### 1. 环境准备 ```bash # 需要 PHP >= 7.1 以及相关扩展 php -v composer -v ``` #### 2. 安装依赖 ```bash cd backend composer install ``` #### 3. 环境配置 ```bash # 复制环境配置文件 cp .env.example .env # 生成应用密钥 php think key:generate ``` #### 4. 数据库配置 编辑 `.env` 文件,配置数据库连接: ```env DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=transfer_system DB_USERNAME=root DB_PASSWORD=your_password DB_PREFIX=tp_ ``` #### 5. 数据库迁移 ```bash php think migrate:run ``` #### 6. 启动开发服务器 ```bash php think serve # 访问 http://localhost:8000 ``` --- ## 前端规范 ### 目录约定 - `api/` - 所有 API 接口调用函数 - `components/` - 可复用的 Vue 组件 - `views/` - 页面级组件 - `stores/` - Pinia 状态管理模块 - `router/` - Vue Router 路由配置 - `utils/` - 工具函数和辅助函数 - `styles/` - 全局样式文件 ### 代码规范 #### Vue 单文件组件 ```vue ``` #### API 调用 ```typescript // src/api/transfer.ts import axios from 'axios' const api = axios.create({ baseURL: import.meta.env.VITE_API_URL, timeout: 5000 }) export const transferApi = { // 获取转账列表 getList(params: any) { return api.get('/transfer', { params }) }, // 创建转账 create(data: any) { return api.post('/transfer', data) }, // 获取详情 getDetail(id: string | number) { return api.get(`/transfer/${id}`) } } ``` ### 命名约定 - 组件名: PascalCase (如 `TransferForm.vue`) - 文件名: kebab-case (如 `transfer-form.vue`) - 变量/函数: camelCase (如 `getUserInfo()`) - 常量: UPPER_SNAKE_CASE (如 `MAX_RETRY_COUNT`) --- ## 后端规范 ### 目录约定 - `app/controller/` - 控制器层,处理请求和响应 - `app/model/` - 数据模型,与数据表对应 - `app/validate/` - 请求验证规则 - `app/middleware/` - 中间件 - `app/service/` - 业务逻辑层 - `config/` - 应用配置文件 - `database/migrations/` - 数据库迁移脚本 - `route/` - 路由定义文件 ### 代码规范 #### 路由定义 ```php prefix('api/v1/'); ``` #### 控制器 ```php request->param('page', 1); $limit = $this->request->param('limit', 15); $list = Transfer::paginate([ 'list_rows' => $limit, 'page' => $page ]); return json($list); } /** * 创建转账 */ public function create() { $data = $this->request->post(); // 验证 $validate = new TransferValidate(); if (!$validate->check($data)) { return json(['message' => $validate->getError()], 400); } $transfer = Transfer::create($data); return json($transfer); } /** * 获取详情 */ public function detail($id) { $transfer = Transfer::find($id); if (!$transfer) { return json(['message' => '记录不存在'], 404); } return json($transfer); } } ``` #### 数据模型 ```php 'float', 'created_at' => 'datetime', ]; } ``` #### 验证规则 ```php 'require|string', 'to_account|接收账户' => 'require|string|different:from_account', 'amount|转账金额' => 'require|float|gt:0', ]; protected $message = [ 'from_account.require' => '发送账户不能为空', 'to_account.different' => '转入账户不能与转出账户相同', 'amount.gt' => '转账金额必须大于0', ]; } ``` ### API 响应规范 ```php // 成功响应 { "code": 0, "message": "操作成功", "data": { // 数据内容 } } // 错误响应 { "code": 400, "message": "错误信息描述", "data": null } ``` --- ## 数据库设计 ### 转账表结构 ```sql CREATE TABLE `tp_transfer` ( `id` bigint unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY, `from_account` varchar(50) NOT NULL COMMENT '发送账户', `to_account` varchar(50) NOT NULL COMMENT '接收账户', `amount` decimal(10, 2) NOT NULL COMMENT '转账金额', `status` tinyint DEFAULT 0 COMMENT '状态: 0-待处理, 1-成功, 2-失败', `remark` varchar(255) COMMENT '备注', `created_at` timestamp DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, KEY `idx_from_account` (`from_account`), KEY `idx_to_account` (`to_account`), KEY `idx_status` (`status`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ``` --- ## 部署指南 ### 前端部署 1. 执行生产构建: `npm run build` 2. 将 `dist/` 目录部署到 Web 服务器 3. 配置 Web 服务器处理 Vue Router 的路由 ### 后端部署 1. 上传项目文件到服务器 2. 运行 `composer install --no-dev` 3. 配置 `.env` 文件 4. 运行数据库迁移: `php think migrate:run` 5. 配置 Web 服务器指向 `public/index.php` --- ## 常见问题 ### Q: 前端如何跨域访问后端 API? A: 在 `vite.config.ts` 中配置代理,或在后端配置 CORS 中间件。 ### Q: 如何实现用户认证? A: 建议使用 JWT Token,前端存储在 localStorage,每次请求时在 Authorization 头中携带。 ### Q: 数据库迁移失败怎么办? A: 检查 `.env` 文件的数据库配置,确保数据库存在且连接正常。 --- ## 贡献指南 1. Fork 项目 2. 创建特性分支: `git checkout -b feature/AmazingFeature` 3. 提交更改: `git commit -m 'Add AmazingFeature'` 4. 推送到分支: `git push origin feature/AmazingFeature` 5. 提交 Pull Request --- ## 许可证 本项目采用 MIT 许可证。详见 LICENSE 文件。 --- ## 联系方式 如有问题或建议,欢迎提交 Issue 或联系开发团队。