# Change: 退款企微审批详情与业务处理状态

## Why

退款申请创建时需要一次性提交完整业务资料，后续审批由企微完成，后台系统不再承担本地通过、驳回、退回或人工退款确认。当前退款页面仍展示本地审批操作，且详情无法完整呈现企微审批过程和退款业务处理结果，容易造成审批状态与实际处理状态混淆。

## What Changes

- 退款创建表单支持退款金额、退款原因、备注和附件，并以对象存储附件对象数组提交。
- 创建后申请退款金额不可在本地修改，审批金额以企微审批结果为准。
- 退款详情拆分为退款业务信息、企微审批信息和业务处理结果三个区域。
- 企微审批区域展示 `sp_no`、审批状态、申请人、审批人、意见、附件和审批时间线。
- 业务处理区域展示 `processing_status`、处理失败摘要和“系统重试中/联系管理员”提示。
- 退款列表和详情仅展示审批及处理状态，不提供本地通过、驳回、退回或人工退款确认按钮。
- 重新申请仅允许已驳回、已撤销或已删除的退款记录，并允许修改金额、凭证和原因；订单、资产和提交人快照不可修改。
- 继续使用 `POST /api/admin/refunds`、`GET /api/admin/refunds/{id}` 和 `POST /api/admin/refunds/{id}/resubmit`，同步扩展请求和响应契约。

## Impact

- Affected specs:
  - `refund-management`
- Affected code:
  - `src/types/api/refund.ts`
  - `src/api/modules/refund.ts`
  - `src/views/finance/refund/index.vue`
  - `src/views/finance/refund/detail.vue`
  - 退款创建与附件展示组件
- API contracts:
  - `POST /api/admin/refunds`
  - `GET /api/admin/refunds/{id}`
  - `POST /api/admin/refunds/{id}/resubmit`
- Dependencies:
  - 后端返回完整 `approval` 对象和 `processing_status`。
  - 对象存储上传接口可返回 `file_key`，前端维护文件名和文件大小。
  - 企微审批系统负责审批动作和审批结果同步。
- Out of scope:
  - 前端发起、撤回或执行企微审批动作。
  - 前端实现财务线下退款。
  - 前端根据状态码自行推导审批结果或业务处理结果。
- Breaking changes:
  - 退款审批相关本地操作按钮和对应前端调用不再适用于企微审批退款流程。
