如何在Foundry Workshop/本体管理中配置自动计算日期的行动表单
配置Foundry行动表单实现自动计算finalized_at日期
问题描述
我创建了一个包含created_at和finalized_at两个日期选择器的行动表单,需要实现以下效果:选择created_at日期后,输入年数x,finalized_at自动显示为所选日期加上x年后的日期。目前已经尝试修改本体编辑函数,但不清楚Workshop或行动表单端的具体配置步骤。
已尝试方案
曾修改本体编辑函数,但缺乏Workshop端的配置方法:
@Edits(Ticket) @OntologyEditFunction() public updateDueDate(ticket: Ticket, dueDate?: LocalDate): void { if (dueDate) { ticket.dueDate = dueDate; } else { // 默认设置为下周 ticket.dueDate = LocalDate.now().plusDays(7); } }
解决方案
1. 修改本体编辑函数
调整函数逻辑,接收created_at日期和年数x作为参数,自动计算并赋值finalized_at:
@Edits(Ticket) @OntologyEditFunction() public updateFinalizedDate(ticket: Ticket, createdAt: LocalDate, yearsToAdd: Integer): void { // 计算所选日期加x年后的日期 ticket.finalized_at = createdAt.plusYears(yearsToAdd); // 同步设置created_at字段(若需从表单传入值) ticket.created_at = createdAt; }
2. Workshop行动表单配置步骤
- 打开目标Workshop应用,进入行动表单的编辑模式
- 添加/调整表单字段:
- 保留原有的
created_at日期选择器,关联到Ticket对象的created_at属性 - 添加一个整数类型的数字输入框,命名为「年数x」,用于接收用户输入的年数
- 保留原有的
- 绑定提交动作:
- 在表单的「提交动作」中选择刚修改的
updateFinalizedDate编辑函数 - 映射参数:
- 将
created_at日期选择器的值映射到函数的createdAt参数 - 将「年数x」输入框的值映射到函数的
yearsToAdd参数
- 将
- 在表单的「提交动作」中选择刚修改的
- 实时预览配置(可选):
若要在用户输入时即时看到计算结果,无需等待提交:- 添加一个日期显示组件到表单,命名为「预计完成日期」
- 使用Workshop表达式绑定计算结果:
{{$form.created_at.plusYears($form.yearsToAdd)}}
预期效果
- 通过日期选择器选择
created_at日期 - 在数字输入框中输入年数x
- 提交表单后,
finalized_at字段自动设置为所选日期加x年后的日期;若配置了实时预览,可在表单中即时查看计算结果
内容的提问来源于stack exchange,提问作者xin_si_ji
相关产品推荐
相关产品推荐

