# P6→NS1/RNS1 缺失项 #17：任务列表的批量操作

## 简要结论
- 状态：❌ 未解决
- 风险等级：🟡 低
- 前端无多选模式、无批量操作 UI，后端无批量操作接口。所有操作均为单任务粒度。

## 详细审查

### 审查范围
- `apps/miniprogram/miniprogram/pages/task-list/task-list.wxml`
- `apps/miniprogram/miniprogram/pages/task-list/task-list.ts`
- `apps/backend/app/routers/xcx_tasks.py`

### 发现

#### 前端
1. task-list.wxml 中无 checkbox/多选组件
2. task-list.ts 中无 `selectedTasks`/`isMultiSelect`/`batchMode` 等状态变量
3. 无"全选"/"批量标记完成"/"批量放弃"等操作按钮
4. 无编辑模式切换入口（如顶部"编辑"按钮）

#### 后端
1. `xcx_tasks.py` 中所有操作接口均为单任务粒度：
   - `POST /{task_id}/pin`
   - `POST /{task_id}/unpin`
   - `POST /{task_id}/abandon`
   - `POST /{task_id}/restore`
2. 无批量操作接口（如 `POST /batch/pin`、`POST /batch/abandon`）

### 证据
后端路由清单（全部为单任务操作）：
```python
@router.post("/{task_id}/pin")      # 单个置顶
@router.post("/{task_id}/unpin")    # 单个取消置顶
@router.post("/{task_id}/abandon")  # 单个放弃
@router.post("/{task_id}/restore")  # 单个恢复
```

task-list.ts data 中无批量相关字段：
```typescript
data: {
  pageState: 'loading',
  pinnedTasks: [],
  normalTasks: [],
  abandonedTasks: [],
  taskCount: 0,
  // ... 无 selectedTasks、batchMode 等
}
```

### 建议
1. 此功能优先级较低 — 当前任务列表规模（每日 10-30 条）下，单任务操作已满足需求
2. 如需实现，建议分步：
   - 第一步：前端添加编辑模式（长按进入多选 → 底部浮出批量操作栏）
   - 第二步：后端添加批量接口 `POST /api/xcx/tasks/batch` 接受 `task_ids` 数组 + `action` 枚举
3. 批量操作建议限制：单次最多选择 20 条，防止误操作
4. 建议在用户反馈确认需求后再实现，避免过度设计
