chore(openspec): correct layout header semantics in fe-admin-layout

左右布局顶栏仅不含菜单,固定顶栏对所有布局生效。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
liuyun 2026-10-11 00:23:33 +08:00
parent 6bb227d635
commit f7f9315a5e
5 changed files with 10 additions and 14 deletions

View File

@ -52,7 +52,7 @@ sysmgr-admin 基于 agarwood 模板,已具备:Vue 3 + Vite 8 + TypeScript、
} }
``` ```
5 种呈现由 `layout × mixbar` 派生:`top`、`horizontal`(±mixbar)、`sidebar`(±mixbar);`top` 布局忽略 mixbar。顶栏存在性:`horizontal`/`top` 有顶栏,`sidebar`(左右)无顶栏(与用户确认,vertical 与 left 一致、均无顶栏)。 5 种呈现由 `layout × mixbar` 派生:`top`、`horizontal`(±mixbar)、`sidebar`(±mixbar);`top` 布局忽略 mixbar。**所有布局均有顶栏**(含折叠/面包屑/全屏/暗黑/设置/用户等工具),区别只在导航菜单位置:`top` 顶栏放全量导航、`horizontal` 顶栏放一级导航 + 侧栏放子菜单、`sidebar` 顶栏不放菜单(菜单全在侧栏)。
### D5. 主题色运行时覆盖 ### D5. 主题色运行时覆盖
由所选主色用 JS 计算派生色阶(light-3/5/7/8/9、dark-2),写入 `:root` 的 `--el-color-primary` 及派生变量;默认 `#2E7FA3` 预置。色值计算用 `colord` 或自写 mix(混白/黑)。 由所选主色用 JS 计算派生色阶(light-3/5/7/8/9、dark-2),写入 `:root` 的 `--el-color-primary` 及派生变量;默认 `#2E7FA3` 预置。色值计算用 `colord` 或自写 mix(混白/黑)。

View File

@ -7,7 +7,7 @@ Phase 0 前端只有登录页与路由守卫,登录后没有真正的后台布
- **集成 Element Plus**:走 on-demand(`unplugin-vue-components` 的 `ElementPlusResolver` + 组件样式按需),配置中文 locale。 - **集成 Element Plus**:走 on-demand(`unplugin-vue-components` 的 `ElementPlusResolver` + 组件样式按需),配置中文 locale。
- **布局壳**:替换 `src/layouts/default.vue`;布局/全局组件统一放 `src/components/`(自动注册目录),命名 `ty-` 前缀 + 中划线(`ty-header.vue` → `<ty-header>`),充分复用 auto-import。 - **布局壳**:替换 `src/layouts/default.vue`;布局/全局组件统一放 `src/components/`(自动注册目录),命名 `ty-` 前缀 + 中划线(`ty-header.vue` → `<ty-header>`),充分复用 auto-import。
- **组件库友好**:组件 props/emits 显式类型化、props 驱动、与 Pinia store 解耦,为将来抽取独立组件库打基础。 - **组件库友好**:组件 props/emits 显式类型化、props 驱动、与 Pinia store 解耦,为将来抽取独立组件库打基础。
- **布局与导航模式**:支持 3 种布局(上下/纯上下/左右)× MixBar 开关,共 5 种呈现;MixBar 固定最左;「左右」无顶栏;左侧菜单支持 collapse/expand。 - **布局与导航模式**:支持 3 种布局(上下/纯上下/左右)× MixBar 开关,共 5 种呈现;MixBar 固定最左;所有布局均有顶栏(左右顶栏仅工具、不含菜单);左侧菜单支持 collapse/expand。
- **主题色**:颜色选择器自定义,默认 `#2E7FA3`,运行时覆盖 Element Plus 主色 CSS 变量。 - **主题色**:颜色选择器自定义,默认 `#2E7FA3`,运行时覆盖 Element Plus 主色 CSS 变量。
- **暗黑模式**:明亮/暗黑切换。 - **暗黑模式**:明亮/暗黑切换。
- **顶栏固定**:可固定/不固定;纯左右布局(无顶栏)时该选项禁用。 - **顶栏固定**:可固定/不固定;纯左右布局(无顶栏)时该选项禁用。

View File

@ -5,19 +5,19 @@
## ADDED Requirements ## ADDED Requirements
### Requirement: 布局与导航模式 ### Requirement: 布局与导航模式
系统 SHALL 支持 3 种布局(上下 / 纯上下 / 左右)与 MixBar 开关的组合,共 5 种呈现;MixBar 始终固定在布局最左侧;「左右」布局不渲染顶栏。 系统 SHALL 支持 3 种布局(上下 / 纯上下 / 左右)与 MixBar 开关的组合,共 5 种呈现;MixBar 始终固定在布局最左侧;所有布局均渲染顶栏,仅导航菜单位置不同。
#### Scenario: 切换布局即时生效 #### Scenario: 切换布局即时生效
- **WHEN** 用户在布局设置中切换布局或开启/关闭 MixBar - **WHEN** 用户在布局设置中切换布局或开启/关闭 MixBar
- **THEN** 主框架立即按新布局重新排布顶栏、侧边栏与内容区 - **THEN** 主框架立即按新布局重新排布顶栏、侧边栏与内容区
#### Scenario: 左右无顶栏 #### Scenario: 左右顶栏不含菜单
- **WHEN** 布局为「左右」 - **WHEN** 布局为「左右」
- **THEN** 主框架只渲染左侧菜单与内容区,不渲染顶栏 - **THEN** 顶栏仍显示折叠/面包屑/全屏/暗黑/设置/用户等工具,但不渲染导航菜单,菜单全部在左侧侧边栏
#### Scenario: 上下有顶栏 #### Scenario: 上下/纯上下顶栏含导航
- **WHEN** 布局为「上下」或「纯上下」 - **WHEN** 布局为「上下」或「纯上下」
- **THEN** 主框架渲染顶栏,其中「上下」顶部放一级导航、左侧放子菜单,「纯上下」仅顶部导航 - **THEN** 顶栏含导航:「上下」顶部放一级导航、左侧放子菜单;「纯上下」仅顶部放全量导航
### Requirement: 侧边菜单折叠 ### Requirement: 侧边菜单折叠
左侧导航菜单 SHALL 支持 collapse(折叠为图标)与 expand(展开显示文字+图标)。 左侧导航菜单 SHALL 支持 collapse(折叠为图标)与 expand(展开显示文字+图标)。
@ -41,16 +41,12 @@
- **THEN** 全站即时切换为深色配色,刷新后仍保留 - **THEN** 全站即时切换为深色配色,刷新后仍保留
### Requirement: 顶栏固定 ### Requirement: 顶栏固定
顶栏 SHALL 支持固定(内容滚动时顶栏常驻顶部)与不固定;「左右」布局(无顶栏)时该选项禁用。 顶栏 SHALL 支持固定(内容滚动时顶栏常驻顶部)与不固定,所有布局均适用。
#### Scenario: 顶栏固定开关 #### Scenario: 顶栏固定开关
- **WHEN** 用户切换「固定顶栏」 - **WHEN** 用户切换「固定顶栏」
- **THEN** 顶栏在固定/随内容滚动之间切换 - **THEN** 顶栏在固定/随内容滚动之间切换
#### Scenario: 左右布局禁用
- **WHEN** 布局为「左右」
- **THEN** 「固定顶栏」选项置灰不可选
### Requirement: 侧边菜单宽度 ### Requirement: 侧边菜单宽度
左侧菜单宽度 SHALL 可调,范围 200–340(单位 px)。 左侧菜单宽度 SHALL 可调,范围 200–340(单位 px)。

View File

@ -39,7 +39,7 @@
## 7. 验证 ## 7. 验证
- [x] 7.1 `pnpm dev` 启动,登录后进入布局壳 - [x] 7.1 `pnpm dev` 启动,登录后进入布局壳
- [x] 7.2 切换 5 种模式即时生效;「左右」无顶栏且「固定顶栏」禁用 - [x] 7.2 切换 5 种模式即时生效;「左右」顶栏不含菜单、导航全在左侧
- [x] 7.3 主题色、暗黑、侧边宽度、折叠、手风琴、多页签、全屏、面包屑、底部版权均生效 - [x] 7.3 主题色、暗黑、侧边宽度、折叠、手风琴、多页签、全屏、面包屑、底部版权均生效
- [x] 7.4 刷新后设置保留(localStorage);改 `defaultLayout` 后未改过的用户按新默认值渲染 - [x] 7.4 刷新后设置保留(localStorage);改 `defaultLayout` 后未改过的用户按新默认值渲染
- [x] 7.5 `pnpm type-check` 与 `pnpm build:prod` 通过 - [x] 7.5 `pnpm type-check` 与 `pnpm build:prod` 通过

@ -1 +1 @@
Subproject commit 6ef0b1121c86c01fa75563dbb79c6568a3cf96a4 Subproject commit 86af3c10e119701e0f625088ec8d07b78f561b83