HaniBlindBox/.kiro/specs/dashboard-overview/requirements.md
2026-01-18 13:55:07 +08:00

55 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Requirements Document
## Introduction
本文档定义了仪表盘数据概览卡片模块的迁移需求。该模块将从老项目PHP ThinkPHP + Layui迁移到新项目ASP.NET Core + Vue 3 + Element Plus。仪表盘是后台管理系统的首页提供关键业务数据的实时概览。
## Glossary
- **Dashboard**: 仪表盘,后台管理系统的首页,展示关键业务数据概览
- **Overview_Card**: 数据概览卡片展示单个统计指标的UI组件
- **Today_Registrations**: 今日注册用户数,当天新注册的用户数量
- **Today_Consumers**: 今日消费用户数,当天有消费行为的用户数量
- **Today_Consumption**: 当日消费总金额,当天所有订单的支付金额总和
- **Total_Consumption**: 总消费金额,历史所有订单的支付金额总和
- **Admin_Web**: 新项目前端,基于 Vue 3 + Element Plus 的后台管理前端
## Requirements
### Requirement 1: 数据概览卡片展示
**User Story:** As a 运营人员, I want to 在仪表盘首页看到关键业务数据概览, so that I can 快速了解当日和总体业务状况。
#### Acceptance Criteria
1. WHEN 用户访问仪表盘页面 THEN THE Dashboard SHALL 显示4个数据概览卡片
2. THE Overview_Card SHALL 展示今日注册用户数,使用蓝绿渐变背景色
3. THE Overview_Card SHALL 展示今日消费用户数,使用粉黄渐变背景色
4. THE Overview_Card SHALL 展示当日消费总金额,使用红粉渐变背景色
5. THE Overview_Card SHALL 展示总消费金额,使用灰色背景色
6. WHEN 页面加载时 THEN THE Dashboard SHALL 从后端API获取最新统计数据
7. WHEN API请求失败 THEN THE Dashboard SHALL 显示错误提示并展示默认值0
### Requirement 2: 数据概览卡片样式
**User Story:** As a 运营人员, I want to 数据概览卡片有清晰的视觉层次, so that I can 快速识别不同类型的数据。
#### Acceptance Criteria
1. THE Overview_Card SHALL 使用响应式布局,在不同屏幕尺寸下自适应
2. THE Overview_Card SHALL 包含图标、数值和标签三个元素
3. THE Overview_Card SHALL 在鼠标悬停时有轻微上浮动画效果
4. WHEN 数值为金额类型 THEN THE Overview_Card SHALL 格式化显示为货币格式
### Requirement 3: 后端API集成
**User Story:** As a 开发人员, I want to 前端正确调用后端仪表盘API, so that I can 获取准确的统计数据。
#### Acceptance Criteria
1. THE Admin_Web SHALL 调用 `GET /api/admin/business/dashboard` 获取概览数据
2. WHEN API返回成功 THEN THE Dashboard SHALL 正确解析并展示所有统计字段
3. THE Admin_Web SHALL 在API模块中定义完整的TypeScript接口类型
4. WHEN 用户无dashboard:view权限 THEN THE Dashboard SHALL 显示无权限提示