1
Some checks failed
Docker Build & Deploy / Build Docker Image (push) Waiting to run
Docker Build & Deploy / Deploy to Production (push) Has been cancelled
Docker Build & Deploy / Cleanup Dangling Images (push) Has been cancelled
Docker Build & Deploy / WeChat Notification (push) Has been cancelled

This commit is contained in:
SunCheng
2026-02-18 21:16:45 +08:00
parent 77c9b47246
commit c49f66757e
116 changed files with 6909 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
---
title: 图表主题系统规格
author: AI Assistant
date: 2026-02-16
---
## ADDED Requirements
### Requirement: 图表类型感知配置
`useChartTheme` 组合式函数 SHALL 根据图表类型自动提供合适的默认配置。
#### Scenario: 饼图/环形图自动隐藏坐标轴
- **WHEN** 调用 `getChartOptionsByType('doughnut', customOptions)`
- **THEN** 返回的配置中 `scales.x.display``scales.y.display` 均为 `false`
- **AND** 返回的配置 SHALL 与 customOptions 深度合并
#### Scenario: 折线图/柱状图保留简化坐标轴
- **WHEN** 调用 `getChartOptionsByType('line', customOptions)`
- **THEN** 返回的配置包含简化的坐标轴样式
- **AND** 网格线使用 `--van-border-color` 30% 透明度
- **AND** 刻度标签字体大小为 10px
### Requirement: 现代化配色方案
图表主题系统 SHALL 提供符合现代审美的配色方案。
#### Scenario: 主色板包含 8 个颜色
- **WHEN** 访问 `chartPalette`
- **THEN** 返回包含 8 个颜色的数组
- **AND** 颜色 SHALL 从 Vant 主题色派生并降低 20% 饱和度
#### Scenario: 支出/收入颜色区分
- **WHEN** 配置支出相关图表
- **THEN** 默认使用暖色调(橙红系)
- **WHEN** 配置收入相关图表
- **THEN** 默认使用冷色调(青绿系)
### Requirement: 暗色模式适配
图表 SHALL 自动适配 Vant UI 的暗色模式。
#### Scenario: 暗色模式颜色切换
- **WHEN** Vant 主题切换为暗色模式
- **THEN** 图表文本颜色 SHALL 自动变为浅色
- **AND** 图表背景色 SHALL 与卡片背景一致
- **AND** 网格线颜色 SHALL 变为深色系的边框色
#### Scenario: 手动颜色获取
- **WHEN** 调用 `colors.text`
- **THEN** 返回当前主题的文本颜色 CSS 变量值
- **AND** SHALL 实时响应主题切换
### Requirement: 动画配置
图表 SHALL 支持可配置的动画效果。
#### Scenario: 默认动画配置
- **WHEN** 获取图表配置
- **THEN** 默认动画持续时间为 600ms
- **AND** 缓动函数为 `easeOutQuart`
#### Scenario: 减少动画偏好
- **WHEN** 用户系统偏好 `prefers-reduced-motion: reduce`
- **THEN** 动画持续时间 SHALL 自动设为 0
- **AND** 图表 SHALL 立即渲染完成
## MODIFIED Requirements
无修改的现有需求。
## REMOVED Requirements
无删除的需求。

View File

@@ -0,0 +1,63 @@
---
title: 响应式图表布局规格
author: AI Assistant
date: 2026-02-16
---
## ADDED Requirements
### Requirement: 容器自适应
BaseChart 组件 SHALL 自动适应父容器大小。
#### Scenario: 容器大小变化
- **WHEN** 父容器大小发生变化
- **THEN** 图表 SHALL 自动调整尺寸
- **AND** 使用 ResizeObserver 进行监听
- **AND** 图表 SHALL 保持比例不失真
#### Scenario: 横竖屏切换
- **WHEN** 移动设备从竖屏切换到横屏
- **THEN** 图表 SHALL 在 300ms 内完成重绘
- **AND** 所有元素 SHALL 保持可读性
### Requirement: 触控交互优化
图表 SHALL 针对移动设备触控操作进行优化。
#### Scenario: 悬停效果增强
- **WHEN** 用户悬停/触摸饼图扇区
- **THEN** `hoverOffset` SHALL 为 8px比默认值大
- **AND** 过渡动画 SHALL 流畅自然
#### Scenario: 折线图点触控
- **WHEN** 用户触摸折线图数据点
- **THEN** 点的 `pointHoverRadius` SHALL 为 6px
- **AND** 触控目标 SHALL 足够大(最小 44px
### Requirement: 空状态处理
图表组件 SHALL 优雅处理空数据情况。
#### Scenario: 无数据时显示空状态
- **WHEN` 传入的数据为空数组或 datasets 为空
- **THEN** 显示 VanEmpty 组件
- **AND** 显示文案 "暂无数据"
#### Scenario: 加载状态
- **WHEN** `loading` prop 为 true
- **THEN** 显示 VanLoading 组件
- **AND** 显示文案 "加载中..."
### Requirement: 最小高度限制
图表容器 SHALL 有最小高度限制以确保可读性。
#### Scenario: 小容器适配
- **WHEN** 父容器高度小于 200px
- **THEN** 图表 SHALL 使用 200px 作为最小高度
- **AND** SHALL 显示滚动条或缩放提示
## MODIFIED Requirements
无修改的现有需求。
## REMOVED Requirements
无删除的需求。