From 502586b64a9b0ea0049be92beadebe2d89ec141b Mon Sep 17 00:00:00 2001 From: Peanut Date: Sun, 26 Jul 2026 18:21:58 +0800 Subject: [PATCH] =?UTF-8?q?fix(mini-program):=20=E4=BF=AE=E5=A4=8D=20Scrip?= =?UTF-8?q?tLibraryView=20=E7=AB=A0=E8=8A=82=E6=95=B0=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E4=B8=BA=200=20=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit getChapterCount 优先从 plotJson.stages.outline.beats.length 获取真实章节数(新剧本), fallback 根据 length 字段估算:short→1章, medium→2章, long→4章。 --- mini-program/src/pages/main/ScriptLibraryView.vue | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/mini-program/src/pages/main/ScriptLibraryView.vue b/mini-program/src/pages/main/ScriptLibraryView.vue index e6f3733..578d1d8 100644 --- a/mini-program/src/pages/main/ScriptLibraryView.vue +++ b/mini-program/src/pages/main/ScriptLibraryView.vue @@ -235,7 +235,18 @@ const getTags = (script) => { return [] } -const getChapterCount = (script) => script.chapterCount || script.chapters || 0 +const getChapterCount = (script) => { + // 优先从 beats 数组长度获取(Task 1-5 部署后新剧本结构) + const beats = script?.plotJson?.stages?.outline?.beats + if (Array.isArray(beats) && beats.length > 0) return beats.length + + // Fallback:根据 length 字段估算(老剧本无 beats 数据) + const length = script?.length + if (length === 'short') return 1 + if (length === 'medium') return 2 + if (length === 'long') return 4 + return 1 +} const getWordCount = (script) => { const count = Number(script.wordCount || 0)