新增 useThemePreference hook 和纯工具函数,支持系统/明亮/黑暗三态主题选择、 matchMedia 系统主题跟随、localStorage 持久化和启动期主题预应用,通过 <html theme-mode> 驱动 TDesign 主题变量切换。 Header 右侧控件重新组织为 .dashboard-header-controls 单行桌面布局,主题 RadioGroup 位于刷新频率 RadioGroup 前。 附带:build.ts import specifier 改为跨平台 sep 转换;config-loader 测试适配 Windows PATH 和 YAML 路径转义;test-utils 类型窄化修复。
1.8 KiB
1.8 KiB
Purpose
定义 Dashboard 页面骨架布局:顶部导航栏(含品牌标识、主题模式选择器、刷新频率选择器和倒计时控件)、内容区域居中与最大宽度、页面背景色。
Requirements
Requirement: 页面骨架布局
Dashboard SHALL 使用 TDesign Layout 组件体系构建页面骨架,包含顶部导航栏和内容区域。
Scenario: Layout 结构
- WHEN Dashboard 页面渲染
- THEN 页面 SHALL 使用 TDesign
Layout组件包裹Layout.Header和Layout.Content
Scenario: 顶部导航栏
- WHEN Dashboard 页面渲染
- THEN
Layout.HeaderSHALL 内嵌 TDesignHeadMenu组件,logoprop 渲染品牌名 "DiAL" 和副标题 "统一拨测平台"(水平排列),operationsprop 渲染主题模式选择器、刷新频率选择器和倒计时/刷新按钮组合控件
Scenario: Header 右侧操作区
- WHEN Dashboard 页面渲染
- THEN HeadMenu operations 区域 SHALL 包含主题模式 RadioGroup、刷新频率 RadioGroup 和倒计时文本(或手动刷新按钮),三者水平排列并垂直居中
Scenario: 主题选择器位置
- WHEN HeadMenu operations 区域渲染
- THEN 主题模式 RadioGroup SHALL 位于刷新频率 RadioGroup 前面
Scenario: Header 右侧操作区位置
- WHEN HeadMenu 渲染
- THEN operations 区域 SHALL 使用右侧 margin 向内收缩,避免紧贴浏览器右边缘
Scenario: 内容区域居中
- WHEN Dashboard 内容区渲染
- THEN
Layout.Content内部 SHALL 使用 CSS 类限制最大宽度(max-width: 1400px)并水平居中
Scenario: 页面背景色
- WHEN Dashboard 页面渲染
- THEN 页面背景色 SHALL 使用
var(--td-bg-color-page),内容卡片浮于当前 TDesign 主题背景之上