Files
yuezi-saas/docs/01-technical-overview.md
li 11c177a432 feat: 第一阶段基础框架搭建
后端 (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设计/模块详设/小程序设计/部署方案
2026-03-13 19:52:09 +08:00

200 lines
10 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 宫中有喜 — 技术方案总览
## 一、项目概述
| 项 | 值 |
|---|---|
| 项目名称 | 宫中有喜月子会所综合管理系统 |
| 系统类型 | 多门店 SaaS 管理平台 + 客户端小程序 |
| 后端 | PHP 8.1+ / Laravel 10 |
| 数据库 | MySQL 8.0 |
| 前端(后台) | Vue 3 + Element PlusSPA,自适应) |
| 前端(客户端) | 微信小程序(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 部署
- 上线验收