diff --git a/mini-program/src/pages/main/ScriptDetailView.vue b/mini-program/src/pages/main/ScriptDetailView.vue index 3a659b8..8af39fb 100644 --- a/mini-program/src/pages/main/ScriptDetailView.vue +++ b/mini-program/src/pages/main/ScriptDetailView.vue @@ -193,8 +193,9 @@ const rebuildResultMessages = (scriptData, messages) => { } else if (m.type === 'clarification_answer') { // 已配对的 answer 由 question 那一步负责渲染;这里跳过 if (answerAssigned.has(m.id)) return - // 未配对的 answer 展示为独立 user 文本 - result.push({ id: m.id, role: 'user', kind: 'text', content: m.content || '' }) + // 未配对的 answer(如 messageOrder 在所有 question 之前的预填充)不展示 + // 原因:没有对应 question 的 answer 无法正确渲染(用户看不到问题,只显示答案会造成困惑) + return } else if (m.type === 'outline') { let outline = {} try { outline = JSON.parse(m.content || '{}') } catch (e) { outline = {} } diff --git a/mini-program/src/pages/main/ScriptView.vue b/mini-program/src/pages/main/ScriptView.vue index 94a836f..aea0570 100644 --- a/mini-program/src/pages/main/ScriptView.vue +++ b/mini-program/src/pages/main/ScriptView.vue @@ -1513,7 +1513,8 @@ const openScriptChat = async (payload = {}) => { questionAnswerMap.set(q.id, matched) } }) - // 未匹配的 answer(如 messageOrder 在所有 question 之前的预填充)按独立 user 消息展示 + // 未匹配的 answer(如 messageOrder 在所有 question 之前的预填充)不展示 + // 原因:没有对应 question 的 answer 无法正确渲染(用户看不到问题,只显示答案会造成困惑) clarificationAnswers.forEach(a => { if (!answerAssigned.has(a.id)) unmatchedAnswers.push(a) }) @@ -1547,17 +1548,9 @@ const openScriptChat = async (payload = {}) => { } else if (m.type === 'clarification_answer') { // 已配对到 question 的 answer 由 question 那一步负责渲染;这里跳过 if (answerAssigned.has(m.id)) return - // 未配对的 answer(如用户对未识别 question 的回答)展示为独立 user 文本 - resultMessages.value.push({ - id: m.id || createMessageId(), - role: 'user', - kind: 'text', - content: m.content || '', - pending: false, - time: formatMessageTime(), - submitted: false, - confirmed: false - }) + // 未配对的 answer(如 messageOrder 在所有 question 之前的预填充)不展示 + // 原因:没有对应 question 的 answer 无法正确渲染(用户看不到问题,只显示答案会造成困惑) + return } else if (m.type === 'outline') { let outline = {} try { outline = JSON.parse(m.content || '{}') } catch (e) { outline = {} }