## 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` 字段