logo
0
0
WeChat Login

EasyCut 理发店管理系统

专注轻量化收银与会员深度运营的理发店效率工具。开单快、账目准、分析透。

项目简介

EasyCut 是一套完整的理发店管理系统解决方案,采用前后端分离架构,基于 Spring Boot + Vue 3 技术栈开发。

核心功能

  • 极简收银工作台:30秒内完成一笔结账,支持多人协作
  • 会员深度运营:充值管理、次卡维护、账户流水追踪
  • 运营数据分析:营收看板、员工业绩、数据导出
  • 权限安全管理:角色权限、操作日志

技术栈

后端

  • Spring Boot 3.1.5 (Java 17)
  • MyBatis 3.0.3
  • MySQL 8.0+
  • Redis 7.0+
  • SpringDoc OpenAPI (Swagger)

前端

  • Vue 3.4 (Composition API)
  • Vite 5.1
  • TypeScript 5.4
  • Element Plus 2.6
  • ECharts 5.5

快速开始

1. 环境准备

确保已安装:

  • JDK 17+
  • Node.js 18+
  • MySQL 8.0+
  • Redis 7.0+

2. 初始化数据库

执行 schema.sql 初始化数据库表:

mysql -u root -p < schema.sql

3. 启动后端

cd easy-cut-backend mvn spring-boot:run

后端服务启动于:http://localhost:8088/api

Swagger 文档:http://localhost:8088/api/swagger-ui.html

4. 启动前端

cd easy-cut-frontend npm install npm run dev

前端服务启动于:http://localhost:5173


功能模块

一、基础设置

服务项目管理

  • 分类管理:剪发、染发、烫发、护理等
  • 职级动态调价:同一项目关联不同发型师级别
  • 服务时长配置

员工管理

  • 员工档案:发型师、助理信息
  • 职级设置:总监、资深、高级、普通、助理
  • 在职状态管理

提成模板

  • 固定金额提成
  • 百分比提成
  • 按职级配置

二、收银工作台

快速开单

  • 点击发型师头像选择服务
  • 支持多人协作(发型师+助理)
  • 自动计算业绩分成

会员识别

  • 手机号/会员卡号快速检索
  • 自动匹配会员等级折扣
  • 实时显示余额

多渠道结算

  • 余额扣减
  • 微信/支付宝
  • 现金/POS机

三、会员管理

充值管理

  • 自定义充值金额
  • 赠送金额配置
  • 充值流水记录

次卡管理

  • 洗头10次卡等特殊消费券
  • 余量追踪
  • 到期提醒

账户流水

  • 消费历史记录
  • 余额调整日志
  • 操作审计

四、运营分析

营收看板

  • 今日总营业额
  • 实收现金流
  • 耗卡金额
  • 客数统计

员工报表

  • 客数统计
  • 业绩总额
  • 预估提成

数据导出

  • 收银流水明细(Excel)
  • 会员数据导出
  • 项目热度分析

五、权限安全

角色权限

  • 店员:收银、充值、查看个人业绩
  • 店长/老板:改价、删单、查看全店利润、导出数据

操作日志

  • 余额修改记录
  • 订单作废记录
  • 防止内部舞弊

项目结构

easy-cut/ ├── easy-cut-backend/ # 后端项目 │ ├── src/main/java/com/easycut/ │ │ ├── controller/ # 控制器 │ │ ├── service/ # 服务层 │ │ ├── mapper/ # 数据访问层 │ │ ├── entity/ # 实体类 │ │ ├── dto/ # 数据传输对象 │ │ ├── config/ # 配置类 │ │ └── EasyCutApplication.java # 启动类 │ ├── src/main/resources/ │ │ └── application.yml # 配置文件 │ ├── pom.xml # Maven 配置 │ └── Dockerfile # Docker 镜像 │ ├── easy-cut-frontend/ # 前端项目 │ ├── src/ │ │ ├── api/ # API 请求 │ │ ├── components/ # 公共组件 │ │ ├── views/ # 页面视图 │ │ ├── router/ # 路由 │ │ ├── stores/ # 状态管理 │ │ ├── utils/ # 工具 │ │ ├── App.vue # 根组件 │ │ └── main.ts # 入口 │ ├── package.json # npm 配置 │ ├── vite.config.ts # Vite 配置 │ └── Dockerfile # Docker 镜像 │ ├── docker-compose.yml # 本地开发环境 ├── schema.sql # 数据库初始化 └── README.md # 项目文档

API 文档

服务管理

接口方法描述
/api/servicesGET获取所有服务
/api/services/{id}GET获取服务详情
/api/services/priceGET获取价格

员工管理

接口方法描述
/api/staffGET获取所有员工
/api/staff/{id}GET获取员工详情
/api/staff/level/{level}GET按职级获取员工

会员管理

接口方法描述
/api/membersGET获取所有会员
/api/members/phone/{phone}GET根据手机号获取会员
/api/members/{id}/rechargePOST会员充值

订单管理

接口方法描述
/api/ordersGET获取所有订单
/api/ordersPOST创建订单
/api/orders/{id}/cancelPOST取消订单

配置说明

后端配置 (application.yml)

spring: datasource: url: jdbc:mysql://localhost:3306/easycut username: root password: your_password redis: host: localhost port: 6379 password: your_redis_password server: port: 8088

前端配置 (vite.config.ts)

export default defineConfig({ server: { port: 5173, proxy: { '/api': { target: 'http://localhost:8088', changeOrigin: true } } } })

开发指南

添加新的 API

  1. src/main/java/com/easycut/mapper/ 创建 Mapper 接口
  2. src/main/java/com/easycut/service/ 创建 Service 类
  3. src/main/java/com/easycut/controller/ 创建 Controller 类
  4. src/api/ 创建前端 API 文件

添加新的页面

  1. src/views/ 创建 Vue 组件
  2. src/router/index.ts 添加路由配置

部署

Docker 部署

# 构建镜像 docker build -t easy-cut-backend ./easy-cut-backend docker build -t easy-cut-frontend ./easy-cut-frontend # 启动服务 docker-compose up -d

Kubernetes 部署

参考 .cnb.yml 和 Kubernetes 部署配置。


许可

MIT License

About

基于vue+springboo的专注轻量化收银与会员深度运营的理发店效率工具。

Language
Vue54.4%
Java34.6%
TypeScript5.6%
Shell4.7%
Others0.7%