2.0字段默认值支持新的表单公式表达式,但是服务端不支持该表达式
Created by: yinlianghui
- 前端做了兼容处理,支持新老表单表达式
- 服务端默认值只支持老表单那种表达式,见:https://www.steedos.com/developer/object_field_formula/
- 目前omit字段,在新老表单中都是支持服务端公式计算的,但是都是走的上面的老表单字段公式,即把一个设置了默认值的字段设置为omit,新老表单在保存时network请求中都不会有默认值传到服务端,但是服务端都保存了默认值
- 目前hidden字段,新老表单都会在界面上带上该字段的默认值,只是界面上不显示该字段
- 目前base.object中owner字段是omit和hidden的,space字段是hidden的,两个字段都配置了默认值,其中新老表单的owner字段都依赖了服务端的默认值公式功能。
- 服务端的字段默认值功能应该是在creator中,未找到具体实现的代码,估计以后脱离creator的话,服务端就没有字段默认值功能了。
- 直接写objectql的insert语句,是不会走字段上配置的默认值的,即必须带上space字段值才会保存space。
探讨解决方案:
- 基于 表单字段omit,hidden规则变更 #138
- 如果去掉服务端默认值功能,可以要求所有配置了默认值的字段不允许设置为omit,但是允许设置为hidden, 这样的话,如果一个omit字段有默认值需求就只能写触发器了。
- 还有一个可能的方案是改掉上面的138任务的规则,让omit的字段也在表单上render,这样的话omit的字段设置默认值在前端也会被支持了。