Skip to content

目录结构

项目根目录

ydadmin-saas/
├── platform/              # 平台超管后台(Vue 3 + Element Plus)
├── tenant/                # 租户后台(Vue 3 + Element Plus)
├── pc/                    # 公共前台(Nuxt 3)
├── uniapp/                # 移动端(UniApp)
├── server/                # 后端(ThinkPHP 8)
│   ├── plugins/           # 插件应用源码(plugin.json + 后端 + 租户前端 + UniApp)
│   └── plugin_packages/   # 上传插件 zip 备份目录
├── docker/                # Docker 部署配置
├── docs/                  # 文档站(VitePress)
└── scripts/               # 工具脚本

后端 server/

server/
├── app/
│   ├── platformapi/         # 平台超管 API
│   │   ├── controller/v1/   # 控制器
│   │   ├── middleware/      # 中间件(认证、权限)
│   │   ├── route/           # 路由定义
│   │   └── validate/v1/     # 表单验证
│   ├── tenantapi/           # 租户后台 API
│   │   ├── controller/v1/   # 控制器
│   │   ├── middleware/      # 中间件(认证、权限、日志)
│   │   ├── route/           # 路由定义
│   │   └── validate/v1/     # 表单验证
│   ├── api/                 # 公共 API(前台 + 支付回调)
│   ├── command/             # CLI 命令(saas:* + 代码生成器)
│   ├── listener/            # 事件监听器
│   ├── model/
│   │   ├── saas/            # SaaS 模型(Tenant/Plan/Subscription...)
│   │   ├── system/          # 系统模型(Admin/Role/Menu...)
│   │   └── ...              # 业务模型
│   ├── repository/
│   │   ├── saas/            # SaaS Repository
│   │   └── ...              # 业务 Repository
│   └── service/
│       ├── saas/            # SaaS Service
│       └── ...              # 业务 Service
├── core/                    # 框架核心层
│   ├── auth/                # JWT 认证(TokenManager)
│   ├── base/                # 基类(Controller/Service/Repository/Model)
│   ├── tenant/              # 多租户(TenantContext/Middleware)
│   ├── plugin/              # 插件扫描、安装、加载、迁移、菜单安装
│   ├── mobile/              # 租户移动端构建和插件 UniApp 合并
│   ├── saas/payment/        # SaaS 支付网关
│   ├── payment/             # 业务支付网关
│   ├── storage/             # 文件存储
│   └── cache/               # 缓存驱动(TenantRedisDriver)
├── config/                  # 配置文件
├── database/migrations/     # 数据库迁移
├── plugins/                 # 插件应用目录
│   └── mall/
│       ├── plugin.json      # 插件 manifest
│       ├── app/             # 插件后端代码
│       ├── migrations/      # 插件数据库迁移
│       ├── tenant/          # 租户后台页面和 API
│       └── uniapp/          # 移动端分包源码
├── tests/                   # 测试
│   └── RedLine/             # 红线测试
└── public/                  # Web 入口
    └── install/             # 安装向导

前端通用结构

platform/ 和 tenant/ 共用相同的目录规范:

src/
├── api/                     # API 接口定义,每个模块一个文件
├── assets/                  # 静态资源
├── components/              # 通用组件
├── directives/              # 自定义指令(v-has-perm 等)
├── hooks/                   # 组合式函数(useListPage 等)
├── layout/                  # 布局组件(侧边栏、顶栏)
├── locales/                 # i18n 语言包
├── router/                  # 路由
├── store/modules/           # Pinia 状态管理
├── styles/                  # 全局样式
├── types/                   # TypeScript 类型定义
├── utils/                   # 工具函数
└── views/                   # 页面组件(按模块目录组织)

关键文件说明

文件作用
core/tenant/TenantContext.php请求级租户上下文,栈式 singleton
core/auth/TokenManager.phpJWT 管理,支持 scope('platform') / scope('tenant')
core/base/Repository.phpRepository 基类,query() 自动注入 tenant scope
core/plugin/PluginManifestValidator.php插件 manifest 校验和默认值归一
core/plugin/PluginLoader.php插件运行时 PSR-4、路由和中间件挂载
core/mobile/PagesJsonGenerator.php按租户权益合并 UniApp 插件页面
core/cache/TenantRedisDriver.phpRedis 缓存驱动,按租户前缀隔离
config/saas.phpSaaS 核心配置(域名、宽限期、支付等)
server/.env环境变量(数据库、Redis、JWT 密钥等)

基于 Apache-2.0 协议开源