报告样式优化方案

杂志风格报告 UI 规范,CoverSlide / RadarSlide 等各类型 Slide 布局设计

by 于成季 ·

报告样式优化方案

1. 背景与目标

优化"自我"页面中点击打开报告展示部分的样式,采用杂志风格设计,与 App 整体风格(温暖的米白背景 #FAF6F0、自然成长的主题)统一。


2. 设计方案:杂志风格

2.1 整体视觉风格

属性 当前值 优化后
背景色 #F9FAFB (浅灰) #FAF6F0 (米白,与 App 统一)
强调色 #6366F1 (紫色) #4F46E5 (靛蓝,更沉稳)
卡片背景 #FFFFFF #FFFFFF
文字主色 #111827 #1F2937
文字次色 #6B7280 #6B7280

2.2 页面结构

┌─────────────────────────────────┐
│  ✕                        1/8   │ ← 顶部栏(关闭按钮 + 页码)
├─────────────────────────────────┤
│                                 │
│  [类型标签]                      │ ← 报告类型标签(如 "MBTI")
│                                 │
│  ╔═══════════════════════════╗  │
│  ║                           ║  │
│  ║       报告主标题            ║  │ ← 大标题(如 "你的 MBTI 人格类型")
│  ║                           ║  │
│  ╚═══════════════════════════╝  │
│                                 │
│  副标题/描述文字                   │ ← 副标题(如 "外向 · 直觉 · 思维 · 判断")
│                                 │
│  ┌─────┐ ┌─────┐ ┌─────┐      │
│  │数据1 │ │数据2 │ │数据3 │      │ ← 维度数据卡片(雷达图/柱状图)
│  └─────┘ └─────┘ └─────┘      │
│                                 │
│  ● ○ ○ ○ ○ ○ ○ ○              │ ← 分页指示器
└─────────────────────────────────┘

3. Slide 类型与布局规范

3.1 封面页 (CoverSlide)

适用场景: 所有报告的第一页

布局结构:

┌─────────────────────────────────┐
│                                 │
│         [理论类型标签]            │ ← 圆角标签,如 "MBTI" / "Ikigai"
│                                 │
│     ╔═══════════════════════╗   │
│     ║                       ║   │
│     ║      报告主标题         ║   │ ← 36pt, 加粗, 居中
│     ║                       ║   │
│     ╚═══════════════════════╝   │
│                                 │
│        副标题描述文字              │ ← 16pt, 居中, 灰色
│                                 │
│     ┌────┐  ┌────┐  ┌────┐     │
│     │ 4  │  │ 30 │  │ 86 │     │ ← 关键数据:维度数/天数/条目数
│     │维度│  │ 天 │  │ 条 │     │
│     └────┘  └────┘  └────┘     │
│                                 │
└─────────────────────────────────┘

设计要点:

  • 标题区高度占页面的 50%
  • 关键数据用小卡片展示(3个)
  • 整体居中,有呼吸感

3.2 雷达图页 (RadarSlide)

适用场景: MBTI、大五人格、Schwartz价值观等有多维度的报告

维度数量差异:

理论类型 维度数 维度名称示例
MBTI 4 E/I, S/N, T/F, J/P
大五人格 5 开放性, 尽责性, 外倾性, 宜人性, 神经质
Schwartz价值观 10 权力, 成就, 友善...
Ikigai 4 热爱, 擅长, 世界需要, 报酬

布局结构:

┌─────────────────────────────────┐
│  维度分析                       │ ← 页面标题
│  你的性格特质在四维度上的分布          │ ← 页面副标题
├─────────────────────────────────┤
│                                 │
│         ┌─────────┐             │
│        /           \            │
│       /   雷达图     \          │ ← 雷达图(根据维度数自适应大小)
│      /               \          │
│     /                 \         │
│    └───────────────────┘        │
│                                 │
│  ┌────┐ ┌────┐ ┌────┐ ┌────┐   │ ← 维度标签 + 数值
│  │E 65│ │S 72│ │T 58│ │J 81│   │
│  └────┘ └────┘ └────┘ └────┘   │
│                                 │
└─────────────────────────────────┘

设计要点:

  • 雷达图大小根据维度数自适应
  • 4-5 维度:雷达图较大,标签在下方
  • 10 维度:雷达图较小,可考虑改为柱状图

3.3 统计摘要页 (SummarySlide)

适用场景: 所有报告的核心发现

布局结构:

┌─────────────────────────────────┐
│  核心发现                       │ ← 页面标题
│  基于你的行为数据分析得出            │ ← 页面副标题
├─────────────────────────────────┤
│                                 │
│  ┌─────────┐ ┌─────────┐       │
│  │  高开放性│ │  中尽责性│       │ ← 关键发现卡片
│  │  得分 78 │ │  得分 62 │       │
│  └─────────┘ └─────────┘       │
│                                 │
│  ┌─────────────────────────┐   │
│  │                         │   │
│  │   详细分析文字内容...      │   │ ← 段落文字
│  │                         │   │
│  └─────────────────────────┘   │
│                                 │
└─────────────────────────────────┘

设计要点:

  • 关键发现用 2 列卡片展示
  • 详细分析用带背景色的文本框
  • 卡片带微弱阴影,增加层次感

3.4 洞察卡片页 (InsightSlide)

适用场景: 建议、洞察点、行为模式等

布局结构:

┌─────────────────────────────────┐
│  探索建议                       │ ← 页面标题
├─────────────────────────────────┤
│                                 │
│  ┌─────────────────────────┐   │
│  │ 📌                       │   │
│  │ 高开放性意味着...           │   │ ← 洞察卡片 1
│  │                         │   │
│  │ 你倾向于接受新事物和想法...   │   │
│  └─────────────────────────┘   │
│                                 │
│  ┌─────────────────────────┐   │
│  │ 🔄                       │   │
│  │ 建议尝试...               │   │ ← 洞察卡片 2
│  │                         │   │
│  │ 建议你每周尝试...          │   │
│  └─────────────────────────┘   │
│                                 │
└─────────────────────────────────┘

设计要点:

  • 卡片垂直排列,可滚动
  • 每张卡片有图标标识类型
  • 优先级高的建议用醒目颜色

3.5 词云页 (WordCloudSlide)

适用场景: 情绪分析、关键词分析等

布局结构:

┌─────────────────────────────────┐
│  你的关键词                     │ ← 页面标题
│  从你的记录中提取的高频主题           │ ← 页面副标题
├─────────────────────────────────┤
│                                 │
│       研究  成长                 │
│         家庭  工作               │ ← 词云
│    社交   深度    休息            │
│         健康  创造                │
│                                 │
└─────────────────────────────────┘

设计要点:

  • 词语大小根据频率自适应
  • 颜色可使用主题色渐变

4. 页面导航优化

4.1 顶部栏

当前:

  • 位置:absolute 定位在顶部
  • 内容:关闭按钮
  • 样式:白色圆形按钮带阴影

优化后:

┌─────────────────────────────────┐
│  ✕                       3 / 8 │ ← 左:关闭按钮  右:当前页/总页数
└─────────────────────────────────┘

设计要点:

  • 背景:透明或极淡的白色毛玻璃
  • 关闭按钮:保持原样
  • 页码:右侧显示 "当前 / 总数"

4.2 底部导航

当前:

  • 位置:absolute 定位在底部
  • 内容:上一页、播放/暂停、下一页、分页指示器
  • 样式:白色毛玻璃背景

优化后:

┌─────────────────────────────────┐
│                                 │
│         (内容区域)                │
│                                 │
├─────────────────────────────────┤
│  ◀   ▶  ● ○ ○ ○ ○ ○ ○ ○       │ ← 左:导航按钮组  右:分页指示器
└─────────────────────────────────┘

设计要点:

  • 导航按钮组:紧凑的圆角矩形容器
  • 分页指示器:当前页为宽条,其他为圆点
  • 保持与 App 底部 tab 栏风格一致

5. 分类型展示策略

每个理论类型根据其维度数量和数据特性,选择最适合的可视化方式。


5.1 MBTI 报告

属性
维度数 4
推荐图表 雷达图
理由 4 维度正好适合雷达图展示,各维度对比清晰

Slide 顺序:

  1. 封面页(显示四字母类型,如 "INTJ")
  2. 雷达图页(4 维度分布)
  3. 核心发现页(每维度解读)
  4. 建议页

布局示例:

┌─────────────────────────────────┐
│  人格类型分析                     │
│  你的 MBTI 四维度分布              │
├─────────────────────────────────┤
│                                 │
│         ┌─────────┐             │
│        /   ●─●     \            │ ← 雷达图
│       /  ●     ●    \          │
│      /    ●─●─●      \         │
│     └─────────────────┘        │
│                                 │
│  E:外向  S:实感  T:思维  J:判断   │
│  ┌────┐ ┌────┐ ┌────┐ ┌────┐  │
│  │ 35 │ │ 72 │ │ 81 │ │ 65 │  │ ← 数值标签
│  └────┘ └────┘ └────┘ └────┘  │
│                                 │
└─────────────────────────────────┘

封面特殊处理:

  • 大标题直接显示四字母类型(如 "INTJ"),36pt 加粗
  • 副标题显示维度字母含义(如 "外向 · 直觉 · 思维 · 判断")

5.2 大五人格报告

属性
维度数 5
推荐图表 柱状图
理由 5 维度用柱状图比雷达图更易读,数值对比更直观

Slide 顺序:

  1. 封面页
  2. 柱状图页(5 维度得分)
  3. 核心发现页(每维度解读)
  4. 建议页

布局示例:

┌─────────────────────────────────┐
│  人格特质分析                     │
│  大五人格模型五维度评估              │
├─────────────────────────────────┤
│                                 │
│  开放性     ████████████░░  78   │
│  尽责性     ██████████░░░░  62   │
│  外倾性     ████████░░░░░  55   │ ← 水平柱状图
│  宜人性     ███████████░░░  71   │
│  神经质     ████░░░░░░░░░  32   │
│                                 │
│  注:神经质为反向计分,低分更积极      │
│                                 │
└─────────────────────────────────┘

设计要点:

  • 使用水平柱状图,标签在左侧
  • 柱状图颜色使用主题色
  • 可添加参考线(如平均值)

5.3 Ikigai 报告

属性
维度数 4
推荐图表 饼图
理由 Ikigai 强调四个领域的平衡与交汇,饼图展示比例关系更直观

Slide 顺序:

  1. 封面页
  2. 饼图页(四领域分布)
  3. 核心发现页(每个领域分析)
  4. 建议页

布局示例:

┌─────────────────────────────────┐
│  Ikigai 分析                    │
│  你的生命热情与人生意义              │
├─────────────────────────────────┤
│                                 │
│         ┌─────────┐             │
│        /  热爱     \             │
│       /  45%   热爱+擅长        \   │
│      │    ●───────●            │
│      │    │  交汇  │            │
│       \   │  25%   │           │
│        \  ●───────●    /       │
│         \      │      /        │
│          └─────┘─────          │
│                                 │
│   ┌────┐ ┌────┐ ┌────┐ ┌────┐  │
│   │热爱│ │擅长│ │需要│ │报酬│  │
│   │45% │ │30% │ │15% │ │10% │  │
│   └────┘ └────┘ └────┘ └────┘  │
│                                 │
└─────────────────────────────────┘

设计要点:

  • 饼图可考虑用环形图(donut),中心显示"交汇度"
  • 四个小卡片展示各领域得分

5.4 Schwartz 价值观报告

属性
维度数 10
推荐图表 分组柱状图
理由 10 维度太多,雷达图过于拥挤;按价值观类别分组更易理解

Slide 顺序:

  1. 封面页
  2. 分组柱状图页(10 维度按类别分组)
  3. 核心发现页(主导价值观解读)
  4. 建议页

Schwartz 价值观分类:

类别 包含的价值观
开放性 自我导向、刺激
保守性 安全、顺从、传统
超越 善良、普遍主义
自我超越 成就、权力

布局示例:

┌─────────────────────────────────┐
│  价值观分析                      │
│  你的核心驱动力与人生方向            │
├─────────────────────────────────┤
│                                 │
│  【开放性】                       │
│  自我导向  ████████████░░  82   │
│  刺激      ████████░░░░░  58   │
│                                 │
│  【保守性】                       │
│  安全      ██████████░░░░  71   │
│  传统      ████████░░░░░  55   │
│                                 │
│  【超越】                        │
│  善良      ███████████░░░  76   │
│  普遍主义  ██████░░░░░░░  45   │
│                                 │
│  ...(其他类别)                   │
│                                 │
└─────────────────────────────────┘

设计要点:

  • 按 Schwartz 理论的四类价值观分组
  • 每组用不同深浅的主题色
  • 突出显示得分最高和最低的价值观

5.5 其他报告类型

理论类型 维度数 推荐图表 说明
正念认知 (MBCT) 5 柱状图 觉察力、接纳度等五维度
情绪粒度 3-5 雷达图 情绪识别、调节、表达
心流体验 3 雷达图 挑战-技能平衡、专注度等
注意力恢复 2-4 柱状图 Directed vs Fascination
Bowen 家庭 3-4 雷达图 自我分化、三角关系等
代际传递 2-3 柱状图 传承程度、觉察水平

5.6 图表选择决策树

维度数量
   │
   ├── 2-5 个维度
   │      │
   │      ├── 维度是对比关系(如 MBTI)──→ 雷达图
   │      ├── 维度是比例关系(如 Ikigai)──→ 饼图/环形图
   │      └── 维度是连续分数(如 大五)──→ 柱状图
   │
   ├── 6-10 个维度
   │      │
   │      └── 按类别分组 ──→ 分组柱状图
   │
   └── 10+ 个维度或无固定维度
          │
          └── 词云 / 洞察卡片

5.7 图表组件需求

组件 状态 说明
AnimatedRadarChart 已有 支持多维度雷达图
SimplePieChart 已有 支持饼图/环形图
WordCloud 已有 支持词云
BarChart 需新增 水平/垂直柱状图,支持分组
DistributionSlide 已有 支持 pie/bar 类型

TODO:

  • 新增 BarChart 组件,支持水平柱状图和分组功能

6. 动画与交互

6.1 翻页动画

当前问题:

  • 同时使用了 scale + opacity + 横向滑动,过于花哨

优化方案:

  • 仅保留横向滑动 + 轻微的 opacity 变化
  • 禁用 scale 动画
const opacity = scrollX.interpolate({
  inputRange,
  outputRange: [0.6, 1],  // 简化:只做轻微的透明度过渡
  extrapolate: 'clamp',
});

6.2 内容加载动画

  • 使用骨架屏(Skeleton)占位
  • 数据加载后使用 fadeIn 动画

7. 技术实现要点

7.1 组件结构

ReportViewer (主容器)
├── TopBar (顶部栏: 关闭按钮 + 页码)
├── FlatList (横向分页)
│   ├── CoverSlide (封面)
│   ├── RadarSlide | BarChartSlide | PieChartSlide (图表页)
│   ├── SummarySlide (摘要页)
│   └── InsightSlide (建议页)
└── BottomNav (底部导航)

7.2 数据映射

// 根据 report_type 确定使用哪种图表
function getChartType(reportType: string): 'radar' | 'bar' | 'pie' {
  switch (reportType) {
    case 'mbti': return 'radar'      // 4 维度用雷达图
    case 'big-five': return 'bar'    // 5 维度用柱状图
    case 'ikigai': return 'pie'      // 4 领域用饼图
    case 'values': return 'bar'      // 10 维度用柱状图
    default: return 'radar'
  }
}

7.3 关键文件修改

文件 修改内容
ReportViewer.tsx 背景色、顶栏、底栏、动画优化
SlideContainer.tsx 背景色、标题样式、内边距
CoverSlide.tsx 新布局设计
RadarSlide.tsx 雷达图自适应大小、柱状图支持
SummarySlide.tsx 卡片样式优化
InsightSlide.tsx 图标、优先级颜色
report.ts (types) 新增图表类型定义

8. 待确认事项

  1. 封面页是否需要显示理论类型的特色图形(如 Ikigai 的四圆图)?
  2. 10 维度价值观报告是否改为柱状图展示?
  3. 是否需要支持"自动播放"功能(3秒翻页)?
  4. 是否需要添加"分享"功能按钮?

9. 参考资料

  • 当前实现: zhiyuxing-app/src/components/report/
  • 理论配置: zhiyuxing-app/src/config/theories.ts
  • 类型定义: zhiyuxing-app/src/types/report.ts
← 所有文章