1
0
Files
DiAL/openspec/specs/dashboard-layout/spec.md
lanyuanxiaoyao c46ab14cce feat: Dashboard 主题模式切换 — 系统跟随/明亮/黑暗,localStorage 持久化,TDesign theme-mode 驱动
新增 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 类型窄化修复。
2026-05-15 22:18:29 +08:00

1.8 KiB
Raw Blame History

Purpose

定义 Dashboard 页面骨架布局:顶部导航栏(含品牌标识、主题模式选择器、刷新频率选择器和倒计时控件)、内容区域居中与最大宽度、页面背景色。

Requirements

Requirement: 页面骨架布局

Dashboard SHALL 使用 TDesign Layout 组件体系构建页面骨架,包含顶部导航栏和内容区域。

Scenario: Layout 结构

  • WHEN Dashboard 页面渲染
  • THEN 页面 SHALL 使用 TDesign Layout 组件包裹 Layout.HeaderLayout.Content

Scenario: 顶部导航栏

  • WHEN Dashboard 页面渲染
  • THEN Layout.Header SHALL 内嵌 TDesign HeadMenu 组件,logo prop 渲染品牌名 "DiAL" 和副标题 "统一拨测平台"(水平排列),operations prop 渲染主题模式选择器、刷新频率选择器和倒计时/刷新按钮组合控件

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 主题背景之上