现象
#1294 spec 的 PortalNavItem 包含 action 类型(点导航直接执行 action,如 Submit),但没声明 action 完成后跳哪。
复现
- 匿名用户点 "Submit a Ticket" → 填表 → 提交成功
- 框架要不要跳详情页?跳成功页?跳 KB?跳"原页面"?
- spec 没规定 → 不同 portal 行为不一致
Workaround
模板作者把跳转逻辑硬塞到 action 的 success hook 或 view 的 onAction 里 — 违反「零业务代码」+ 与 portal 主题/路由耦合。
分阶段建议
M2(与 GAP-1/#1331 一起):在两处可声明,由具体到一般覆盖。
action nav item 上:
{
id: 'nav_submit',
type: 'action',
actionRef: 'helpdesk_ticket.create',
onComplete?: {
goto: { viewRef?: string; actionRef?: string; path?: string; back?: boolean; recordCreated?: boolean };
toast?: { message: I18nLabel; severity: 'success'|'info' };
}
}
portal 级默认(fallback):
actionDefaults?: {
onComplete?: { goto: ... };
};
匿名 route 上(参见 GAP-1/#1331 的 onSuccess):与上面 onComplete 合并为同一字段,保持一致。
验收
- 模板声明
onComplete.goto.recordCreated: true → 提交后自动跳新工单详情
- 没声明 → 默认行为:toast "Submitted" + 留在当前页
关联
现象
#1294 spec 的
PortalNavItem包含 action 类型(点导航直接执行 action,如 Submit),但没声明 action 完成后跳哪。复现
Workaround
模板作者把跳转逻辑硬塞到 action 的 success hook 或 view 的 onAction 里 — 违反「零业务代码」+ 与 portal 主题/路由耦合。
分阶段建议
M2(与 GAP-1/#1331 一起):在两处可声明,由具体到一般覆盖。
action nav item 上:
portal 级默认(fallback):
匿名 route 上(参见 GAP-1/#1331 的 onSuccess):与上面 onComplete 合并为同一字段,保持一致。
验收
onComplete.goto.recordCreated: true→ 提交后自动跳新工单详情关联