edit | blame | history | raw

Homepage Layout Specification

ADDED Requirements

Requirement: App Header Component

系统 SHALL 在页面顶部显示蓝色背景的Header组件,包含系统名称、通知图标和调解员信息。

Scenario: Header displays system name

  • WHEN 页面加载完成
  • THEN Header左侧显示"矛盾纠纷应用"系统名称

Scenario: Header displays notification icon with badge

  • WHEN 存在未读通知消息
  • THEN Header右侧显示通知图标,图标右上角显示红色气泡,气泡内显示未读消息数量

Scenario: Header displays mediator info from URL params

  • WHEN URL参数包含trueName、unit、roleName、avatar
  • THEN Header右侧显示调解员头像、姓名、"地址|角色"格式的信息

Scenario: Header uses default avatar when param empty

  • WHEN URL参数avatar为空
  • THEN 使用系统默认头像图片

Scenario: Notification popup on icon click

  • WHEN 用户点击通知图标
  • THEN 显示通知消息列表弹窗

Requirement: Warning Alert Component

系统 SHALL 在调解进度条下方显示预警提示消息条,支持多条消息查看。

Scenario: Single warning message display

  • WHEN 预警消息API返回1条消息
  • THEN 预警条直接显示完整消息内容,背景为浅黄色

Scenario: Multiple warning messages display

  • WHEN 预警消息API返回多条消息
  • THEN 预警条显示第一条消息 + "还有N条预警" + "查看更多"按钮

Scenario: Warning modal on view more click

  • WHEN 用户点击"查看更多"按钮
  • THEN 弹出Modal显示全部预警消息列表

Scenario: Warning API call

  • WHEN 页面加载且mediationId存在
  • THEN 调用 /api/v1/mediation-timeline/warning-notify-list/{mediation_id} 获取预警数据

Requirement: Party Info Card Component

系统 SHALL 在调解分析面板右侧显示申请双方信息卡片。

Scenario: Applicant info display

  • WHEN 当事人列表API返回申请方当事人数据
  • THEN 左侧显示申请人头像、姓名,上方显示情绪标签(如有)

Scenario: Respondent info display

  • WHEN 当事人列表API返回被申请方当事人数据
  • THEN 右侧显示被申请人头像、公司名称,上方显示标签(如有)

Scenario: VS separator display

  • WHEN 同时存在申请人和被申请人
  • THEN 中间显示VS分隔符图标

Scenario: Emotion tag style

  • WHEN 当事人数据包含tag_name和tag_style
  • THEN 按tag_style渲染标签颜色(red=红色等)

Scenario: Person list API call

  • WHEN 页面加载且caseId存在
  • THEN 调用 /api/v1/mediation-timeline/person-list/{case_id} 获取当事人数据

Requirement: Success Rate YoY Display

系统 SHALL 在预计调解成功率组件中显示同比数据。

Scenario: YoY rate from API field

  • WHEN timeline.mediation.yoy_success_rate存在
  • THEN 显示该值作为同比增长率(如+8%)

Scenario: YoY rate calculation fallback

  • WHEN yoy_success_rate为空
  • THEN 计算 (success_rate - last_success_rate) * 100 作为同比增长率

Scenario: YoY time display

  • WHEN timeline.mediation.yoy_before_hours存在
  • THEN 显示"较{yoy_before_hours}小时前"

Scenario: YoY time default

  • WHEN yoy_before_hours为空
  • THEN 显示"较0小时前"

Requirement: Negotiation Progress Component

系统 SHALL 在调解分析面板右侧显示协商沟通进度组件。

Scenario: Round count display

  • WHEN timeline.mediation.mediation_count存在
  • THEN 显示"第{mediation_count}轮"

Scenario: Progress dots default count

  • WHEN 沟通次数 <= 流程节点总数
  • THEN 总次数 = 流程节点总数,已完成轮次显示蓝色,未完成显示灰色

Scenario: Progress dots dynamic count

  • WHEN 沟通次数 > 流程节点总数 且 未到最后节点
  • THEN 总次数 = 沟通次数 + 1

Scenario: Progress dots all complete

  • WHEN 已到达最后节点
  • THEN 全部点显示蓝色

Requirement: AI Suggestion Card Component

系统 SHALL 在诉求差距分析下方显示AI调解建议面板。

Scenario: AI suggestion content display

  • WHEN 面板加载
  • THEN 显示AI调解建议内容(Mock数据),背景为浅蓝色

Scenario: View detail button display

  • WHEN 面板加载
  • THEN 底部显示"查看详细策略建议"按钮

Scenario: View detail button click

  • WHEN 用户点击"查看详细策略建议"按钮
  • THEN 显示提示消息"该功能正在升级中,敬请期待!"

Requirement: Warning Notify API Service

系统 SHALL 提供预警消息列表API服务方法。

Scenario: Get warning notify list

  • WHEN 调用 getWarningNotifyList(mediationId)
  • THEN 发送GET请求到 /api/v1/mediation-timeline/warning-notify-list/{mediationId}
  • AND 返回预警消息数组

Requirement: Person List API Service

系统 SHALL 提供当事人列表API服务方法。

Scenario: Get person list

  • WHEN 调用 getPersonList(caseId)
  • THEN 发送GET请求到 /api/v1/mediation-timeline/person-list/{caseId}
  • AND 返回当事人数组

MODIFIED Requirements

Requirement: Mediation Data Board Layout

系统 SHALL 将调解数据看板调整为左右两栏布局。

Scenario: Left column content

  • WHEN 调解分析Tab激活
  • THEN 左列显示:诉求差距分析 + AI调解建议面板

Scenario: Right column content

  • WHEN 调解分析Tab激活
  • THEN 右列显示:申请双方信息 + 预计调解成功率(含同比) + 协商沟通进度