chore(frontend): 治理文件补充 SaaS 多租户指针与硬约束

This commit is contained in:
zhoulei
2026-08-20 10:41:09 +08:00
parent a4fbb61e12
commit 17912ea8a7
3 changed files with 17 additions and 0 deletions
@@ -29,6 +29,7 @@
- I1. `src/framework/**` 只读:业务代码不得 import 后修改框架文件;框架变更只能由框架负责人进行。
- I2. 业务请求一律经 `framework/utils/request.ts`,禁止裸 `axios`/`fetch`
- I3. 服务别名首段必须是 `settingsStore.backendServices` 中已注册的键。
- I4. 多租户上下文来自登录 JWT / `useTenantStore`,禁止业务代码硬编码租户标识或手写 `X-Tenant-Id` 头;品牌/主题/菜单须按 `tenantConfig` 动态加载。详见 `../../../../docs/architecture.md §7`
## 2. 模块清单
@@ -163,3 +164,12 @@ src/
- 加/删模块或改依赖方向 → 改本文 §2 + §3,同一 commit。
- 改对外签名(request/gridDefaultProps 等)→ 先改 §3.2,再改代码。
-`PRD.md` 冲突 → 以 `PRD.md` 为准,回改本文;与共享 `docs/coding-standards.md` 冲突 → 以 docs/ 为准并回改本文。
## 10. SaaS 多租户架构(指针)
> 完整设计(租户动态品牌/主题/模块/菜单、前后端协作、扩展)见工作区 `../../../../docs/architecture.md §7`;编码约束见 `coding-standards.md §9`。本文仅记录前端特有约束:
- 登录后 `useTenantStore` 保存 `tenantId` + `tenantConfig` 并持久化;`applyTenantTheme(config)` 运行时应用品牌/主题。
- 菜单经 `permissionStore.filterAsyncRoutes` 做"权限 ∩ 租户模块订阅"双重过滤。
- `framework/utils/request.ts` 自动附加 `X-Tenant-Id`(取自 `useTenantStore`);业务代码不得手写。
- 新增前端 `subsystem/store/tenant.ts``framework/utils/theme.ts`,并扩展 `request.ts``permissionStore`,包归属见 §2 / §6。
@@ -89,3 +89,4 @@ Conventional Commits`type(scope): subject`。允许 type`feat` / `fix` / `
## 6. 不在本文范围(明确划清)
- 模块拆分归 `ARCHITECTURE.md`;行为/范围归 `PRD.md`;前后端共享约束(接口契约/异常码/分页/APP_NAME)归 `docs/coding-standards.md`;视觉细节归 `UIUX.md`
- 多租户 SaaS 隔离与前后端协作归 `docs/architecture.md §7`;编码强制约束归 `docs/coding-standards.md §9`(前端落地见本仓库 `ARCHITECTURE.md §10`)。