From d0ff876ba2b57a695e6e680470c7a4f409a73df0 Mon Sep 17 00:00:00 2001 From: Roe-xin Date: Wed, 11 Mar 2026 11:14:17 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20AI=E6=8F=90=E9=97=AE=E6=97=B6=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E6=96=87=E6=9C=AC=E8=BE=93=E5=85=A5=E6=A1=86=20-=20?= =?UTF-8?q?=E5=BD=93options=E4=B8=BA=E7=A9=BA=E6=97=B6=E6=98=BE=E7=A4=BAte?= =?UTF-8?q?xtarea=E8=AE=A9=E7=94=A8=E6=88=B7=E8=87=AA=E7=94=B1=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E7=AD=94=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/messageArea.ts | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/views/messageArea.ts b/src/views/messageArea.ts index 135c393..0a6a196 100644 --- a/src/views/messageArea.ts +++ b/src/views/messageArea.ts @@ -1209,13 +1209,20 @@ export function getMessageAreaScript(): string { const inputName = \`q\${qIndex}\`; const selectedAnswers = savedAnswers[qIndex] || []; - const optionsHtml = q.options.map(opt => { - const isSelected = selectedAnswers.includes(opt); - return \`\`; - }).join(''); + // 如果没有选项,显示文本输入框 + let optionsHtml; + if (!q.options || q.options.length === 0) { + const savedText = selectedAnswers[0] || ''; + optionsHtml = \`\`; + } else { + optionsHtml = q.options.map(opt => { + const isSelected = selectedAnswers.includes(opt); + return \`\`; + }).join(''); + } return \`
@@ -1238,8 +1245,15 @@ export function getMessageAreaScript(): string { submitBtn.addEventListener('click', function() { const answers = {}; questions.forEach((q, qIndex) => { - const inputs = segmentDiv.querySelectorAll(\`input[name="q\${qIndex}"]:checked\`); - answers[qIndex] = Array.from(inputs).map(input => input.value); + // 检查是否是文本输入框 + const textarea = segmentDiv.querySelector(\`textarea[name="q\${qIndex}"]\`); + if (textarea) { + const value = textarea.value.trim(); + answers[qIndex] = value ? [value] : []; + } else { + const inputs = segmentDiv.querySelectorAll(\`input[name="q\${qIndex}"]:checked\`); + answers[qIndex] = Array.from(inputs).map(input => input.value); + } }); handleMultiQuestionAnswer(segment.askId, answers, segmentDiv); });