# 手机维修 **Repository Path**: zmd1992/phonefix ## Basic Information - **Project Name**: 手机维修 - **Description**: 基于 Spring Boot 2.7 + Vue 3 + Element Plus 的全栈手机维修店后台管理系统,覆盖维修接单、配件库存、二手销售、财务核算等核心业务场景。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-17 - **Last Updated**: 2026-06-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PhoneFix 手机维修后台管理系统 基于 **Spring Boot 2.7 + Vue 3 + Element Plus** 的全栈手机维修店后台管理系统,覆盖维修接单、配件库存、二手销售、财务核算等核心业务场景。 ## 技术栈 | 层级 | 技术 | 版本 | |---|---|---| | 后端框架 | Spring Boot | 2.7.18 | | ORM | MyBatis-Plus | 3.5.5 | | 数据库 | MySQL | 8.x | | 缓存 | Redis | 6.x / 7.x | | 前端框架 | Vue 3 (Composition API) | ^3.4.21 | | 构建工具 | Vite | ^5.1.6 | | UI 组件库 | Element Plus | ^2.6.1 | | 状态管理 | Pinia | ^2.1.7 | | 图表 | ECharts 5 | ^5.5.0 | | HTTP 客户端 | Axios | ^1.6.7 | ## 功能模块 ### 仪表盘 - 今日营收、今日利润、待维修数量、库存预警等核心指标 - 近7日收入趋势折线图 - 维修状态分布饼图 - 库存预警列表 & 最近维修订单列表 ### 维修管理 - 维修工单:创建、编辑、删除(软删除)、分页查询 - 工单状态流转:待取件 → 维修中 → 待取机 → 已取机 - 客户管理:客户信息增删改查 ### 配件管理 - 配件分类:支持树形多级分类 - 配件档案:名称、型号、进价、售价、库存数量 - 库存预警:低于安全库存自动标记 - 供应商管理:供应商信息维护 ### 出入库管理 - 入库单:从供应商采购配件,记录明细 - 出库单:维修领用、销售出货、报损等,记录明细 - 实时更新配件库存 ### 销售管理 - 二手手机/平板产品发布与管理 - 销售订单创建、付款、取消 - 订单明细管理 ### 财务管理 - 收入记录:维修收入、销售收入等 - 支出记录:采购支出、日常支出等 - 报表统计:今日 / 本周 / 本月 / 自定义时段 - 收入趋势图 & 利润趋势图 ## 项目截图 ![输入图片说明](https://portalback.springautumncome.asia/files/33e42f57678e4dd8aaa09a43605495fd.png)![输入图片说明](https://portalback.springautumncome.asia/files/fe12d1733b4c4199bfbb3361eb4055cd.png)![输入图片说明](https://portalback.springautumncome.asia/files/db05717a58de41c2aee38b9074f37ce5.png)![输入图片说明](https://portalback.springautumncome.asia/files/b25359b1ea894f4f991b6b1c219b0f06.png)![输入图片说明](https://portalback.springautumncome.asia/files/5778929668e647bf95ced209526eaacf.png)![输入图片说明](https://portalback.springautumncome.asia/files/f33d1e0476a04321bb874dcb1b7bc76f.png)![输入图片说明](https://portalback.springautumncome.asia/files/bac39e0b8e0047dfaf55e2d3b46d5bd4.png)![输入图片说明](https://portalback.springautumncome.asia/files/c69e76060b8f4645a4f102b81e95d301.png)![输入图片说明](https://portalback.springautumncome.asia/files/3fcfdcbf8cc446e383f56d67bd3fdb28.png)![输入图片说明](https://portalback.springautumncome.asia/files/2f866c681d2b4fc7a394b5227e8299c8.png)![输入图片说明](https://portalback.springautumncome.asia/files/aeec42036f454194bb75a78b6bbafda4.png)![输入图片说明](https://portalback.springautumncome.asia/files/f997d06e8d244b48bd430bcb5e5184ff.png)![输入图片说明](https://portalback.springautumncome.asia/files/ac06330d50c84a90a39abab6fc4708d6.png)![输入图片说明](https://portalback.springautumncome.asia/files/8a096c63edfb44ada2ef85d6d6d2c19b.png)![输入图片说明](https://portalback.springautumncome.asia/files/291d0c4265ec49349bf7152bc3ce20e2.png)![输入图片说明](https://portalback.springautumncome.asia/files/c8234a84bc754d068b6f975c4334412c.png) ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ - MySQL 8.0+ - Redis 6.0+ - Node.js 18+ - npm / pnpm ### 1. 数据库初始化 ```sql -- 创建数据库 CREATE DATABASE IF NOT EXISTS phonefix DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- 导入表结构和种子数据 source sql/init.sql; ``` 默认种子数据包含: - 管理员账号:`admin` / `admin123` - 8 个配件分类、3 个供应商、10 个配件样品 - 5 个客户、5 个二手产品、4 条维修订单 - 4 条收入记录、4 条支出记录 ### 2. 后端启动 ```bash cd phonefix-admin # 修改 application.yml 中的数据库和 Redis 连接配置 # 然后启动 mvn spring-boot:run ``` 后端默认运行在 `http://localhost:8080/api` ### 3. 前端启动 ```bash cd phonefix-web npm install npm run dev ``` 前端默认运行在 `http://localhost:3000`,已配置代理转发 `/api` 请求到后端。 ### 4. 访问系统 打开浏览器访问 `http://localhost:3000`,使用 `admin` / `admin123` 登录。 ## 项目结构 ``` phonefix/ ├── phonefix-admin/ # 后端(Spring Boot) │ ├── src/main/java/com/phonefix/ │ │ ├── common/ # 通用工具(Result 统一响应) │ │ ├── config/ # 配置类(MyBatis-Plus、Redis) │ │ ├── controller/ # API 控制器 │ │ ├── entity/ # 数据实体 │ │ ├── mapper/ # MyBatis-Plus Mapper │ │ └── service/ # 通用 Service 层 │ └── src/main/resources/ │ └── application.yml # 应用配置 ├── phonefix-web/ # 前端(Vue 3) │ └── src/ │ ├── api/ # API 接口封装 │ ├── router/ # 路由配置 │ ├── views/ # 页面组件 │ │ ├── dashboard/ # 仪表盘 │ │ ├── repair/ # 维修管理 │ │ ├── part/ # 配件管理 │ │ ├── sales/ # 销售管理 │ │ └── finance/ # 财务管理 │ ├── utils/ # 工具函数 │ └── assets/ # 静态资源 └── sql/ └── init.sql # 数据库初始化脚本 ``` ## API 概览 所有接口前缀:`/api` | 模块 | 方法 | 路径 | 说明 | |---|---|---|---| | 系统 | POST | `/system/login` | 登录 | | 系统 | GET | `/system/user/info` | 获取当前用户 | | 系统 | POST | `/system/logout` | 登出 | | 维修 | GET | `/repair/page` | 维修工单分页 | | 维修 | POST | `/repair` | 创建工单 | | 维修 | PUT | `/repair/{id}/status` | 更新工单状态 | | 维修 | DELETE | `/repair/{id}` | 删除工单 | | 客户 | GET | `/repair/customer/page` | 客户分页 | | 客户 | POST/PUT/DELETE | `/repair/customer[/{id}]` | 客户增删改 | | 配件 | GET | `/part/page` | 配件分页 | | 配件 | GET | `/part/stock/alarm` | 库存预警 | | 配件分类 | POST/PUT/DELETE | `/part/category[/{id}]` | 分类增删改 | | 供应商 | POST/PUT/DELETE | `/supplier[/{id}]` | 供应商增删改 | | 销售 | GET | `/sales/page` | 销售订单分页 | | 销售 | PUT | `/sales/{id}/pay` | 标记付款 | | 销售 | PUT | `/sales/{id}/cancel` | 取消订单 | | 财务 | GET | `/finance/report` | 财务报表 | | 财务 | GET | `/finance/chart/income` | 收入趋势图 | | 财务 | GET | `/finance/chart/profit` | 利润趋势图 | | 仪表盘 | GET | `/dashboard/summary` | 核心指标汇总 | ## 开发命令 ### 前端 ```bash npm run dev # 开发模式(热更新,端口 3000) npm run build # 生产构建 npm run preview # 预览生产构建 ``` ### 后端 ```bash mvn spring-boot:run # 启动开发服务器 mvn clean package -DskipTests # 打包 java -jar target/phonefix-admin-1.0.0.jar # 运行 jar ``` ## 相关说明 - 认证方式:Token 认证,登录后 token 存储于 Redis,有效期 24 小时 - 密码加密:MD5(Hutool),生产环境建议替换为 BCrypt - 数据删除:统一使用逻辑删除(软删除),`deleted` 字段标记 - 响应格式:统一返回 `{ code, msg, data }` 结构