适用场景
- A 和 B 两个数据对象存在「多对一关系」
- 在页面中同时展示 A (主对象)和 B(明细对象)数据,且 A 下钻到 B
- 在页面中实现两个对象数据的联动增删改查,例如:
- 删除 A 时,会自动删除相关联的 B
- 同时新增 A 和 B 数据,并自动关联
解决方案
- 通过表格-行拓展,下钻展示明细对象数据
- 通过流程编排,实现两对象数据的联动操作
效果演示
250px|700px|reset

搭建步骤
此处以「招聘管理」场景为例,演示搭建步骤
- 创建数据对象
新建候选人(主对象)和工作经历(明细对象)两个数据对象,并通过「关联字段」,建立关联关系
250px|700px|reset
250px|700px|reset
关联关系如图所示:
250px|700px|reset

- 搭建流程
- 同时新增「候选人」和「工作经历」,并自动关联
- 通过「填写表单」方式触发,选择新增两个对象数据
- 配置表单时,添加「明细」组件来承载「工作经历」对象相关的数据,其余使用「候选人」对象中的字段
- 提交入库时,注意要提交明细组件的数据
250px|700px|reset

- 在已有的「候选人」下编辑或新增「工作经历」
本流程可在已有的「候选人」记录下批量修改「工作经历」记录
- 通过填写表单触发,选择「查看或编辑已有记录」方式
- 查看编辑「候选人」对象,但表单里的清单组件添加的是「工作经历」对象的相关字段
250px|700px|reset

- 删除「候选人」记录,同时删除关联「工作经历」
- 点击按钮直接触发,并往流程中传入「候选人」记录
- 获取记录:获取「多条」相关联的工作经历记录
- 删除获取到的工作经历记录后,再删除候选人记录
250px|700px|reset

- 配置页面
- 创建主表(候选人)和副表(工作经历)
- 先添加一个表格组件,用表格生成器生成主表数据后,再打开「行拓展」,往行拓展中再加入一个表格组件,生成副表数据
- 按需微调表格展示的内容
250px|700px|reset

- 实现「候选人」与「工作经历」相匹配
- 应用 filter 方法实现筛选
// searchExperience 为当前数据请求的名称,实际运行中需要替换成你的数据请求// sItem.Application_name._id 为子对象关联父对象的关联字段id,实际运行中需要替换成你的关联字段// item._id 为父对象当前列表项的_id,而item为父对象当前列表项,实际运行中按item._id配置即可{ { searchExperience.data.items.filter((sItem) => sItem.Application_name._id === item._id) } }}
250px|700px|reset

- 微调表格内容
- 配置数据请求
通过数据请求方式调用已经配置好的流程
- 同时创建「候选人」和「工作经历」
250px|700px|reset

- 删除「候选人」时,删除关联「工作经历」
250px|700px|reset
- 在已有「候选人」记录下新增或编辑「工作经历」
250px|700px|reset
- 在相应按钮组件上绑定流程
- 新建候选人
250px|700px|reset

- 添加或修改工作经历
250px|700px|reset

- 删除候选人
250px|700px|reset
