# 员工亲属关系维护双 Sheet 导入前端实施计划

## 目标
- 将员工亲属关系维护页面顶部两个导入按钮合并为一个。
- 上传弹窗改为双 Sheet 提示和统一模板下载。
- 保留原有两套任务轮询与失败记录入口，但失败记录列表统一展示 `Sheet / Excel行号 / 失败原因`。

## 实施内容
- 页面入口调整
  - 删除“导入亲属资产信息”独立按钮。
  - 删除独立资产上传弹窗，仅保留统一导入弹窗。
- 上传交互调整
  - 导入弹窗提示模板包含 `员工亲属关系信息` 和 `亲属资产信息` 两个 Sheet。
  - 下载模板文件名统一为“员工亲属关系维护导入模板”。
  - 上传成功后解析后端返回的 `relationTaskId`、`assetTaskId`。
- 状态管理调整
  - 有 `relationTaskId` 时沿用原亲属关系任务轮询与失败记录缓存。
  - 有 `assetTaskId` 时沿用原亲属资产任务轮询与失败记录缓存。
  - 未返回的任务类型不主动清空既有历史失败记录状态。
- 失败记录展示调整
  - 亲属关系失败记录弹窗新增 `Sheet`、`Excel行号` 列。
  - 亲属资产失败记录弹窗新增 `Sheet`、`Excel行号` 列。

## 验证
- `source ~/.nvm/nvm.sh && nvm use 14.21.3 >/dev/null && cd ruoyi-ui && node tests/unit/staff-family-asset-detail-import-ui.test.js`
- `source ~/.nvm/nvm.sh && nvm use 14.21.3 >/dev/null && cd ruoyi-ui && node tests/unit/staff-family-asset-submit-flow.test.js`
- `source ~/.nvm/nvm.sh && nvm use 14.21.3 >/dev/null && cd ruoyi-ui && node tests/unit/staff-family-asset-maintenance-layout.test.js`
- 页面联调覆盖：
  - 只导亲属关系 Sheet
  - 只导亲属资产 Sheet
  - 双 Sheet 同时导入
  - 两类失败记录列表都显示 `Sheet / Excel行号 / 失败原因`

## 影响范围
- `ruoyi-ui/src/views/ccdiStaffFmyRelation/index.vue`
