# P6→NS1/RNS1 缺失项 #12：任务列表页的搜索功能

## 简要结论
- 状态：❌ 未解决
- 风险等级：🟠 中
- 前端无搜索组件，后端 TASK-1 API 不支持搜索参数，前端 services 层无搜索相关调用。

## 详细审查

### 审查范围
- `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`
- `apps/backend/app/schemas/xcx_tasks.py`
- `apps/miniprogram/miniprogram/services/`（grep 搜索）

### 发现
1. task-list.wxml 中无 `<t-search>` 或任何搜索输入组件
2. task-list.ts 中无搜索相关的 data 字段（如 `searchKeyword`）或方法（如 `onSearch`）
3. 后端 `GET /api/xcx/tasks` 仅支持 `status`、`page`、`page_size` 三个查询参数，无 `keyword`/`search`/`query` 参数
4. services 目录下 grep `search|keyword|query` 结果为空
5. TaskListResponse schema 中无搜索相关字段

### 证据
后端路由签名：
```python
@router.get("", response_model=TaskListResponse)
async def get_tasks(
    status: str = Query("pending", pattern="^(pending|completed|abandoned)$"),
    page: int = Query(1, ge=1),
    page_size: int = Query(20, ge=1, le=100),
    user: CurrentUser = Depends(require_approved()),
):
```
无 `keyword` 或 `search` 参数。

task-list.wxml 中 banner 区域和任务列表区域之间无搜索栏。

### 建议
1. 前端：在 banner 下方、任务列表上方添加 `<t-search>` 组件，支持按客户名/手机号搜索
2. 后端：`GET /api/xcx/tasks` 添加可选参数 `keyword: str = Query(None)`，在 SQL 中对 `member_name` 和 `member_phone` 做 `ILIKE` 模糊匹配
3. 前端搜索应做防抖（300ms），避免频繁请求
4. 搜索结果为空时显示专用空状态（"未找到匹配的客户"）
