# 目标前端

- 端类型：管理后台（Web）
- 前端仓库：`mmg/hl-ui`（`https://git.1814.love:8443/mmg/hl-ui.git`）
- 联调环境：`http://192.168.100.160:9527`
- 其他前端：不需要处理

# 变更目标

房务管理员“订单列表”的第五个状态筛选由“异常”替换为“作废”。该筛选必须走后端分页，不能只过滤当前页。

# 接口变更

## 我的接单

`GET /v3/admin/order/grab-pool/my-claims/hotel`

新增查询参数取值：

```text
status=voided
```

语义：仅返回当前房务曾领取、后因订单调整生成新版本而作废的旧住宿需求。

响应保持原结构：

- `list`：本页作废需求；每行 `voided=true`。
- `total`：全部命中作废需求数，用于服务端分页。
- `stats.voided`：当前房务全部作废需求计数，不随当前状态筛选收窄。
- `voidReason`、`voidedAt`：作废原因和时间。
- `primaryAction.code=VIEW`：只读查看，不提供配房、最终确认、清空配房、转单等写操作。

现有 `status=exception` 契约仍保留给其他业务入口，语义不变；本页面不再把它作为第五个筛选项展示。

# 管理后台适配要求

房务管理员“订单列表”顶部筛选固定为：

1. 全部
2. 配房中
3. 待确认
4. 已完成
5. 作废

第五项适配：

- 文案由“异常”改为“作废”。
- value 由 `exception` 改为 `voided`。
- 数量徽标读取 `stats.voided`，不要继续读取 `stats.exception`。
- 点击后请求 `status=voided`，列表和 `total` 直接使用接口结果，禁止前端当前页二次筛选。
- 作废卡片保持红色只读样式，显示作废原因和作废时间。
- “查看”必须携带该行自己的住宿需求 ID 作为 `requirementId`，进入作废历史详情。

# 验收标准

- 在 `http://192.168.100.160:9527/housekeeper/orders` 不再显示“异常”筛选，显示“作废”。
- “作废”徽标数量等于接口 `stats.voided`。
- 点击“作废”后 Network 请求包含 `status=voided`。
- 多页作废数据的 `total`、分页与列表一致，不发生只过滤当前页的问题。
- 作废列表仅包含 `voided=true` 的历史需求；正常配房中的当前需求不混入。
- 作废行只保留“查看”，详情为只读状态。

# 后端交付

- 后端 Issue：`wx/HL#5103`
- 后端分支：`fix/5103-house-voided-filter`
- 合入并部署测试环境后，前端再进行 Network 与页面验收。
