Files
ccdi/openspec/changes/sync-intermediary-frontend-with-detailed-fields/tasks.md

140 lines
4.7 KiB
Markdown
Raw Normal View History

2026-01-29 22:03:42 +08:00
# Tasks: 同步前端以支持中介黑名单详细字段和类型化模板导入
## 任务列表
### 阶段 1API 接口层扩展
- [x] 1.1 在 `ruoyi-ui/src/api/dpcIntermediary.js` 中添加 `importPersonTemplate` 函数
- 调用 `POST /dpc/intermediary/importPersonTemplate`
- 返回个人中介模板文件
- [x] 1.2 在 `ruoyi-ui/src/api/dpcIntermediary.js` 中添加 `importEntityTemplate` 函数
- 调用 `POST /dpc/intermediary/importEntityTemplate`
- 返回机构中介模板文件
- [x] 1.3 在 `ruoyi-ui/src/api/dpcIntermediary.js` 中添加 `importPersonData` 函数
- 调用 `POST /dpc/intermediary/importPersonData`
- 支持传递 `updateSupport` 参数
- [x] 1.4 在 `ruoyi-ui/src/api/dpcIntermediary.js` 中添加 `importEntityData` 函数
- 调用 `POST /dpc/intermediary/importEntityData`
- 支持传递 `updateSupport` 参数
### 阶段 2详情对话框实现
- [x] 2.1 在 `ruoyi-ui/src/views/dpcIntermediary/index.vue` 的 data 中添加详情相关属性
- 添加 `detailOpen: false`
- 添加 `detailData: {}`
- [x] 2.2 在 `ruoyi-ui/src/views/dpcIntermediary/index.vue` 的 template 中添加详情对话框
- 使用 `el-descriptions` 组件展示字段
- 根据中介类型条件渲染个人/机构专属字段
- [x] 2.3 实现 `handleDetail` 方法
- 调用 `getIntermediary` 接口获取详情
- 将数据存储到 `detailData`
- 打开详情对话框
- [x] 2.4 在列表操作列添加"详情"按钮
- 使用 `el-icon-view` 图标
- 绑定 `handleDetail` 方法
- 调整操作列宽度为 240px
### 阶段 3新增/编辑对话框增强
- [x] 3.1 在 `ruoyi-ui/src/views/dpcIntermediary/index.vue` 的 data 中添加 `activeTab` 属性
- 默认值为 `'basic'`
- [x] 3.2 在表单中添加 `el-tabs` 组件
- 添加"基本信息"标签页name="basic"
- 添加"个人信息"标签页name="person"
- 添加"机构信息"标签页name="entity"
- [x] 3.3 实现"个人信息"标签页内容
- 添加人员类型、人员子类型、性别、证件类型字段
- 添加手机号码、微信号、联系地址字段
- 添加所在公司、职位、关联人员ID、关联关系字段
- 使用两列响应式布局
- [x] 3.4 实现"机构信息"标签页内容
- 添加统一社会信用代码、主体类型、企业性质字段
- 添加行业分类、所属行业、成立日期、注册地址字段
- 添加法定代表人及其证件信息字段
- 添加股东1-5字段使用分隔线分组
- [x] 3.5 更新 `reset` 方法
- 添加所有个人字段的初始化
- 添加所有机构字段的初始化
- 重置 `activeTab``'basic'`
- [x] 3.6 实现 `handleTypeChange` 方法
- 监听中介类型变化
- 自动切换到对应的标签页
- [x] 3.7 调整对话框宽度
- 将宽度从 600px 调整为 900px
- 适应更多字段的展示
### 阶段 4导入对话框改造
- [x] 4.1 在导入对话框中添加类型选择单选框组
- 选项个人中介person、机构中介entity
- 默认选择"个人中介"
- [x] 4.2 在 `upload` 数据中添加 `importType` 属性
- 默认值为 `'person'`
- [x] 4.3 修改 `downloadImportTemplate` 方法
- 根据 `upload.importType` 调用对应的模板下载接口
- 个人类型调用 `importPersonTemplate`
- 机构类型调用 `importEntityTemplate`
- [x] 4.4 修改 `submitFileForm` 方法
- 根据 `upload.importType` 动态设置 `upload.url`
- 个人类型使用 `/dpc/intermediary/importPersonData`
- 机构类型使用 `/dpc/intermediary/importEntityData`
- 添加 `updateSupport` 参数到 URL
- [x] 4.5 调整导入对话框宽度
- 从 400px 调整为 450px
- 适应新增的类型选择区域
### 阶段 5测试验证
- [x] 5.1 测试详情对话框功能
- 测试个人类型详情显示
- 测试机构类型详情显示
- 测试旧数据详情显示(字段为空)
- [x] 5.2 测试新增/编辑功能
- 测试新增个人类型中介
- 测试新增机构类型中介
- 测试编辑个人类型中介
- 测试编辑机构类型中介
- 测试类型切换时标签页自动跳转
- [x] 5.3 测试导入功能
- 测试个人类型模板下载
- 测试机构类型模板下载
- 测试个人类型数据导入
- 测试机构类型数据导入
- 测试更新支持选项
- [x] 5.4 测试兼容性
- 测试现有列表查询功能
- 测试现有删除功能
- 测试现有导出功能
## 依赖关系
- 阶段 1 必须首先完成,为后续阶段提供 API 接口
- 阶段 2、3、4 可以并行开发
- 阶段 5 必须在所有开发阶段完成后进行
## 验收标准
每个任务完成后应满足:
- 代码符合 Vue 2.x 和 Element UI 规范
- 功能与设计文档描述一致
- 不影响现有功能的正常运行