> **前置条件** — 执行以下任何命令前，请先确认已完成认证。如未认证，参见 [`../../shb-shared/SKILL.md`](../../shb-shared/SKILL.md)。

# shb-cli event detail

事件详情查询。返回指定事件的完整信息，包含表单字段内容、执行人等。

## 获取事件详情

```bash
shb-cli event detail --id <eventId>
```

`--id` 为事件的系统唯一标识（UUID），**不是**事件编号（eventNo）。

### 格式化输出

```bash
shb-cli event detail --id <eventId> --format-data
shb-cli event detail --id <eventId> --format-data --fields eventNo,state,cusName,executorName,createTime
shb-cli event detail --id <eventId> --format-data --fields eventNo,state,cusName,executorName,createTime -o table
```

`--format-data` 会根据详情里的 `templateId` 加载字段元数据，把字段文案和值整理成 `columns + row`。`--fields` 为逗号分隔的字段 key。

## 响应内容

`-o raw` 的顶层结构可能是扁平的事件对象，也可能像工单一样包裹在 `initJson.event` 下（取决于后端实现），CLI 已自动识别两种形态并提取。事件常用字段（EventVO）：

| 字段 | 说明 |
|------|------|
| `eventNo` / `state` | 事件编号 / 状态 |
| `templateId` / `templateName` | 事件类型 |
| `cusName` | 客户名称 |
| `lmName` / `lmPhone` | 联系人姓名/电话 |
| `executorName` | 负责人 |
| `createUserName` / `createTime` | 创建人 / 创建时间 |
| `completeTime` | 完成时间 |
| `degree` | 满意度（中文值，直接可读） |
| `taskNo` | 已转换的关联工单编号 |
| `attribute` | 自定义字段值，key 是 `fieldName`，需映射成中文显示名（见下方「注意」） |

如需探索不确定的字段，先存文件再查，**不要重复请求接口**：

```bash
shb-cli event detail --id <eventId> -o raw > /tmp/event.json
jq 'keys' /tmp/event.json
```

## 如何获取 eventId

事件详情接口需要传入 `id`（系统 UUID），而非 `eventNo`（事件编号）。

**如果当前对话中已有该事件的 `id`（UUID），直接用，不要再搜索一遍。**  
只有 id 真的未知时才按以下方式获取：

```bash
# 用 eventNo 或客户名作为关键字搜索，取第一条结果的 id
shb-cli event search --keyword "E-20260101" --format-data --fields eventNo,id,state,cusName
```

## 注意

- `--id` 必须传事件的系统 UUID，不是事件编号（eventNo）。
- 如果不知道 id，先用 `event search --keyword <eventNo>` 搜索定位。
- 返回数据为当前登录用户在当前租户下可见范围，不同用户可见详情可能不同。
- **自定义字段（`attribute`）的 key 是 `fieldName`（如 `field_xxx`），绝不能直接拿这个 key 显示给用户**。展示前先用 `event field list --type-id <templateId>` 取字段定义，按 `fieldName` 匹配出对应的 `displayName`（中文字段名），给用户看「中文字段名：值」；匹配不到的字段宁可不展示，也不要把 `field_xxx` 这类英文 key 抛给用户。用 `--format-data` 输出时 CLI 已按字段元数据转换，一般无需自行映射。
