fix(web): 孤儿申请预览消息触发重新生成可编辑表格
useWorkbenchAiApplicationPreviewFlow 识别仅含表格文案但缺 applicationPreview 载荷的孤儿消息,触发重新生成可编辑表格并提示用户,避免提交动作静默失败。
This commit is contained in:
@@ -203,6 +203,19 @@ export function useWorkbenchAiApplicationPreviewFlow({
|
|||||||
.find((message) => message.role === 'assistant' && message.applicationPreview)
|
.find((message) => message.role === 'assistant' && message.applicationPreview)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function isOrphanInlineApplicationPreviewMessage(message = {}) {
|
||||||
|
if (message?.applicationPreview || message?.role !== 'assistant') {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return /下方表格|申请核对表|点击对应行即可直接编辑/.test(String(message.content || message.text || ''))
|
||||||
|
}
|
||||||
|
|
||||||
|
function resolveLatestOrphanApplicationPreviewMessage() {
|
||||||
|
return [...conversationMessages.value]
|
||||||
|
.reverse()
|
||||||
|
.find((message) => isOrphanInlineApplicationPreviewMessage(message))
|
||||||
|
}
|
||||||
|
|
||||||
function requestInlineApplicationSubmitConfirmation(targetMessage, options = {}) {
|
function requestInlineApplicationSubmitConfirmation(targetMessage, options = {}) {
|
||||||
applicationSubmitConfirmContext.value = {
|
applicationSubmitConfirmContext.value = {
|
||||||
messageId: String(targetMessage?.id || '').trim(),
|
messageId: String(targetMessage?.id || '').trim(),
|
||||||
@@ -434,9 +447,22 @@ export function useWorkbenchAiApplicationPreviewFlow({
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
const actionType = resolveInlineApplicationPreviewActionFromText(prompt)
|
const actionType = resolveInlineApplicationPreviewActionFromText(prompt)
|
||||||
if (!actionType || !resolveLatestApplicationPreviewMessage()) {
|
if (!actionType) {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
if (!resolveLatestApplicationPreviewMessage()) {
|
||||||
|
const orphanPreviewMessage = resolveLatestOrphanApplicationPreviewMessage()
|
||||||
|
if (!orphanPreviewMessage) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
const previewSourceText = resolveLatestInlineUserPrompt()
|
||||||
|
pushInlineApplicationActionUserMessage(prompt)
|
||||||
|
toast('当前申请核对表状态不完整,我先重新生成可编辑表格。')
|
||||||
|
void startAiApplicationPreview('travel', '差旅费', previewSourceText, {
|
||||||
|
pushUserMessage: false
|
||||||
|
})
|
||||||
|
return true
|
||||||
|
}
|
||||||
void executeInlineApplicationPreviewAction(actionType, null, { userText: prompt })
|
void executeInlineApplicationPreviewAction(actionType, null, { userText: prompt })
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user