fix(h5): 修复H5 SSE流完成信号兼容和页面onShow时序

- sendHttpStream 兼容 data.event === 'done' 和嵌套 data.data 格式
- index.vue onShow 用  确保 ref 就绪后加载历史
- 组件 mounted 兜底调用 loadHistoryIfNeeded
- 历史消息映射添加 type:'text',兼容 msg.content 字段
- 去掉所有有帮助/没帮助按钮
This commit is contained in:
2026-05-14 18:23:32 +08:00
parent bd778c0283
commit 7a713e07e1
3 changed files with 36 additions and 17 deletions

View File

@@ -344,15 +344,21 @@ export default {
if (jsonStr && jsonStr !== '[DONE]') {
const data = JSON.parse(jsonStr);
if (data.event === 'message') {
const text = data.answer || data.text || '';
var text = data.answer || data.text || '';
// 兼容嵌套 data.data 格式
if (!text && data.data) {
text = data.data.content || data.data.answer || '';
}
content += text;
if (onChunk) onChunk(text);
}
if (data.conversation_id) {
conversationId = data.conversation_id;
// 兼容两种层级:conversation_id 可能在顶层或 data.data 中
var cid = data.conversation_id || (data.data && data.data.conversation_id) || '';
if (cid) {
conversationId = cid;
}
if (data.event === 'message_end') {
// 可提前结束
if (data.event === 'message_end' || data.event === 'done') {
console.log('[AI SSE] 收到完成信号:', data.event, 'conversationId:', cid);
}
}
} catch (e) {
@@ -369,12 +375,16 @@ export default {
if (jsonStr) {
const data = JSON.parse(jsonStr);
if (data.event === 'message') {
const text = data.answer || '';
var text = data.answer || data.text || '';
if (!text && data.data) {
text = data.data.content || data.data.answer || '';
}
content += text;
if (onChunk) onChunk(text);
}
if (data.conversation_id) {
conversationId = data.conversation_id;
var cid = data.conversation_id || (data.data && data.data.conversation_id) || '';
if (cid) {
conversationId = cid;
}
}
} catch (e) {
@@ -382,6 +392,7 @@ export default {
}
}
console.log('[AI SSE] 流完成, conversationId:', conversationId, 'content长度:', content.length);
if (onComplete) {
onComplete({ content, conversation_id: conversationId });
}