## ADDED Requirements

### Requirement: Admin Operation Logs Prefer Readable Business Fields

The admin asset operation log view SHALL prefer readable business fields from operation log content over internal identifiers when rendering change content.

#### Scenario: Show readable fields for card allocation and recall logs

- **GIVEN** 一条 `card_allocate` 或 `card_recall` 日志包含 `iccid`、`iccids`、`shop_name`、`to_shop_name` 或 `target_shop_name`
- **WHEN** 日志列表渲染该条记录
- **THEN** 页面 MUST 优先展示这些可读业务字段
- **AND** 用户 MUST NOT 依赖内部店铺 ID 或其他内部标识来理解日志含义

#### Scenario: Show readable fields for device allocation and recall logs

- **GIVEN** 一条 `device_allocate` 或 `device_recall` 日志包含 `device_virtual_no`、`device_virtual_nos`、`device_imei`、`shop_name`、`target_shop_name`
- **WHEN** 日志列表渲染该条记录
- **THEN** 页面 MUST 优先展示这些设备和店铺的可读字段

#### Scenario: Show readable fields for device bind and unbind logs

- **GIVEN** 一条 `device_bind_card` 或 `device_unbind_card` 日志包含 `device_virtual_no`、`device_imei`、`device_sn`、`iccid`
- **WHEN** 日志列表渲染该条记录
- **THEN** 页面 MUST 直接展示这些可读业务字段

### Requirement: Admin Operation Logs Hide Internal ID Fields

The admin asset operation log view MUST suppress internal ID-like fields from rendered change content.

#### Scenario: Hide internal id fields in change content

- **GIVEN** 某条日志的 `operation_content_before`、`operation_content_after` 或相关字段说明中包含 `id`、`*_id`、`*Id` 或 `*ID`
- **WHEN** 日志变更内容被渲染
- **THEN** 这些内部 ID 字段 MUST NOT 出现在界面上
- **AND** `ICCID`、`IMEI`、`SN`、设备虚拟号、店铺名称等业务可读标识 MUST 仍然允许显示

#### Scenario: Shared log dialog follows the same hidden-id rule

- **GIVEN** 用户从资产详情页、设备列表页或卡列表页打开后台操作审计日志
- **WHEN** 同一条日志在不同入口被渲染
- **THEN** 各入口 MUST 使用一致的字段过滤规则
- **AND** 各入口 MUST 一致隐藏内部 `xxxid/xxxID` 字段
