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)