## 1. API 类型定义更新

- [x] 1.1 更新 `ExchangeQueryParams` 接口，新增 `flow_type` 和 `identifier` 查询参数
- [x] 1.2 更新 `CreateExchangeRequest` 接口，新增 `flow_type`、`new_identifier`、`migrate_data` 字段
- [x] 1.3 更新 `ExchangeResponse` 接口，新增 `flow_type`、`flow_type_name`、`shipped_at`、`completed_at` 字段

## 2. 创建换货单功能

- [x] 2.1 更新创建换货单弹窗，新增流程类型选择器（单选：物流换货/直接换货）
- [x] 2.2 实现流程类型切换逻辑，direct 时显示新资产标识符和数据迁移开关
- [x] 2.3 更新表单验证规则，direct 时 new_identifier 必填
- [x] 2.4 更新 API 调用，传递完整的创建参数

## 3. 换货单列表功能

- [x] 3.1 新增流程类型列，显示"物流换货"或"直接换货"
- [x] 3.2 新增流程类型筛选下拉框（全部/物流换货/直接换货）
- [x] 3.3 更新资产标识符搜索为模糊查询（同时匹配旧资产和新资产）
- [x] 3.4 更新列表查询参数，支持 flow_type 和 identifier 筛选

## 4. 换货单详情功能

- [x] 4.1 新增流程类型展示字段（flow_type_name）
- [x] 4.2 新增发货时间（shipped_at）和完成时间（completed_at）展示
- [x] 4.3 根据 flow_type 控制操作按钮显示：
  - direct 类型隐藏"发货"、"确认完成"、"取消"按钮
  - shipping + status=1 仅显示"取消"
  - shipping + status=2 显示"发货"和"取消"
  - shipping + status=3 仅显示"确认完成"
- [x] 4.4 根据 flow_type 控制信息区块显示：
  - direct 类型隐藏或标记"不适用"收货信息和物流信息区块

## 5. 发货功能

- [x] 5.1 在发货前检查 flow_type，仅允许 shipping 类型
- [x] 5.2 对 direct 类型返回的 400 错误进行友好提示

## 6. 确认完成功能

- [x] 6.1 在确认完成前检查 flow_type，仅允许 shipping 且 status=3
- [x] 6.2 对 direct 类型返回的错误进行友好提示

## 7. 取消换货功能

- [x] 7.1 在取消前检查 flow_type 和 status，仅允许 shipping 且 status 为 1 或 2
- [x] 7.2 对不符合条件的操作返回友好提示

## 8. 测试与验证

- [ ] 8.1 测试创建物流换货单，验证原有流程正常
- [ ] 8.2 测试创建直接换货单，验证自动完成逻辑
- [ ] 8.3 测试列表筛选，验证 flow_type 和 identifier 查询正确
- [ ] 8.4 测试详情页按钮和区块显示，验证不同流程类型的 UI 差异
- [ ] 8.5 测试操作限制，验证 direct 类型不可发货、完成、取消
- [ ] 8.6 测试历史数据兼容性，验证 flow_type 为空时视为 shipping
