Files
ccdi/docs/plans/2026-03-12-staff-family-asset-maintenance-frontend-implementation.md

7.3 KiB

员工亲属资产维护前端实施计划

For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.

Goal: 在员工亲属关系维护页面中增加亲属资产的可视化维护、详情展示和资产导入交互能力。

Architecture: 保持 ccdiStaffFmyRelation 为唯一页面入口,在现有新增、编辑、详情弹窗中扩展亲属资产子表,并新增独立的亲属资产导入状态、弹窗和失败记录视图。资产归属字段不在前端暴露,提交时仅上传资产业务字段列表。

Tech Stack: Vue 2, Element UI, 若依前端脚手架, Axios request 封装


Task 1: 扩展前端 API 封装资产导入与聚合保存字段

Files:

  • Modify: D:\ccdi\ccdi\ruoyi-ui\src\api\ccdiStaffFmyRelation.js
  • Create: D:\ccdi\ccdi\ruoyi-ui\src\api\ccdiAssetInfo.js

Step 1: 保持亲属关系 API 支持传递 assetInfoList

  • addRelation
  • updateRelation
  • getRelation

Step 2: 新增资产导入 API 文件

  • 下载模板
  • 提交导入
  • 查询状态
  • 查询失败记录

Step 3: 自查接口路径

  • 使用 /ccdi/assetInfo/*
  • 与现有 staffFmyRelation API 区分清楚

Step 4: 运行构建检查

Run: npm run build:prod Expected: API 引用路径无语法错误

Step 5: 提交

git add ruoyi-ui/src/api/ccdiStaffFmyRelation.js ruoyi-ui/src/api/ccdiAssetInfo.js
git commit -m "新增亲属资产前端接口封装"

Task 2: 扩展亲属关系表单模型与重置逻辑

Files:

  • Modify: D:\ccdi\ccdi\ruoyi-ui\src\views\ccdiStaffFmyRelation\index.vue

Step 1: 为 form 增加 assetInfoList

  • 默认值设为空数组
  • 重置时同步清空

Step 2: 处理详情与编辑回显

  • getRelation 返回后回填 assetInfoList
  • 保证空值时回退为 []

Step 3: 在提交前过滤空资产行

  • 仅保留有实际内容的资产
  • 不在前端传 familyIdpersonId

Step 4: 本地验证

Run: npm run build:prod Expected: 页面脚本编译通过

Step 5: 提交

git add ruoyi-ui/src/views/ccdiStaffFmyRelation/index.vue
git commit -m "扩展亲属关系表单资产模型"

Task 3: 在新增/编辑弹窗中加入亲属资产子表

Files:

  • Modify: D:\ccdi\ccdi\ruoyi-ui\src\views\ccdiStaffFmyRelation\index.vue

Step 1: 新增“亲属资产信息”分区

  • 放在基本信息下方
  • 右侧增加“新增资产”按钮

Step 2: 渲染可编辑子表

  • 字段包含资产大类、资产小类、资产名称、产权占比、购买/评估日期、资产原值、当前估值、估值截止日期、资产状态、备注、操作

Step 3: 支持资产行增删

  • 新增空白行
  • 删除当前行

Step 4: 对新增资产按钮加前置限制

  • 新增模式下未填写 relationCertTyperelationCertNo 时禁用
  • 提示“请先填写关系人证件信息”

Step 5: 构建验证

Run: npm run build:prod Expected: 模板与脚本通过编译

Step 6: 提交

git add ruoyi-ui/src/views/ccdiStaffFmyRelation/index.vue
git commit -m "新增亲属资产编辑子表"

Task 4: 锁定编辑场景下的亲属证件字段

Files:

  • Modify: D:\ccdi\ccdi\ruoyi-ui\src\views\ccdiStaffFmyRelation\index.vue

Step 1: 将 relationCertType 在编辑场景下置灰

  • :disabled="!isAdd"

Step 2: 将 relationCertNo 在编辑场景下置灰

  • :disabled="!isAdd"

Step 3: 核对员工身份证号选择器

  • 保持当前新增可选、编辑禁改逻辑

Step 4: 构建验证

Run: npm run build:prod Expected: 字段禁用逻辑无模板错误

Step 5: 提交

git add ruoyi-ui/src/views/ccdiStaffFmyRelation/index.vue
git commit -m "锁定亲属证件字段编辑能力"

Task 5: 在详情弹窗展示亲属资产信息

Files:

  • Modify: D:\ccdi\ccdi\ruoyi-ui\src\views\ccdiStaffFmyRelation\index.vue

Step 1: 增加详情分区

  • 标题为“亲属资产信息”

Step 2: 使用只读表格展示资产

  • 展示关键资产字段
  • 不展示归属键和主键

Step 3: 增加空状态

  • 无资产时显示“暂无亲属资产信息”

Step 4: 构建验证

Run: npm run build:prod Expected: 详情模板渲染通过

Step 5: 提交

git add ruoyi-ui/src/views/ccdiStaffFmyRelation/index.vue
git commit -m "新增亲属资产详情展示"

Task 6: 新增亲属资产导入入口与状态管理

Files:

  • Modify: D:\ccdi\ccdi\ruoyi-ui\src\views\ccdiStaffFmyRelation\index.vue

Step 1: 在按钮区新增入口

  • “导入亲属资产信息”
  • “查看亲属资产导入失败记录”

Step 2: 新增独立上传弹窗状态

  • assetUpload
  • assetImportPollingTimer
  • assetCurrentTaskId

Step 3: 新增独立 localStorage key

  • 例如 staff_fmy_asset_import_last_task

Step 4: 新增资产导入失败记录弹窗与分页状态

  • 与现有亲属关系导入分开维护

Step 5: 构建验证

Run: npm run build:prod Expected: 导入状态变量与模板绑定正常

Step 6: 提交

git add ruoyi-ui/src/views/ccdiStaffFmyRelation/index.vue
git commit -m "新增亲属资产导入交互状态"

Task 7: 接通资产导入上传、轮询与失败记录查询

Files:

  • Modify: D:\ccdi\ccdi\ruoyi-ui\src\views\ccdiStaffFmyRelation\index.vue
  • Check: D:\ccdi\ccdi\ruoyi-ui\src\api\ccdiAssetInfo.js

Step 1: 实现模板下载

  • 调用资产导入模板接口

Step 2: 实现上传成功回调

  • 校验返回的 taskId
  • 保存任务状态
  • 启动轮询

Step 3: 实现轮询完成处理

  • 根据成功/失败数展示通知
  • 刷新页面列表
  • 控制失败记录按钮显示

Step 4: 实现失败记录查询

  • 独立调用资产失败记录接口
  • 处理记录过期和网络错误提示

Step 5: 构建验证

Run: npm run build:prod Expected: 资产导入流程相关方法通过编译

Step 6: 提交

git add ruoyi-ui/src/views/ccdiStaffFmyRelation/index.vue
git commit -m "接通亲属资产导入轮询与失败记录"

Task 8: 调整样式与交互可读性

Files:

  • Modify: D:\ccdi\ccdi\ruoyi-ui\src\views\ccdiStaffFmyRelation\index.vue

Step 1: 为资产分区补样式

  • 表格区间距
  • 空状态样式
  • 分区标题样式

Step 2: 检查弹窗宽度

  • 保证新增/编辑/详情在资产表加入后仍可读

Step 3: 检查移动端/窄屏降级

  • 避免列宽完全挤压

Step 4: 构建验证

Run: npm run build:prod Expected: 样式变更不影响构建

Step 5: 提交

git add ruoyi-ui/src/views/ccdiStaffFmyRelation/index.vue
git commit -m "优化亲属资产页面样式与布局"

Task 9: 执行前端联调验证

Files:

  • Check: D:\ccdi\ccdi\ruoyi-ui\src\views\ccdiStaffFmyRelation\index.vue

Step 1: 运行生产构建

Run: cd ruoyi-ui && npm run build:prod Expected: 构建成功

Step 2: 启动前端开发环境

Run: cd ruoyi-ui && npm run dev Expected: 本地页面可访问

Step 3: 手工验证页面场景

  • 新增亲属关系并添加资产
  • 编辑亲属关系并维护资产
  • 验证证件类型、证件号码禁改
  • 查看详情资产区
  • 触发亲属资产导入和失败记录查看

Step 4: 整理验证结果

  • 记录已验证场景和遗留问题

Step 5: 提交

git add .
git commit -m "完成亲属资产前端联调验证"