From d09f60075179a9efc91c5b1eb3c51dae79c77307 Mon Sep 17 00:00:00 2001 From: Peanut Date: Tue, 26 May 2026 20:50:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B0=8F=E7=A8=8B=E5=BA=8F=E5=89=A7?= =?UTF-8?q?=E6=9C=AC=E3=80=81=E4=B8=AA=E4=BA=BA=E4=BF=A1=E6=81=AF=E9=A1=B5?= =?UTF-8?q?=E3=80=81AI=20=E8=BF=90=E8=A1=8C=E6=97=B6=E5=8F=8A=20TTS=20?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mini-program/src/pages/life-event/form.vue | 2 +- mini-program/src/pages/main/MineView.vue | 31 +- mini-program/src/pages/main/PathView.vue | 2 +- .../src/pages/main/ScriptDetailView.vue | 86 +- mini-program/src/pages/main/ScriptView.vue | 1111 +++++++++++++++-- mini-program/src/pages/main/index.vue | 14 +- mini-program/src/services/aiRuntime.js | 53 +- mini-program/src/services/tts.js | 16 +- 8 files changed, 1089 insertions(+), 226 deletions(-) diff --git a/mini-program/src/pages/life-event/form.vue b/mini-program/src/pages/life-event/form.vue index 77d7ff1..3856ed9 100644 --- a/mini-program/src/pages/life-event/form.vue +++ b/mini-program/src/pages/life-event/form.vue @@ -176,7 +176,7 @@ const pagePath = '/pages/life-event/form' const { capsuleTopReservePx } = useMenuButtonSafeArea({ extraTopPx: 10 }) const saving = ref(false) const assisting = ref(false) -const assistWriter = useTypewriterStream({ interval: 24, step: 1 }) +const assistWriter = useTypewriterStream({ interval: 32, step: 1 }) const currentYear = new Date().getFullYear() const form = reactive({ diff --git a/mini-program/src/pages/main/MineView.vue b/mini-program/src/pages/main/MineView.vue index c57abc2..7136dd9 100644 --- a/mini-program/src/pages/main/MineView.vue +++ b/mini-program/src/pages/main/MineView.vue @@ -296,7 +296,22 @@ const isFavorite = (script) => { return Boolean(script.isFavorite || script.favorite || localFavorites.value[String(script.id)]) } +const openScriptChat = (script) => { + if (!script?.id || String(script.id).startsWith('demo-')) return + uni.setStorageSync('pending_open_script_chat', { + id: script.id + }) + uni.$emit('switchTab', 'script') + setTimeout(() => { + uni.$emit('openScriptChat', { id: script.id, script }) + }, 80) +} + const viewScript = (script) => { + openScriptChat(script) +} + +const openScriptDetail = (script) => { if (!script?.id || String(script.id).startsWith('demo-')) return uni.navigateTo({ url: `/pages/main/ScriptDetailView?id=${script.id}` }) } @@ -346,7 +361,7 @@ const toggleViewMode = () => { const openScriptMenu = (script) => { const favorite = isFavorite(script) uni.showActionSheet({ - itemList: [favorite ? '取消收藏' : '收藏剧本', '查看详情', '映射路径'], + itemList: [favorite ? '取消收藏' : '收藏剧本', '继续生成', '查看详情'], success: ({ tapIndex }) => { if (tapIndex === 0) { const next = { ...localFavorites.value } @@ -357,23 +372,11 @@ const openScriptMenu = (script) => { uni.showToast({ title: favorite ? '已取消收藏' : '已收藏', icon: 'success' }) } if (tapIndex === 1) viewScript(script) - if (tapIndex === 2) mapScript(script) + if (tapIndex === 2) openScriptDetail(script) } }) } -const mapScript = async (script) => { - if (!script?.id || String(script.id).startsWith('demo-')) { - uni.showToast({ title: '示例剧本暂不可映射', icon: 'none' }) - return - } - const res = await store.selectScript(script.id) - if (!res.success) { - uni.showToast({ title: res.error || '映射失败', icon: 'none' }) - return - } - uni.navigateTo({ url: '/pages/main/PathView' }) -} diff --git a/mini-program/src/pages/main/ScriptView.vue b/mini-program/src/pages/main/ScriptView.vue index 7d315e4..0aaeae6 100644 --- a/mini-program/src/pages/main/ScriptView.vue +++ b/mini-program/src/pages/main/ScriptView.vue @@ -27,6 +27,13 @@ + + + 今天有什么 + 心愿 + + 想实现 + 今天有什么心愿想实现 @@ -47,18 +54,6 @@ - - - 发送 - - {{ voiceCopy }} + + +