后端 (Laravel 10 + Sanctum): - RBAC 四层权限系统 (users→roles→permissions→menus) - 门店隔离中间件 (BelongsToStore Trait + StoreIsolation Middleware) - 操作日志中间件 (自动记录写操作) - 权限检查中间件 (CheckPermission) - 16张数据库表迁移 (系统基础+RBAC+字典+配置) - 11个 Eloquent Model - Auth API (登录/登出/用户信息) - 系统设置模块 CRUD (门店/部门/职务/用户/角色/菜单/权限/字典/日志) - 45条 RESTful API 路由 - InitSeeder 初始数据 (超管/角色/76权限/31菜单) 前端 (Vue 3 + Element Plus + Vite): - Axios 请求封装 + Token 注入 - Pinia 状态管理 (user + permission store) - 动态路由 (服务端菜单→前端路由自动生成) - 后台布局 (侧边栏+顶栏+主内容区) - 登录页 + 仪表盘首页 - 系统设置 7 个 CRUD 页面 技术方案文档 (7卷): - 技术总览/数据库设计/API规范/RBAC设计/模块详设/小程序设计/部署方案
200 lines
10 KiB
Markdown
200 lines
10 KiB
Markdown
# 宫中有喜 — 技术方案总览
|
||
|
||
## 一、项目概述
|
||
|
||
| 项 | 值 |
|
||
|---|---|
|
||
| 项目名称 | 宫中有喜月子会所综合管理系统 |
|
||
| 系统类型 | 多门店 SaaS 管理平台 + 客户端小程序 |
|
||
| 后端 | PHP 8.1+ / Laravel 10 |
|
||
| 数据库 | MySQL 8.0 |
|
||
| 前端(后台) | Vue 3 + Element Plus(SPA,自适应) |
|
||
| 前端(客户端) | 微信小程序(uni-app,可复用 Vue 组件) |
|
||
| API 风格 | RESTful JSON,统一前缀 `/api/v1/` |
|
||
| 部署 | Nginx + PHP-FPM / Docker Compose |
|
||
|
||
## 二、框架选型理由
|
||
|
||
### 后端:Laravel 10
|
||
- **Eloquent ORM**:模型关联、软删除、Scope 过滤(门店隔离天然支持)
|
||
- **中间件体系**:RBAC 权限、门店隔离、操作日志 一站式拦截
|
||
- **队列 & 事件**:短信、推送、异步报表 开箱即用
|
||
- **Sanctum**:后台 SPA token + 小程序 API token 双模认证
|
||
- **Migration & Seeder**:数据库版本控制,多人协作无冲突
|
||
- **生态成熟**:社区、文档、第三方包(Excel 导出、PDF、微信SDK)齐全
|
||
|
||
### 前端:Vue 3 + Element Plus
|
||
- 与 Laravel 前后分离配合成熟
|
||
- Element Plus 提供完整后台组件(表格、表单、日历、审批流)
|
||
- 响应式布局满足 Web + Mobile 自适应需求
|
||
|
||
### 客户端:uni-app
|
||
- 一套代码编译微信小程序 + H5
|
||
- Vue 3 语法,与后台前端技术栈统一,降低学习成本
|
||
- 丰富的插件市场(微信支付、地图、视频播放等)
|
||
|
||
## 三、系统架构图
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────┐
|
||
│ 客户端 │
|
||
│ ┌──────────────┐ ┌──────────────────────────┐ │
|
||
│ │ 微信小程序 │ │ 后台管理 SPA (Vue3) │ │
|
||
│ │ (uni-app) │ │ Element Plus │ │
|
||
│ └──────┬───────┘ └───────────┬──────────────┘ │
|
||
└─────────┼──────────────────────┼────────────────┘
|
||
│ HTTPS │ HTTPS
|
||
▼ ▼
|
||
┌─────────────────────────────────────────────────┐
|
||
│ Nginx 反向代理 / 负载均衡 │
|
||
│ 静态资源 + API 路由 + WebSocket │
|
||
└─────────────────────┬───────────────────────────┘
|
||
│
|
||
┌─────────────────────▼───────────────────────────┐
|
||
│ Laravel 10 API 层 │
|
||
│ ┌────────┐ ┌────────┐ ┌────────┐ ┌──────────┐ │
|
||
│ │ 认证 │ │ RBAC │ │ 门店 │ │ 操作日志 │ │
|
||
│ │中间件 │ │中间件 │ │隔离 │ │中间件 │ │
|
||
│ └───┬────┘ └───┬────┘ └───┬────┘ └────┬─────┘ │
|
||
│ └──────────┴──────────┴────────────┘ │
|
||
│ ┌──────────────────────────────────────────┐ │
|
||
│ │ Controller 层 (13模块) │ │
|
||
│ │ CRM | 房务 | 护理 | 月子餐 | 产康 │ │
|
||
│ │ 月嫂 | 进销存 | 财务 | 人事 | 协同 │ │
|
||
│ │ 报表 | 知识库 | 系统设置 │ │
|
||
│ └──────────────────┬───────────────────────┘ │
|
||
│ ┌──────────────────▼───────────────────────┐ │
|
||
│ │ Service 层 (业务逻辑) │ │
|
||
│ └──────────────────┬───────────────────────┘ │
|
||
│ ┌──────────────────▼───────────────────────┐ │
|
||
│ │ Model 层 (Eloquent ORM) │ │
|
||
│ └──────────────────┬───────────────────────┘ │
|
||
└─────────────────────┼───────────────────────────┘
|
||
│
|
||
┌─────────────────────▼───────────────────────────┐
|
||
│ 数据层 │
|
||
│ ┌──────────┐ ┌──────────┐ ┌───────────────┐ │
|
||
│ │ MySQL 8 │ │ Redis │ │ 文件存储 │ │
|
||
│ │ 主业务库 │ │ 缓存/队列│ │ (本地/OSS) │ │
|
||
│ └──────────┘ └──────────┘ └───────────────┘ │
|
||
└─────────────────────────────────────────────────┘
|
||
```
|
||
|
||
## 四、项目目录结构
|
||
|
||
```
|
||
saas/
|
||
├── backend/ # Laravel 后端
|
||
│ ├── app/
|
||
│ │ ├── Http/
|
||
│ │ │ ├── Controllers/
|
||
│ │ │ │ ├── Admin/ # 后台管理接口
|
||
│ │ │ │ │ ├── Crm/ # 5.1 CRM模块
|
||
│ │ │ │ │ ├── Room/ # 5.2 房务模块
|
||
│ │ │ │ │ ├── Care/ # 5.3 护理模块
|
||
│ │ │ │ │ ├── Meal/ # 5.4 月子餐模块
|
||
│ │ │ │ │ ├── Service/# 5.5 服务产康
|
||
│ │ │ │ │ ├── Nanny/ # 5.6 月嫂模块
|
||
│ │ │ │ │ ├── Stock/ # 5.7 进销存
|
||
│ │ │ │ │ ├── Finance/# 5.8 财务模块
|
||
│ │ │ │ │ ├── Hr/ # 5.9 人事薪资
|
||
│ │ │ │ │ ├── Office/ # 5.10 办公协同
|
||
│ │ │ │ │ ├── Report/ # 5.11 统计报表
|
||
│ │ │ │ │ ├── Kb/ # 5.12 知识库
|
||
│ │ │ │ │ └── System/ # 5.13 系统设置
|
||
│ │ │ │ └── Client/ # 微客宝客户端接口
|
||
│ │ │ ├── Middleware/
|
||
│ │ │ │ ├── StoreIsolation.php
|
||
│ │ │ │ ├── CheckPermission.php
|
||
│ │ │ │ └── OperationLog.php
|
||
│ │ │ └── Requests/ # 表单验证
|
||
│ │ ├── Models/ # Eloquent 模型
|
||
│ │ ├── Services/ # 业务逻辑层
|
||
│ │ ├── Enums/ # 枚举常量
|
||
│ │ ├── Events/ # 事件
|
||
│ │ ├── Listeners/ # 监听器
|
||
│ │ ├── Jobs/ # 队列任务
|
||
│ │ └── Traits/ # 公用 Trait
|
||
│ ├── database/
|
||
│ │ ├── migrations/ # 数据库迁移
|
||
│ │ └── seeders/ # 种子数据
|
||
│ ├── routes/
|
||
│ │ ├── api.php # 后台 API 路由
|
||
│ │ └── client.php # 客户端 API 路由
|
||
│ └── config/
|
||
│
|
||
├── frontend/ # Vue 3 后台前端
|
||
│ ├── src/
|
||
│ │ ├── views/ # 页面(按模块分目录)
|
||
│ │ ├── components/ # 公共组件
|
||
│ │ ├── api/ # 接口封装
|
||
│ │ ├── stores/ # Pinia 状态管理
|
||
│ │ ├── router/ # 路由(动态菜单)
|
||
│ │ ├── utils/ # 工具函数
|
||
│ │ └── assets/ # 静态资源
|
||
│ └── vite.config.js
|
||
│
|
||
├── miniapp/ # uni-app 微信小程序
|
||
│ ├── pages/ # 页面
|
||
│ ├── components/ # 组件
|
||
│ ├── api/ # 接口
|
||
│ ├── stores/ # 状态
|
||
│ └── static/ # 静态资源
|
||
│
|
||
├── docs/ # 技术文档
|
||
│ ├── 01-technical-overview.md
|
||
│ ├── 02-database-design.md
|
||
│ ├── 03-api-specification.md
|
||
│ ├── 04-rbac-design.md
|
||
│ ├── 05-module-details.md
|
||
│ ├── 06-miniapp-design.md
|
||
│ └── 07-deployment.md
|
||
│
|
||
├── docker-compose.yml
|
||
└── README.md
|
||
```
|
||
|
||
## 五、开发阶段规划
|
||
|
||
### 第一阶段:基础框架(2周)
|
||
- Laravel 项目搭建 + 数据库迁移框架
|
||
- RBAC 权限系统(用户、角色、权限、菜单)
|
||
- 门店隔离中间件
|
||
- 操作日志中间件
|
||
- 审批流引擎基础
|
||
- Vue 3 后台框架 + 动态路由 + 登录认证
|
||
- 系统设置模块(门店、部门、角色、用户)
|
||
|
||
### 第二阶段:核心业务(4周)
|
||
- CRM 模块(线索、客户、签约、问卷)
|
||
- 房务模块(房态、预定、入离住)
|
||
- 护理模块(档案、计划、记录、异常、指标)
|
||
- 月子餐模块(排餐、送餐、评价)
|
||
|
||
### 第三阶段:增值 & 供应链(3周)
|
||
- 服务与产康模块
|
||
- 月嫂模块
|
||
- 进销存模块
|
||
|
||
### 第四阶段:财务 & 人事(2周)
|
||
- 财务模块
|
||
- 人事薪资模块
|
||
|
||
### 第五阶段:协同 & 报表(2周)
|
||
- 办公协同模块
|
||
- 统计报表模块
|
||
- 知识库模块
|
||
|
||
### 第六阶段:微客宝小程序(3周)
|
||
- uni-app 项目搭建
|
||
- 首页(商城、点餐、学堂、月嫂、活动)
|
||
- 共伴成长(护理记录、数据图表)
|
||
- 个人中心(账户、订单、服务、评价)
|
||
|
||
### 第七阶段:联调 & 部署(2周)
|
||
- 前后端联调
|
||
- 微信支付对接
|
||
- 性能优化
|
||
- Docker 部署
|
||
- 上线验收
|