# 周期聚焦重构 — 设计规格

## 概述

将所有操作页面的周期选择统一为"专注当下"模式：默认进入当前进行中周期，已归档和未开始周期从操作页面移除，改为独立入口访问。

## 变更清单

### 1. 新增组件：PeriodBanner

路径：`frontend/src/components/PeriodBanner.vue`

Props:
- `periods` — 所有周期列表（由父页面加载，通常来自 `periodApi.list()`）
- `modelValue` — 当前选中周期 ID
- `showSwitch` — 是否显示切换按钮（默认 true）

Emits:
- `update:modelValue` — 切换周期时触发

行为：
- 过滤出进行中周期（status != 'ARCHIVED'）
- 默认选中当前生效的周期
- 展示彩色横幅：状态图标 + 周期名 + 日期区间 + 状态标签
- 多个进行中周期时右侧显示切换下拉
- 横幅颜色随周期状态变化

### 2. 新增页面：历史记录

路由：`/scores/history`

组件：`frontend/src/views/scoring/HistoryView.vue`

布局：左侧已归档周期列表 + 右侧选中周期的绩效详情（只读）

API：复用 `GET /api/scores/my?periodId=xxx`

### 3. 修改页面（6 处）

| 页面 | 改动 |
|------|------|
| MyOkrView | 替换 chip 选择器 → PeriodBanner；过滤掉已归档/未开始 |
| TeamOkrView | 同上 |
| ScoringListView | 替换 el-select → PeriodBanner；右上角「历史记录」按钮 |
| MyResultView | 替换 el-select → PeriodBanner；右上角「历史记录」按钮 |
| FeedbackView | 替换周期选择 → PeriodBanner |
| PeriodListView | 不变（管理员全集视图） |

### 4. 路由新增

```javascript
{ path: 'scores/history', name: 'ScoreHistory', component: () => import('../views/scoring/HistoryView.vue'), meta: { title: '历史绩效' } }
```

### 5. 后端

无需改动。现有 API 已支持按 `periodId` 查询，前端过滤即可。
