1. 资产列表页面的IoT卡, 响应新增了返回了一个device_virtual_no这个字段
    如果这个字段为空显示的就是未绑定设备, 如果是有值就显示已绑定设备

2.资产列表里面加一个店铺联级查询条件
/api/admin/iot-cards/standalone?shop_id=xxxx

# 店铺联级查询

## 基本信息

| 项目 | 内容 |
|------|------|
| 接口地址 | `GET /api/admin/shops/cascade` |
| 认证方式 | Bearer Token (JWT) |
| 所属模块 | 店铺管理 |

## 请求参数

| 参数名 | 类型 | 必填 | 说明 |
|--------|------|------|------|
| `shop_name` | string | 否 | 店铺名称（模糊查询），最大长度 100 |
| `parent_id` | integer | 否 | 上级店铺 ID，不传则查询顶级店铺 |

## 响应参数

### 成功响应（200）

{
  "code": 0,
  "data": [
    {
      "id": 1,
      "shop_name": "总店",
      "has_children": true
    },
    {
      "id": 2,
      "shop_name": "分店 A",
      "has_children": false
    }
  ],
  "msg": "success",
  "timestamp": "2026-05-09T14:28:00Z"
}

#### DtoShopCascadeItem

| 字段 | 类型 | 说明 |
|------|------|------|
| `id` | integer | 店铺 ID |
| `shop_name` | string | 店铺名称 |
| `has_children` | boolean | 是否有下级店铺 |

3. 资产列表是设备的情况下让默认选择的搜索类型是虚拟号, 并把这个虚拟号改成设备号, 然后那个选择搜索类型的不要了,如果是IoT卡的时候就是ICCID, 也不要那个选择搜索类型去掉

4. 在资产详情里面制造商,批次号字段去掉, 然后绑定的IoT卡里面电话改成MSISDN, 实名改显眼一点, 加一个运营商(carrier_name)返回里面有返回这个字段

5. 设备实时状态里面的下载流量,上传流量去掉.
6. 套餐列表里面的生肖中的那xxx至xxx 时间要明显一点
7. 创建时间和网关同步删掉, 把最后在线改成最后上线时间放到设备实时状态里面
