fix(web): steward plan 确认按钮直接拉起申请预览,不丢失 remaining tasks

根因:steward plan 的'确认创建申请单'按钮 action_type 是
ASSISTANT_SCOPE_ACTION_SWITCH,handleInlineSuggestedAction 没有匹配分支,
落到 startInlineConversation 重新发起对话,steward_remaining_tasks 完全丢失。

修复:当 payload 有 steward_current_task + session_type=application +
task_type=expense_application 时,直接调 startAiApplicationPreviewFromAction
(会透传 steward_remaining_tasks 到申请预览 message),不走 startInlineConversation。

这样保存草稿成功后,targetMessage 上有 stewardRemainingTasks,
buildApplicationPreviewNextTaskAction 能生成'继续处理费用报销'按钮。
This commit is contained in:
caoxiaozhu
2026-06-26 11:40:44 +08:00
parent 3e4b1e1597
commit 43c3ff860c

View File

@@ -114,6 +114,17 @@ export function useWorkbenchAiActionRouter({
void expenseFlow.startAiApplicationPreviewFromAction(actionPayload) void expenseFlow.startAiApplicationPreviewFromAction(actionPayload)
return return
} }
// steward plan 的"确认创建申请单"按钮:payload 有 steward_current_task + session_type=application,
// 直接拉起申请预览(带 remaining tasks),不走 startInlineConversation(会丢失 steward 上下文)
if (
actionPayload.steward_current_task
&& String(actionPayload.session_type || '').trim() === 'application'
&& String(actionPayload.steward_current_task.task_type || '').trim() === 'expense_application'
) {
aiExpenseDraft.value = null
void expenseFlow.startAiApplicationPreviewFromAction(actionPayload)
return
}
if (actionType === 'select_expense_type') { if (actionType === 'select_expense_type') {
const expenseType = String(action?.payload?.expense_type || '').trim() const expenseType = String(action?.payload?.expense_type || '').trim()
const expenseTypeLabel = String(action?.payload?.expense_type_label || action?.label || '').trim() const expenseTypeLabel = String(action?.payload?.expense_type_label || action?.label || '').trim()