docs(spec): 归档 tenant-brand + 同步租户品牌主 spec
Some checks are pending
CI / backend (push) Waiting to run
CI / frontend (push) Waiting to run

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
liuyun 2026-10-11 22:33:21 +08:00
parent 27bdb6f164
commit ed9af5337d
12 changed files with 36 additions and 0 deletions

View File

@ -26,3 +26,10 @@
#### Scenario: 删除租户 #### Scenario: 删除租户
- **WHEN** 删除租户 - **WHEN** 删除租户
- **THEN** 其用户/角色/资源/组织/字典/日志一并清理 - **THEN** 其用户/角色/资源/组织/字典/日志一并清理
### Requirement: 租户品牌维护
系统 SHALL 支持管理员在新增/编辑租户时填写品牌名、Logo、主色、版权,并在租户详情/列表中返回。
#### Scenario: 编辑租户品牌
- **WHEN** 管理员编辑某租户的品牌字段
- **THEN** 品牌字段保存并可查询

View File

@ -74,6 +74,17 @@
- **WHEN** 用户开启「固定底部」 - **WHEN** 用户开启「固定底部」
- **THEN** 版权条常驻视口底部;关闭时随内容滚动 - **THEN** 版权条常驻视口底部;关闭时随内容滚动
### Requirement: 租户品牌应用
前端 SHALL 在登录后拉取当前租户品牌,并应用:主色覆盖默认主题色、Logo/品牌名显示于顶栏、版权显示于底部;字段为空时回退默认。
#### Scenario: 应用租户品牌
- **WHEN** 用户登录某租户
- **THEN** 顶栏标题/Logo、主题色、底部版权按该租户品牌渲染
#### Scenario: 缺省回退
- **WHEN** 租户未配置某品牌字段
- **THEN** 该字段回退为默认值(标题回退 name、主题色回退默认主色)
### Requirement: 布局设置持久化 ### Requirement: 布局设置持久化
所有布局与主题设置 SHALL 持久化到 localStorage,刷新页面后保持。 所有布局与主题设置 SHALL 持久化到 localStorage,刷新页面后保持。

View File

@ -96,3 +96,14 @@
#### Scenario: 标记已读 #### Scenario: 标记已读
- **WHEN** 用户请求 POST /notices/:id/read - **WHEN** 用户请求 POST /notices/:id/read
- **THEN** 该通知对当前用户标记为已读 - **THEN** 该通知对当前用户标记为已读
### Requirement: 租户品牌接口
系统 SHALL 提供 `GET /auth/brand`(仅登录态),返回当前租户品牌(name、brandName、logoUrl、themeColor、copyright);tenant 的新增/编辑/列表接口 SHALL 支持品牌字段。
#### Scenario: 拉取当前租户品牌
- **WHEN** 已登录用户请求 GET /auth/brand
- **THEN** 返回其所在租户的品牌字段(缺省为空)
#### Scenario: 维护租户品牌
- **WHEN** 管理员新增或编辑租户并填写品牌字段
- **THEN** 品牌字段随 tenant 一并保存与返回

View File

@ -35,6 +35,13 @@
- **WHEN** 用户阅读某通知 - **WHEN** 用户阅读某通知
- **THEN** 写入 notice_read 记录其 read_at - **THEN** 写入 notice_read 记录其 read_at
### Requirement: 租户品牌字段
tenant 实体 SHALL 新增可空品牌字段:`brand_name`(品牌显示名)、`logo_url`(Logo 地址)、`theme_color`(主色,如 #2E7FA3)、`copyright`(版权文案);为空时前端回退默认值或 `name`。
#### Scenario: 租户配置品牌
- **WHEN** 管理员为租户填写品牌名/Logo/主色/版权
- **THEN** 存入 tenant 对应字段,登录该租户后前端按此渲染
### Requirement: 资源类型与代码 ### Requirement: 资源类型与代码
resource 实体 SHALL 通过 type 字段区分菜单(menu)、按钮(button)、接口(api)三种类型;「目录」由菜单节点是否拥有菜单子节点推导,不设独立类型。每个 resource SHALL 拥有租户内唯一的 code,作为关联键与权限标识。 resource 实体 SHALL 通过 type 字段区分菜单(menu)、按钮(button)、接口(api)三种类型;「目录」由菜单节点是否拥有菜单子节点推导,不设独立类型。每个 resource SHALL 拥有租户内唯一的 code,作为关联键与权限标识。