# 社区家政服务预约平台 **Repository Path**: dm_team/Community-Home-Service-Booking-Platform ## Basic Information - **Project Name**: 社区家政服务预约平台 - **Description**: 社区家政服务预约平台 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-09 - **Last Updated**: 2026-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 社区家政服务预约平台 基于 **Spring Boot 3 + Vue 3** 的前后端分离项目,实现社区家政服务从「服务展示 → 在线预约 → 模拟支付 → 派单/抢单 → 上门服务 → 评价投诉 → 薪酬结算 → 数据统计」的全流程闭环。 ## 技术栈 | 层 | 技术 | |---|---| | 后端 | Spring Boot 3.2 / MyBatis-Plus 3.5 / Spring Security / JWT / MySQL 8 | | 前端 | Vue 3 / Vite 5 / Element Plus / Pinia / Vue Router / ECharts | | 安全 | BCrypt 密码加密、JWT 无状态认证、RBAC 方法级权限、敏感字段脱敏、上传白名单 | ## 功能清单 ### 门户(游客) - Hero 区 + 服务搜索、6 大服务分类磁贴、预约流程条、精选服务卡片、平台公告 - 服务详情:图文信息、在线服务人员(评分/从业年限)、历史评价 ### 居民端 - 在线预约下单(选地址/预约时间/优惠券抵扣)、模拟支付、取消(已支付自动退款) - 我的订单(状态筛选/详情流转时间线/去评价)、优惠券中心(领券)、我的收藏、投诉中心、消息中心、地址簿、个人中心 ### 服务人员端 - 工作台、接单大厅抢单、我的服务单(开始/完成服务)、我的收入(工资单+按单明细) - 我的排班(近 7 天可接/休息维护)、我的证书、请假申请、我的档案 ### 管理端 - 仪表盘(订单趋势/状态分布/人员绩效 TOP5/总览卡片) - 订单管理(派单/详情时间线)、服务分类与项目管理、人员档案/排班/请假审批 - 评价管理(回复)、投诉处理、优惠券管理、公告管理、工资结算(按月生成/按单明细/结算) - 字典管理、系统配置(验证码开关)、系统消息、操作日志、用户管理 ## 环境要求 | 依赖 | 版本要求 | |---|---| | JDK | 17 及以上(需配置 PATH) | | Maven | 3.8 及以上(需配置 PATH) | | Node.js | 18 及以上(含 npm,需配置 PATH) | | MySQL | 8.0(默认端口 3306,root 账号) | | 浏览器 | Chrome / Edge 均可 | ## 快速启动 ### 1. 初始化数据库 ```powershell # 将下面的"你的密码"替换为本地 MySQL root 密码 mysql --host=127.0.0.1 --port=3306 --user=root --password=你的密码 --default-character-set=utf8mb4 < init.sql ``` > 脚本会自动建库 `community_service`(29 张表 + 演示数据 + 权限树),可重复执行(先 DROP 再重建)。 > 注意必须加 `--default-character-set=utf8mb4`,否则中文演示数据会报 `Invalid default value` 或乱码。 ### 2. 一键启动(推荐) **双击 `backend\start_all.bat`**,脚本会自动完成: - 首次运行自动 `mvn clean package` 编译后端(需数分钟,之后跳过) - 首次运行自动 `npm install` 安装前端依赖(之后跳过) - 启动后端(8080,最小化窗口)与前端(5173,最小化窗口) ### 3. 手动启动(可选,两种后端启动方式任选) ```powershell # ① 启动后端(8080)—— 方式 A:mvn 开发模式(无需打 jar,改代码即时生效) cd backend mvn spring-boot:run # ① 启动后端(8080)—— 方式 B:jar 部署模式(先打包再运行,启动最快) cd backend mvn clean package -DskipTests java -jar target\community-service-backend.jar # ② 另开终端启动前端(5173) cd frontend npm install # 首次需要 npm run dev ``` ### 4. 访问系统 浏览器打开 **http://localhost:5173**(前端 5173 已代理后端 8080,无需关心后端地址)。 ## 演示账号(密码统一 123456) | 角色 | 账号 | |---|---| | 管理员 | admin | | 居民 | resident01 ~ resident05 | | 服务人员 | worker01 ~ worker05 | > 登录页默认开启验证码(图片点击可刷新)。验证码可在「系统管理 → 系统配置」中通过 `workstudy.captcha.enabled` 开关关闭,**改库后需重启后端生效**(配置启动时缓存)。 ## 目录结构 ``` init.sql # 数据库初始化脚本(29 张表 + 演示数据 + 权限树,一把梭) backend/ # Spring Boot 后端 └─ start_all.bat # 一键启动脚本(编译+后端+前端) └─ target/ # 构建产物(jar,自动生成,勿提交) └─ src/ # 源码 └─ tools/ # 开发辅助脚本(数据生成/测试) frontend/ # Vue3 前端 └─ src/views/ # 按 portal/resident/worker/admin 分端 └─ node_modules/ # 依赖(npm install 自动生成,勿提交) └─ scripts/ # 自动化测试脚本(Playwright) 系统截图/ # 系统运行截图 README.md # 本文档 ``` ## 常见问题 | 问题 | 解决 | |---|---| | 启动后访问 5173 白屏 | 前端依赖未装,执行 `cd frontend && npm install` | | 后端启动报端口被占用 | 8080 已被占用,先关闭旧 Java 进程再启动 | | 导入 init.sql 报中文默认值错误 | 补上 `--default-character-set=utf8mb4` 参数 | | 登录提示"请输入验证码" | 默认开启验证码,按图输入即可;或到系统配置关闭后重启后端 | | 控制台中文乱码 | 仅显示问题,数据本身正常,不影响使用 | | 浏览器页面接口 500 | 确认 MySQL 已启动且已执行 init.sql、后端日志无异常 |