我这边在主表表单中,添加了一个关联表字段,并将该关联字段配置为“子表单”方式编辑。
在这个子表单里,发现有两个问题:
- 子表单字段配置的默认值不生效
- 子表单中的公式字段不自动计算/不更新
现象说明
- 主表表单打开后,进入关联字段的子表单
- 在子表单中新增关联记录时
- 子表单内普通字段的默认值没有自动带出
- 子表单内公式字段也没有根据当前子表单字段值实时计算
预期行为
- 在子表单中新建关联记录时,字段默认值应正常生效
- 公式字段应能基于当前子表单记录里的字段值正常计算和更新
当前影响
这个问题会导致:
- 子表单中新建关联记录时需要手工重复录入默认值
- 公式字段无法直接在前端实时展示正确结果
- 使用关联子表单做复杂录入场景时体验受到影响
1 Like
以上是字段关联。建立数据表的时候,字段标识和字段名称一致,好像是根据字段标识一致关联。
计算方法:
// 获取当前表单值
const formValues = ctx.form?.getFieldsValue();
var total_amount=0;
// 假设子表格字段名为 ‘items’,请根据实际情况修改
if (formValues && formValues.items) {
formValues.items.forEach((item, index) => {
// 获取当前行的数量和单价
const quantity = item.quantity || 0;
const unitPrice = item.unit_price || 0;
// 计算金额
const lineAmount = quantity * unitPrice;
total_amount=total_amount+lineAmount;
// 更新当前行的金额字段
// 路径格式: ['子表格字段名', 行索引, '金额字段名']
ctx.form?.setFieldValue(['items', index, 'line_amount'], lineAmount);
});
total_amount=total_amount+formValues.shipping_handling;
ctx.form?.setFieldValue(‘total_amount’,total_amount);
}
我遇到了同样的问题,子表单的计算式不起作用,但是能正常存储。期待能解决,另外最大的问题是子表单还没有合计行这些非常实用的功能