anxin-ruoyi/.kiro/specs/digital-credit-homepage/design.md
2025-12-23 18:33:17 +08:00

7.6 KiB
Raw Permalink Blame History

数字债权服务系统首页设计文档

概览

数字债权服务系统首页设计旨在创建一个现代化、响应式的业务仪表板,替换原有的若依框架通用首页。新首页将根据用户角色提供个性化的业务统计、快速操作入口和系统信息展示,突出数字债权服务平台的专业性和易用性。

架构

组件架构

HomePage (主容器)
├── HeaderSection (头部区域)
│   ├── PlatformTitle (平台标题)
│   ├── SystemVersion (系统版本)
│   └── UserWelcome (用户欢迎信息)
├── StatisticsSection (统计面板区域)
│   ├── RoleBasedStats (角色相关统计)
│   ├── BusinessMetrics (业务指标)
│   └── ChartComponents (图表组件)
├── QuickActionsSection (快速操作区域)
│   ├── RoleBasedActions (角色相关操作)
│   └── CommonActions (通用操作)
├── NotificationsSection (通知消息区域)
│   ├── AlertMessages (告警消息)
│   ├── BusinessUpdates (业务更新)
│   └── SystemNotices (系统通知)
└── FooterSection (底部区域)
    ├── TechnicalInfo (技术信息)
    ├── ContactInfo (联系信息)
    └── ResourceLinks (资源链接)

数据流架构

  • 用户认证服务: 获取当前用户角色和权限信息
  • 业务统计服务: 根据用户角色获取相应的业务数据
  • 通知服务: 获取用户相关的消息和提醒
  • 权限控制服务: 控制功能模块的显示和访问权限

组件和接口

核心组件

1. HeaderSection 组件

// Props 定义
{
  userInfo: {
    id: String,
    name: String,
    role: String,
    company: String,
    lastLoginTime: Date
  },
  systemVersion: String,
  platformTitle: String
}

2. StatisticsSection 组件

// Props 定义
{
  userRole: String,
  statisticsData: Object // 根据角色包含不同的统计数据
}

3. QuickActionsSection 组件

// Props 定义
{
  userRole: String,
  permissions: Array,
  actions: Array // QuickAction 对象数组
}

// QuickAction 对象结构
{
  id: String,
  title: String,
  description: String,
  icon: String,
  route: String,
  permission: String
}

API 接口

1. 用户信息接口(使用现有接口)

GET /system/user/profile
Response: {
  code: Number,
  data: {
    // 现有用户信息结构,需要适配到首页需求
    userId: Number,
    userName: String,
    nickName: String,
    // 其他现有字段...
  },
  msg: String
}

2. 业务统计接口

GET /api/dashboard/statistics?role={userRole}
Response: {
  code: Number,
  data: Object, // 根据角色返回不同的统计数据结构
  message: String
}

3. 通知消息接口

GET /api/notifications/recent?limit=10
Response: {
  code: Number,
  data: Array, // Notification 对象数组
  message: String
}

数据模型

用户角色常量

const UserRole = {
  SECURITY_COMPANY: 'security_company',
  CLIENT_COMPANY: 'client_company',
  FINANCIAL_INSTITUTION: 'financial_institution',
  ADMINISTRATOR: 'administrator'
}

统计数据模型

// 安保公司统计数据
{
  totalCredits: Number,
  pendingContracts: Number,
  totalAmount: Number,
  financingApplications: Number,
  recentActivities: Array
}

// 甲方单位统计数据
{
  totalContracts: Number,
  pendingPayments: Number,
  paidAmount: Number,
  upcomingPayments: Array
}

// 金融机构统计数据
{
  pendingApplications: Number,
  approvedAmount: Number,
  riskDistribution: Array,
  marketIndicators: Array
}

// 管理员统计数据
{
  systemHealth: Object,
  userActivity: Object,
  transactionVolume: Object,
  securityEvents: Array
}

正确性属性

属性是一个特征或行为,应该在系统的所有有效执行中保持为真——本质上,是关于系统应该做什么的正式声明。属性作为人类可读规范和机器可验证正确性保证之间的桥梁。

属性 1: 角色权限一致性

对于任何用户和首页显示内容,用户看到的所有功能模块和数据统计都应该与其角色权限完全匹配 验证: 需求 7.1, 7.2, 7.4

属性 2: 数据访问边界

对于任何用户角色和数据查询请求,返回的业务统计数据应该仅包含该用户有权访问的业务范围 验证: 需求 2.1, 3.1, 4.1, 7.4

属性 3: 响应式布局适配

对于任何屏幕尺寸和设备类型,首页布局应该自动调整并保持所有核心功能的可访问性 验证: 需求 6.1, 6.4

属性 4: 实时数据同步

对于任何用户权限变更操作,首页显示的功能模块和数据范围应该立即反映最新的权限状态 验证: 需求 7.2

属性 5: 安全访问控制

对于任何未授权访问尝试,系统应该阻止访问并记录相应的安全日志 验证: 需求 7.3, 7.5

属性 6: 性能加载要求

对于任何首页访问请求核心内容应该在3秒内完成加载并显示给用户 验证: 需求 6.5

属性 7: 角色功能入口一致性

对于任何用户角色,显示的快速操作入口和功能模块应该与该角色的业务职责完全匹配 验证: 需求 2.3, 3.3, 4.3, 5.3

属性 8: 响应式交互反馈

对于任何用户交互操作,系统应该提供相应的视觉反馈和状态提示 验证: 需求 6.2

属性 9: 数据范围权限控制

对于任何用户查看统计数据的请求,返回的数据应该严格限制在该用户的权限范围内 验证: 需求 2.1, 3.1, 4.1, 5.1, 7.4

属性 10: 权限变更实时同步

对于任何用户权限变更事件,首页显示的功能模块和数据范围应该立即反映最新状态 验证: 需求 7.2

错误处理

1. 数据加载失败

  • 场景: API 请求超时或返回错误
  • 处理: 显示友好的错误提示,提供重试按钮
  • 降级: 显示缓存数据或默认占位内容

2. 权限验证失败

  • 场景: 用户权限不足或会话过期
  • 处理: 重定向到登录页面或显示权限不足提示
  • 日志: 记录安全事件日志

3. 网络连接异常

  • 场景: 网络中断或服务不可用
  • 处理: 显示离线模式提示,启用本地缓存
  • 恢复: 网络恢复后自动重新加载数据

4. 数据格式异常

  • 场景: 后端返回的数据格式不符合预期
  • 处理: 使用数据验证和默认值填充
  • 监控: 发送异常报告给开发团队

测试策略

单元测试

  • 组件渲染测试:验证各个组件能够正确渲染
  • 数据处理测试:验证统计数据的计算和格式化
  • 权限控制测试:验证基于角色的内容显示逻辑
  • API 调用测试:验证接口调用和错误处理

集成测试

  • 用户角色切换测试:验证不同角色登录后的页面内容
  • 数据流测试:验证从 API 获取数据到页面显示的完整流程
  • 权限验证测试:验证权限变更后页面内容的实时更新
  • 响应式布局测试:验证在不同设备上的显示效果

端到端测试

  • 用户登录流程测试:验证从登录到首页显示的完整用户体验
  • 快速操作测试:验证快速操作按钮的跳转和功能
  • 通知消息测试:验证消息提醒的显示和交互
  • 性能测试:验证页面加载时间和响应速度

属性基础测试

使用 Vitest 和 Vue Test Utils 进行属性基础测试,每个测试运行最少 100 次迭代以确保属性在各种输入下都成立。每个属性基础测试必须使用注释明确引用设计文档中的正确性属性。