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

2.7 KiB
Raw Blame History

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 显示无权限提示