# 03 — 实测:列表族(视图/筛选/分页/搜索/最近访问)
Type: task
Status: open
Blocked by: 01, 02
## Question
针对**列表族**的原型页,用 HTML+fetch demo 实测每个预期接口,把结论(✅/⚠/❌)+ 证据(响应片段/截图路径)落到本票的「实测记录」段,供票 06 聚合。
## 覆盖的原型页(预计)
从 `final-scope.json` 里筛"列表/最近访问/公海列表"类:
- A3-0-1 最近访问列表
- A3-1-1 销售机会列表("我"视角,5 类视图)
- A3-2-1 全部销售机会管理列表(管理视角)
- A3-3-1 公海列表
- (若 spec-endpoints.md 揭示更多列表相关接口——如"自定义视图 CRUD"——也纳入本票)
## 实测方法
1. **建子页**:`.scratch/opportunity-verify/frontend/list.html`,``
2. **面板结构**:每个预期接口一个 `crm.panel(id, title)`
- 输入区:极简 `` 收 body/query 参数(默认给一组合理值)
- 触发按钮 → `crm.call(...)` → `crm.render(id, res)`
3. **用 webapp-testing skill 跑**:Playwright 打开 `list.html`,登录 → 逐个点触发 → 把每个面板的响应截图 / 抓 JSON 片段
4. **判据**:
- ✅ 存在正确:接口存在 + 响应字段能对上原型列表列
- ⚠ 实现有问题:接口存在但字段缺、字段名错、状态码不对、分页语义不符
- ❌ 未实现:调用返回 404 或 spec 里存在的接口在后端找不到入口
## 实测记录(本票收)
```markdown
### 接口:POST /api/opportunity/page
- 原型页:A3-1-1 销售机会列表
- 预期:分页返回带商机名/来源/状态/…
- 实测:
- 响应字段与原型对比:
| 原型列 | 期望字段 | 实际字段 | 匹配 |
| 商机名 | opportunityName | ??? | ✅/⚠/❌ |
- 结论:✅ / ⚠ / ❌
- 备注:<异常细节 / 建议>
```
## 完成判据
- `list.html` 存在,webapp-testing 能跑通
- 本票文末追加「实测记录」段,覆盖所有本子域预期接口
- 每条实测结论清晰(✅/⚠/❌),配证据
## 不做
- 修 bug(destination 明确排除)
- 详情/操作/规则族的实测(另有票)