From 9b3006d128cf3f356039d4de7d61c5638484c4a4 Mon Sep 17 00:00:00 2001 From: Peanut Date: Sat, 27 Jun 2026 22:18:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=8D=A1=E7=89=87=E5=8A=9F=E8=83=BD=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - copyMessageContent: 复制消息内容到剪贴板 - playMessageTts: 播放故事 TTS 音频 - toggleMessageCollapse: 添加展开/收起埋点 --- mini-program/src/pages/main/ScriptView.vue | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/mini-program/src/pages/main/ScriptView.vue b/mini-program/src/pages/main/ScriptView.vue index 4fd1a64..4d0ef9f 100644 --- a/mini-program/src/pages/main/ScriptView.vue +++ b/mini-program/src/pages/main/ScriptView.vue @@ -444,6 +444,37 @@ const toggleMessageCollapse = (message) => { [message.id]: !isMessageCollapsed(message) } nextTick(measureResultViewport) + analytics.track('script_message_collapse_toggle', { + message_id: message?.id || '', + collapsed: collapsedMessageIds.value[message.id] + }, { eventType: 'script', pagePath }) +} + +const copyMessageContent = (message) => { + const content = String(message?.content || '') + if (!content.trim()) { + uni.showToast({ title: '暂无可复制内容', icon: 'none' }) + return + } + uni.setClipboardData({ + data: content, + success: () => { + uni.showToast({ title: '已复制', icon: 'success' }) + } + }) + analytics.track('script_message_copy_click', { + message_id: message?.id || '', + content_length: content.length + }, { eventType: 'script', pagePath }) +} + +const playMessageTts = (message) => { + const scriptId = currentResult.value?.id || '' + ttsPlayer.playSource(scriptId) + analytics.track('script_message_tts_click', { + message_id: message?.id || '', + script_id: scriptId + }, { eventType: 'script', pagePath }) } const visibleStreamContent = computed(() => streamWriter.visibleText.value)