## 1. Contract Alignment

- [ ] 1.1 为 `StandaloneCardQueryParams` 新增可选布尔参数 `has_active_package`
- [ ] 1.2 为 `DeviceQueryParams` 新增可选布尔参数 `has_active_package`
- [ ] 1.3 检查卡列表与设备列表请求参数组装逻辑，确保选择“否”时的 `has_active_package=false` 不会被误删

## 2. Search UI

- [ ] 2.1 在 IoT 卡管理页搜索栏新增 `是否有生效中的套餐` 筛选，并将选择结果提交为 `has_active_package`
- [ ] 2.2 在设备管理页搜索栏新增 `是否有生效中的套餐` 筛选，并将选择结果提交为 `has_active_package`
- [ ] 2.3 确保两个页面在搜索、重置、翻页和刷新时正确保留或清空该筛选条件

## 3. Verification

- [ ] 3.1 验证 IoT 卡管理页选择“是”时请求提交 `has_active_package=true`
- [ ] 3.2 验证 IoT 卡管理页选择“否”时请求提交 `has_active_package=false`，且不会被省略
- [ ] 3.3 验证设备管理页选择“是 / 否”时请求都能正确提交 `has_active_package`
- [ ] 3.4 验证两个页面重置搜索后，后续请求不再携带 `has_active_package`
