NocoBase 2.x 表单中添加关联表子表单时,子表单字段默认值和公式字段不生效

我这边在主表表单中,添加了一个关联表字段,并将该关联字段配置为“子表单”方式编辑。
在这个子表单里,发现有两个问题:

  1. 子表单字段配置的默认值不生效
  2. 子表单中的公式字段不自动计算/不更新

现象说明

  • 主表表单打开后,进入关联字段的子表单
  • 在子表单中新增关联记录时
  • 子表单内普通字段的默认值没有自动带出
  • 子表单内公式字段也没有根据当前子表单字段值实时计算

预期行为

  • 在子表单中新建关联记录时,字段默认值应正常生效
  • 公式字段应能基于当前子表单记录里的字段值正常计算和更新

当前影响
这个问题会导致:

  • 子表单中新建关联记录时需要手工重复录入默认值
  • 公式字段无法直接在前端实时展示正确结果
  • 使用关联子表单做复杂录入场景时体验受到影响
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);

}

我遇到了同样的问题,子表单的计算式不起作用,但是能正常存储。期待能解决,另外最大的问题是子表单还没有合计行这些非常实用的功能