## Context

卡和设备列表需要新增统一的实名状态筛选与展示能力。设备的实名状态由设备列表接口直接返回，不能通过关联卡在前端二次计算，以避免多卡设备或卡绑定关系变化时出现不一致。

## Goals / Non-Goals

- Goals:
  - 支持按“全部”“已实名”“未实名”筛选卡和设备。
  - 直接展示后端返回的实名状态名称。
  - 在搜索、刷新、分页和导出查询中保留当前筛选条件。
- Non-Goals:
  - 不新增或修改实名认证流程、策略配置或状态更新操作。
  - 不在前端推导设备实名状态。
  - 不变更其他资产详情页的实名状态取值规则。

## Decisions

- Decision: 使用可选数值查询参数 `real_name_status`，其中 `0` 表示未实名、`1` 表示已实名；“全部”对应不传该参数。
- Decision: 列表展示优先使用每条记录的 `real_name_status_name`，而非根据 `real_name_status` 写死文案。
- Decision: 设备列表把接口响应中的 `real_name_status` 与 `real_name_status_name` 作为唯一状态来源，不读取或遍历绑定卡数据。
- Alternatives considered: 前端将 `0` 和 `1` 映射为固定文案。未采用，因为后端已提供标准显示名称，直接使用可避免展示口径分叉。

## Risks / Trade-offs

- 后端未返回 `real_name_status_name` 时无法满足状态名称展示契约 -> 联调时校验列表响应字段，并将该字段设为必需的列表类型字段。
- 卡列表实名认证筛选依赖单卡列表接口 -> 实施时确保筛选参数发往 `GET /api/admin/iot-cards/standalone`。

## Migration Plan

1. 扩展卡与设备列表 API 类型和查询参数。
2. 接入筛选控件、查询参数及状态列。
3. 验证全部、已实名、未实名筛选以及分页和重置行为。
4. 如需回滚，移除前端筛选控件、查询参数和状态列；不涉及数据迁移。

## Open Questions

- 无。
