compound-liver-render-synthesis.js 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444
  1. // ==============================================================================
  2. // 江中肝纯片 · 产品复合体 HTML 报告 · Batch 6 渲染模块 (Part 2)
  3. // Chapter 2.6 · 总结(3 子章)
  4. // ==============================================================================
  5. function esc(s) {
  6. return String(s ?? '').replace(/[&<>"']/g, (c) => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' }[c]));
  7. }
  8. const BRAND = {
  9. JIANG_GREEN: '#2D9C5D',
  10. LIVER_AMBER: '#D4A574',
  11. TECH_BLUE: '#0085CA',
  12. WARM_ORANGE: '#FF8C42',
  13. ROSE: '#FF4D8D',
  14. };
  15. // ----- 2.6.1 复合体要素总结 · Compound Element Synthesis ---------------------
  16. function renderSynthesis1Elements({ slideNum, slideTotal, chapter, A }) {
  17. const c = chapter;
  18. const elements = [
  19. {
  20. dim: '目标人群', en: 'AUDIENCE', icon: '👥', tint: BRAND.ROSE,
  21. core: '3 类核心:熬夜打工人 · 应酬男 · 情绪肝女性',
  22. influencer: '1 类影响:医生 / 丁香医生 / 小红书 KOL',
  23. connect: '"场景化复合护肝"精准匹配 3 类真实 VOC 痛点',
  24. metrics: [{ k: '人群覆盖', v: 'TAM 1.2 亿' }, { k: 'VOC 原声', v: '4001 赞爆款' }, { k: '渠道触达', v: '小红书+医生号+知乎' }],
  25. },
  26. {
  27. dim: '定位', en: 'POSITIONING', icon: '🎯', tint: BRAND.LIVER_AMBER,
  28. core: '场景化复合护肝 · 4 重协同 · 一片多效',
  29. influencer: 'Slogan:「江中肝纯片 · 4 重协同 守护肝健康」',
  30. connect: '对标 Amazon Top 6 复合配方,国内 OTC 首创',
  31. metrics: [{ k: '品类机会', v: 'B 级·推荐' }, { k: '甜点价位', v: '¥79-119' }, { k: '首创心智', v: '国内 #1' }],
  32. },
  33. {
  34. dim: '包装', en: 'PACKAGE', icon: '📦', tint: BRAND.JIANG_GREEN,
  35. core: '江中绿 × 琥珀金双色系 · 4 层视觉信息架构',
  36. influencer: '正面成分克数透明表 · 主动回应「不要吃护肝片」',
  37. connect: '视觉化定位 · 货架识别度 ≥ 90%',
  38. metrics: [{ k: '主色符合度', v: '100%' }, { k: '竞品差异化', v: '9 维度' }, { k: 'SKU 变体', v: 'L-01 至 L-05' }],
  39. },
  40. {
  41. dim: '主视觉 KV', en: 'KEY VISUAL', icon: '🎨', tint: '#8B5CF6',
  42. core: '三重协同守护 · 情感+理性双重表达',
  43. influencer: '3 版本:情感守护 / 理性科普 / 对比进化',
  44. connect: '情感(夜间守护)+ 理性(分子对比)+ 竞争(vs 单一)',
  45. metrics: [{ k: 'KV 版本', v: '3 套' }, { k: '应用延展', v: '6 场景' }, { k: '交付文件', v: '18 套组合' }],
  46. },
  47. {
  48. dim: '价值链', en: 'VALUE CHAIN', icon: '⚙️', tint: BRAND.TECH_BLUE,
  49. core: '研发 → 生产 → 渠道 → 营销 → 服务 → 体验 · 6 环闭环',
  50. influencer: '一物一码 + 服用日历 + 第三方检测 · 对抗信任危机',
  51. connect: '端到端转化 2%(累计)· 行业头部表现',
  52. metrics: [{ k: 'PMF Fit', v: '92%' }, { k: '复购率', v: '40%' }, { k: '30 日留存', v: '62%' }],
  53. },
  54. ];
  55. return `<section class="report-section" id="synthesis-1" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
  56. <div class="section-inner">
  57. <div class="section-head rise-in">
  58. <div class="section-eyebrow" style="color:${c.color};">${c.num}.1 · ELEMENT SYNTHESIS</div>
  59. <h2 class="text-h1"><span class="headline-anim">复合体要素总结 · 5 维一张图</span></h2>
  60. <p class="section-sub">前 5 章核心元素横向对照,<strong style="color:${c.color};">要素 × 核心内容 × 承接定位 × 量化指标</strong> 一目了然</p>
  61. </div>
  62. <div class="fade-up" style="display:grid; grid-template-columns:repeat(5, 1fr); gap:14px; margin-bottom:24px;">
  63. ${elements.map((e, i) => `
  64. <div style="background:var(--bg-1); border:1px solid ${e.tint}44; border-top:4px solid ${e.tint}; border-radius:var(--radius-md); padding:18px;">
  65. <div style="display:flex; align-items:center; gap:8px; margin-bottom:10px;">
  66. <div style="width:38px; height:38px; background:${e.tint}22; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.3rem;">${e.icon}</div>
  67. <div>
  68. <div class="text-mono text-xs" style="color:${e.tint}; letter-spacing:0.1em;">DIM · ${i + 1} / 5</div>
  69. <div style="font-size:1rem; font-weight:800; color:var(--text-1);">${esc(e.dim)}</div>
  70. </div>
  71. </div>
  72. <div style="padding:8px; background:${e.tint}08; border-left:3px solid ${e.tint}; border-radius:4px; margin-bottom:10px;">
  73. <div class="text-mono text-xs" style="color:${e.tint}; letter-spacing:0.08em; margin-bottom:3px;">核心内容</div>
  74. <div style="font-size:0.78rem; color:var(--text-1); font-weight:600; line-height:1.45;">${esc(e.core)}</div>
  75. </div>
  76. <div style="margin-bottom:10px;">
  77. <div class="text-mono text-xs" style="color:var(--text-3); letter-spacing:0.08em; margin-bottom:3px;">补充强化</div>
  78. <div style="font-size:0.74rem; color:var(--text-2); line-height:1.45;">${esc(e.influencer)}</div>
  79. </div>
  80. <div style="margin-bottom:10px; padding-top:8px; border-top:1px dashed var(--border);">
  81. <div class="text-mono text-xs" style="color:var(--text-3); letter-spacing:0.08em; margin-bottom:3px;">承接定位</div>
  82. <div style="font-size:0.72rem; color:var(--text-2); line-height:1.45;">${esc(e.connect)}</div>
  83. </div>
  84. <div style="display:grid; gap:4px;">
  85. ${e.metrics.map(m => `
  86. <div style="display:flex; justify-content:space-between; padding:4px 8px; background:var(--bg-2); border-radius:3px;">
  87. <span style="font-size:0.7rem; color:var(--text-3);">${esc(m.k)}</span>
  88. <span style="font-family:var(--font-mono); font-size:0.72rem; color:${e.tint}; font-weight:700;">${esc(m.v)}</span>
  89. </div>
  90. `).join('')}
  91. </div>
  92. </div>
  93. `).join('')}
  94. </div>
  95. <div class="fade-up" style="background:linear-gradient(135deg, ${c.color}10, ${BRAND.JIANG_GREEN}08, ${BRAND.ROSE}08); border:1px solid ${c.color}44; border-radius:var(--radius-md); padding:32px;">
  96. <div style="text-align:center; margin-bottom:20px;">
  97. <div class="text-mono text-xs" style="color:${c.color}; letter-spacing:0.2em; margin-bottom:8px;">COMPOUND CORE · 复合体中心价值</div>
  98. <h3 class="text-h1" style="color:var(--text-1); font-size:2.2rem; margin:0;">
  99. <span style="color:${BRAND.JIANG_GREEN};">江中肝纯片</span> ·
  100. <span style="color:${BRAND.LIVER_AMBER};">4 重协同</span> ·
  101. <span style="color:${c.color};">场景化复合护肝</span>
  102. </h3>
  103. <div style="color:var(--text-2); margin-top:12px; font-size:0.98rem; line-height:1.7; max-width:860px; margin-left:auto; margin-right:auto;">
  104. 基于 <strong style="color:${BRAND.ROSE};">3 类人群真实 VOC</strong>(4001 赞爆款验证),打造国内 OTC 首创 <strong style="color:${BRAND.LIVER_AMBER};">4 重协同复合护肝片</strong>,以 <strong style="color:${BRAND.JIANG_GREEN};">江中绿+琥珀金</strong> 视觉语言、<strong style="color:#8B5CF6;">3 版 KV</strong>、<strong style="color:${c.color};">6 环价值链</strong>形成完整闭环,复购率 40%、30 日留存 62%、PMF Fit 92%,从 <strong>产品复合体</strong> 阶段平滑衔接 <strong>营销复合体</strong>。
  105. </div>
  106. </div>
  107. <div style="display:flex; justify-content:center; margin-top:28px;">
  108. <svg viewBox="0 0 400 280" style="max-width:620px; width:100%; height:auto;">
  109. <defs>
  110. <radialGradient id="gradCompoundCore" cx="50%" cy="50%" r="50%">
  111. <stop offset="0" stop-color="${BRAND.LIVER_AMBER}" stop-opacity="0.9"/>
  112. <stop offset="1" stop-color="${c.color}" stop-opacity="0.7"/>
  113. </radialGradient>
  114. </defs>
  115. <circle cx="200" cy="140" r="48" fill="url(#gradCompoundCore)" stroke="${c.color}" stroke-width="2"/>
  116. <text x="200" y="135" text-anchor="middle" font-family="ui-sans-serif" font-size="14" fill="#fff" font-weight="900">江中肝纯片</text>
  117. <text x="200" y="154" text-anchor="middle" font-family="ui-sans-serif" font-size="10" fill="#fff" font-weight="600" opacity="0.95">产品复合体</text>
  118. ${elements.map((e, i) => {
  119. const angle = (i / 5) * Math.PI * 2 - Math.PI / 2;
  120. const x = 200 + Math.cos(angle) * 110;
  121. const y = 140 + Math.sin(angle) * 95;
  122. const lx = 200 + Math.cos(angle) * 60;
  123. const ly = 140 + Math.sin(angle) * 52;
  124. return `
  125. <line x1="${lx}" y1="${ly}" x2="${x - Math.cos(angle) * 24}" y2="${y - Math.sin(angle) * 24}" stroke="${e.tint}" stroke-width="1.5" stroke-dasharray="3,3"/>
  126. <circle cx="${x}" cy="${y}" r="26" fill="${e.tint}" stroke="${e.tint}" stroke-width="2"/>
  127. <text x="${x}" y="${y - 2}" text-anchor="middle" font-family="ui-sans-serif" font-size="15" font-weight="900" fill="#fff">${e.icon}</text>
  128. <text x="${x}" y="${y + 11}" text-anchor="middle" font-family="ui-sans-serif" font-size="8" font-weight="700" fill="#fff" opacity="0.95">${esc(e.dim)}</text>
  129. `;
  130. }).join('')}
  131. </svg>
  132. </div>
  133. </div>
  134. </div>
  135. </section>`;
  136. }
  137. // ----- 2.6.2 与前序方案承接 · Previous Scheme Inheritance -------------------
  138. function renderSynthesis2Inheritance({ slideNum, slideTotal, chapter, A }) {
  139. const c = chapter;
  140. const inheritance = [
  141. {
  142. prev: 'VOC 诊断报告', prevIcon: '📊', prevTint: BRAND.ROSE,
  143. prevDoc: 'reports/jiangzhong-liver-voc-report.html',
  144. inherit: '人群 VOC 原声 + Top 主题提炼',
  145. inheritDetail: '熬夜打工人(4001 赞爆款)/ 应酬男(场景 7 次最高)/ 情绪肝女性 3 类人群画像数据底座',
  146. usedIn: ['2.1 目标人群(5 子章)', '2.2 定位(语言素材)', '2.5 价值链(VOC 原声)'],
  147. score: 95,
  148. },
  149. {
  150. prev: '品类机会评估', prevIcon: '🎯', prevTint: BRAND.LIVER_AMBER,
  151. prevDoc: '基于 Amazon 689 款 + TikTok Ads 官方关键词',
  152. inherit: '品类定位 + 甜点价位 + 机会等级',
  153. inheritDetail: 'B 级推荐 / ¥79-119 甜点价位 / Amazon Top 6 中 4 款复合配方验证',
  154. usedIn: ['2.2 定位', '2.2.6 品牌架构', '2.5 价值链(渠道环节)'],
  155. score: 92,
  156. },
  157. {
  158. prev: '竞品深度对标', prevIcon: '⚔️', prevTint: BRAND.TECH_BLUE,
  159. prevDoc: 'Amazon 689 款 + 国内水飞蓟片 Top 10',
  160. inherit: '差异化核心 + 竞品避雷要素',
  161. inheritDetail: '4 重协同对标 Milk Thistle+Turmeric+NAC+Dandelion+Glutathione 黄金组合,国内首创复合 OTC',
  162. usedIn: ['2.3 包装(竞品差异化)', '2.4 KV(对比进化版)', '2.5.1 价值主张(填补同质化)'],
  163. score: 90,
  164. },
  165. {
  166. prev: '市场情报扫描', prevIcon: '🛰️', prevTint: BRAND.WARM_ORANGE,
  167. prevDoc: 'TikTok Ads 官方 + 抖音全站热词',
  168. inherit: '关键词趋势 + KOL 生态地图',
  169. inheritDetail: '"熬夜自救" / "养肝护肝" / "打工人自救" 高热词 + 生活/医学/专家三类 KOL 矩阵',
  170. usedIn: ['2.1.2 影响人群', '2.4.5 应用延展(社媒版)', '2.5 价值链(营销环节)'],
  171. score: 88,
  172. },
  173. {
  174. prev: '美佑童方法论', prevIcon: '📘', prevTint: '#8B5CF6',
  175. prevDoc: 'E:/文件资料/md文档生成的海报或者策划/2.美佑童-产品复合体.docx',
  176. inherit: '产品复合体 5 维框架',
  177. inheritDetail: '严格对标 docx 2.1-2.6 章节结构 · 保证交付物可复用、可对照、可迭代',
  178. usedIn: ['全报告 6 章节结构', '2.6 总结(承接 docx 2.6 章)', '后续复合体推演框架复用'],
  179. score: 100,
  180. },
  181. ];
  182. return `<section class="report-section" id="synthesis-2" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
  183. <div class="section-inner">
  184. <div class="section-head rise-in">
  185. <div class="section-eyebrow" style="color:${c.color};">${c.num}.2 · PRIOR-WORK INHERITANCE</div>
  186. <h2 class="text-h1"><span class="headline-anim">与前序方案承接 · 5 大输入转化链路</span></h2>
  187. <p class="section-sub">本方案 = <strong style="color:${c.color};">VOC + 品类 + 竞品 + 市场 + 方法论</strong> 5 输入聚合体,每输入的落地去向 + 承接度打分</p>
  188. </div>
  189. <div class="fade-up" style="background:var(--bg-1); border:1px solid var(--border); border-radius:var(--radius-md); padding:24px; margin-bottom:24px;">
  190. <div class="text-mono text-xs" style="color:${c.color}; letter-spacing:0.15em; margin-bottom:14px;">INHERITANCE TABLE · 5 前序 → 本方案</div>
  191. <div style="display:grid; gap:14px;">
  192. ${inheritance.map((it, i) => `
  193. <div style="display:grid; grid-template-columns:220px 1fr 260px 120px; gap:16px; padding:16px; background:${it.prevTint}06; border:1px solid ${it.prevTint}33; border-left:4px solid ${it.prevTint}; border-radius:var(--radius-md); align-items:center;">
  194. <div>
  195. <div class="text-mono text-xs" style="color:${it.prevTint}; letter-spacing:0.1em; margin-bottom:6px;">PRIOR · ${i + 1}</div>
  196. <div style="display:flex; align-items:center; gap:8px; margin-bottom:6px;">
  197. <div style="width:30px; height:30px; background:${it.prevTint}22; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.1rem;">${it.prevIcon}</div>
  198. <div style="font-size:0.92rem; font-weight:800; color:var(--text-1);">${esc(it.prev)}</div>
  199. </div>
  200. <div style="font-size:0.68rem; color:var(--text-3); font-family:var(--font-mono); line-height:1.4; word-break:break-all;">${esc(it.prevDoc)}</div>
  201. </div>
  202. <div>
  203. <div class="text-mono text-xs" style="color:var(--text-3); letter-spacing:0.08em; margin-bottom:4px;">本方案承接</div>
  204. <div style="font-size:0.88rem; font-weight:700; color:var(--text-1); margin-bottom:5px;">${esc(it.inherit)}</div>
  205. <div style="font-size:0.75rem; color:var(--text-2); line-height:1.5;">${esc(it.inheritDetail)}</div>
  206. </div>
  207. <div>
  208. <div class="text-mono text-xs" style="color:var(--text-3); letter-spacing:0.08em; margin-bottom:4px;">落地于</div>
  209. <div style="display:flex; flex-direction:column; gap:3px;">
  210. ${it.usedIn.map(u => `<div style="padding:3px 7px; background:${it.prevTint}15; color:${it.prevTint}; border-radius:3px; font-size:0.7rem; font-weight:600;">▸ ${esc(u)}</div>`).join('')}
  211. </div>
  212. </div>
  213. <div style="text-align:center;">
  214. <div style="font-family:var(--font-head); font-weight:900; font-size:2.2rem; color:${it.prevTint}; line-height:1;">${it.score}</div>
  215. <div class="text-mono text-xs" style="color:${it.prevTint}; margin-top:4px; letter-spacing:0.08em;">INHERIT / 100</div>
  216. <div style="margin-top:6px; height:4px; background:var(--bg-2); border-radius:2px; overflow:hidden;">
  217. <div style="width:${it.score}%; height:100%; background:${it.prevTint};"></div>
  218. </div>
  219. </div>
  220. </div>
  221. `).join('')}
  222. </div>
  223. </div>
  224. <div class="fade-up" style="background:linear-gradient(135deg, ${c.color}10, ${BRAND.JIANG_GREEN}08); border:1px solid ${c.color}44; border-radius:var(--radius-md); padding:24px;">
  225. <div class="text-mono text-xs" style="color:${c.color}; letter-spacing:0.15em; margin-bottom:16px;">INTEGRATION FUNNEL · 前序输入整合</div>
  226. <div style="display:grid; grid-template-columns:1fr auto 1fr; gap:20px; align-items:center;">
  227. <div>
  228. <div class="text-mono text-xs" style="color:var(--text-3); letter-spacing:0.08em; margin-bottom:10px;">5 大输入</div>
  229. <div style="display:grid; gap:6px;">
  230. ${inheritance.map(it => `
  231. <div style="display:flex; align-items:center; gap:10px; padding:8px 12px; background:var(--bg-1); border-left:3px solid ${it.prevTint}; border-radius:4px;">
  232. <div style="font-size:1rem;">${it.prevIcon}</div>
  233. <div style="flex:1; font-size:0.82rem; font-weight:700; color:var(--text-1);">${esc(it.prev)}</div>
  234. <div style="font-family:var(--font-mono); font-size:0.75rem; color:${it.prevTint}; font-weight:700;">${it.score}%</div>
  235. </div>
  236. `).join('')}
  237. </div>
  238. </div>
  239. <div style="display:flex; flex-direction:column; align-items:center; gap:8px;">
  240. <div style="font-size:1.8rem; color:${c.color};">➡️</div>
  241. <div class="text-mono text-xs" style="color:${c.color}; letter-spacing:0.12em; text-align:center; font-weight:700;">INTEGRATE<br/>聚合</div>
  242. <div style="font-size:1.8rem; color:${c.color};">⚡</div>
  243. </div>
  244. <div>
  245. <div class="text-mono text-xs" style="color:var(--text-3); letter-spacing:0.08em; margin-bottom:10px;">1 个复合输出</div>
  246. <div style="padding:20px; background:linear-gradient(135deg, ${BRAND.JIANG_GREEN}, ${c.color}); border-radius:var(--radius-md); color:#fff; text-align:center;">
  247. <div style="font-size:1.8rem; margin-bottom:6px;">🧬</div>
  248. <div style="font-size:1.1rem; font-weight:900; margin-bottom:6px;">江中肝纯片 · 产品复合体</div>
  249. <div style="font-size:0.78rem; opacity:0.95; line-height:1.5;">目标人群 × 定位 × 包装 × KV × 价值链 一体化交付,延续定位方案衔接营销方案</div>
  250. <div class="text-mono text-xs" style="margin-top:10px; padding:4px 10px; background:rgba(255,255,255,0.2); border-radius:4px; display:inline-block; letter-spacing:0.12em;">INHERIT SCORE · 93</div>
  251. </div>
  252. </div>
  253. </div>
  254. </div>
  255. </div>
  256. </section>`;
  257. }
  258. // ----- 2.6.3 下一阶段衔接 · Next Stage Transition ---------------------------
  259. function renderSynthesis3NextStage({ slideNum, slideTotal, chapter, A }) {
  260. const c = chapter;
  261. const nextStages = [
  262. {
  263. num: '03', key: 'mkt-compound', name: '营销复合体方案', en: 'MARKETING COMPOUND',
  264. icon: '📢', tint: BRAND.WARM_ORANGE, priority: 'P0',
  265. inputs: ['本方案 2.1 目标人群(3 persona)', '本方案 2.2 定位("场景化复合护肝")', '本方案 2.5 价值链(6 环闭环)'],
  266. outputs: ['STP 精细化分层(L-01/02/03 SKU × 3 persona)', '4P 策略矩阵(产品/价格/渠道/促销)', '传播主张 Key Message + 创意接口', '媒介预算分配(小红书 40% / 抖音 30% / 医院 20% / 私域 10%)'],
  267. timeline: '2026 Q1 启动 · 8 周产出',
  268. kpi: '心智认知 ≥ 30% · GMV ¥1.2 亿/年',
  269. desc: '基于产品复合体的"4 重协同"核心主张,向下延伸 STP/4P/传播矩阵',
  270. },
  271. {
  272. num: '04', key: 'poster-ai', name: '海报 AI 提示词', en: 'POSTER AI PROMPT',
  273. icon: '🎨', tint: '#8B5CF6', priority: 'P0',
  274. inputs: ['本方案 2.3 包装视觉语言', '本方案 2.4 KV 3 版本', '本方案 2.4.3 色彩系统'],
  275. outputs: ['MJ/SD 提示词库(3 KV × 6 场景 = 18 组)', '电商详情页 A/B Test 模板', '小红书封面批量生成脚本', '品牌 DAM(数字资产管理)规范'],
  276. timeline: '2026 Q1 · 与营销复合体并行',
  277. kpi: '日产出素材 ≥ 50 张 · 品牌符合度 ≥ 90%',
  278. desc: '将 KV 视觉系统转化为可批量生成的 AI 提示词资产库',
  279. },
  280. {
  281. num: '05', key: 'channel-exec', name: '渠道策略执行', en: 'CHANNEL EXECUTION',
  282. icon: '🚚', tint: BRAND.JIANG_GREEN, priority: 'P0',
  283. inputs: ['本方案 2.5.2 价值链渠道环节', '本方案 2.2.6 品牌架构', 'VOC 报告渠道偏好分析'],
  284. outputs: ['药店铺货计划(一心堂/大参林/老百姓优先 3w 门店)', '电商平台启动排期(天猫旗舰 → 京东 → 拼多多)', '医院 OTC 柜台培训材料', 'O2O 即时零售(美团买药/叮当)接入'],
  285. timeline: '2026 Q1-Q2 · 6 个月完成首轮铺货',
  286. kpi: '药店覆盖 ≥ 3w · O2O 履约 ≤ 30min',
  287. desc: '从虚拟渠道地图到真实门店铺货的执行落地',
  288. },
  289. {
  290. num: '06', key: 'product-prd', name: '产品立项 PRD', en: 'PRODUCT PRD',
  291. icon: '📋', tint: BRAND.TECH_BLUE, priority: 'P0',
  292. inputs: ['本方案 2.2.6 品牌架构(L-01/02/03/04/05)', '本方案 2.3 包装策略', '本方案 2.5.1 价值主张'],
  293. outputs: ['3 条 SKU 线配方终稿(L-01 循证 / L-02 应酬 / L-03 疏肝)', '打样周期(4 周)+ 试产排期', '合规报批材料(国药准字 OTC)', '上市 Ready 评审 Checklist'],
  294. timeline: '2026 Q1 启动 · Q3 上市',
  295. kpi: '首批试产合格率 ≥ 98% · 合规通过率 100%',
  296. desc: '从战略方案到物理产品的 0→1 工程落地',
  297. },
  298. {
  299. num: '07', key: 'pr-comm', name: 'PR / 内容传播', en: 'PR & CONTENT',
  300. icon: '📰', tint: BRAND.ROSE, priority: 'P1',
  301. inputs: ['本方案 2.1.2 影响人群(KOL 矩阵)', '本方案 2.4 KV 视觉素材', '本方案 VOC 金句素材库'],
  302. outputs: ['丁香医生 / 医学界科普合作 PR', '小红书 100+ KOC 分级铺设', '抖音医生账号矩阵长视频', '公关事件 · "护肝真相"新品发布会'],
  303. timeline: '2026 Q2 启动 · 持续运营',
  304. kpi: '科普内容曝光 ≥ 2 亿 · 舆情正面率 ≥ 85%',
  305. desc: '跳出促销叙事,建立"循证护肝专家"长期品牌心智',
  306. },
  307. {
  308. num: '08', key: 'data-loop', name: '数据闭环 · 一物一码后台', en: 'DATA LOOP',
  309. icon: '📊', tint: '#14B8A6', priority: 'P1',
  310. inputs: ['本方案 2.5.3 用户价值路径', '本方案 2.5 价值链服务环节', '本方案 VOC 反馈机制'],
  311. outputs: ['一物一码扫码数据中台', '服用日历小程序用户行为分析', '30 日 NPS 调研自动化', 'VOC 持续监测仪表盘(每周更新)'],
  312. timeline: '2026 Q2 MVP · Q3 迭代',
  313. kpi: '扫码率 ≥ 40% · 留存 ≥ 62% · NPS ≥ 50',
  314. desc: '从单次售出到终身用户,打造数据驱动的复购循环',
  315. },
  316. ];
  317. return `<section class="report-section" id="synthesis-3" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
  318. <div class="section-inner">
  319. <div class="section-head rise-in">
  320. <div class="section-eyebrow" style="color:${c.color};">${c.num}.3 · NEXT STAGE TRANSITION</div>
  321. <h2 class="text-h1"><span class="headline-anim">下一阶段衔接 · 6 条工作流 FROM COMPOUND TO LAUNCH</span></h2>
  322. <p class="section-sub">产品复合体方案已完成 · 向下延伸 <strong style="color:${c.color};">营销 · 海报 · 渠道 · 产品 · PR · 数据</strong> 6 大工作流</p>
  323. </div>
  324. <!-- 时间轴全景 -->
  325. <div class="fade-up" style="background:var(--bg-1); border:1px solid var(--border); border-radius:var(--radius-md); padding:24px; margin-bottom:24px;">
  326. <div class="text-mono text-xs" style="color:${c.color}; letter-spacing:0.15em; margin-bottom:14px;">2026 ROADMAP · 产品复合体后续工作全景</div>
  327. <svg viewBox="0 0 1200 180" style="width:100%; height:auto;">
  328. <defs>
  329. <linearGradient id="gradRoadmap" x1="0" y1="0" x2="1" y2="0">
  330. <stop offset="0" stop-color="${BRAND.LIVER_AMBER}"/>
  331. <stop offset="0.33" stop-color="${BRAND.WARM_ORANGE}"/>
  332. <stop offset="0.66" stop-color="${BRAND.JIANG_GREEN}"/>
  333. <stop offset="1" stop-color="${BRAND.TECH_BLUE}"/>
  334. </linearGradient>
  335. </defs>
  336. <!-- 主时间轴 -->
  337. <line x1="60" y1="100" x2="1140" y2="100" stroke="url(#gradRoadmap)" stroke-width="4" stroke-linecap="round"/>
  338. <!-- 季度刻度 -->
  339. ${['Q1 2026', 'Q2 2026', 'Q3 2026', 'Q4 2026'].map((q, i) => {
  340. const x = 200 + i * 280;
  341. return `
  342. <circle cx="${x}" cy="100" r="8" fill="var(--bg-1)" stroke="${c.color}" stroke-width="2"/>
  343. <text x="${x}" y="86" text-anchor="middle" font-family="ui-monospace, monospace" font-size="11" fill="var(--text-1)" font-weight="700">${q}</text>
  344. `;
  345. }).join('')}
  346. <!-- 6 阶段节点 -->
  347. ${nextStages.map((s, i) => {
  348. const x = 170 + i * 165;
  349. const isUp = i % 2 === 0;
  350. const y = isUp ? 40 : 160;
  351. const lineY = isUp ? 50 : 150;
  352. return `
  353. <line x1="${x}" y1="100" x2="${x}" y2="${lineY}" stroke="${s.tint}" stroke-width="1.5" stroke-dasharray="3,3"/>
  354. <circle cx="${x}" cy="${y}" r="20" fill="${s.tint}"/>
  355. <text x="${x}" y="${y + 5}" text-anchor="middle" font-family="ui-sans-serif" font-size="14" fill="#fff">${s.icon}</text>
  356. <text x="${x}" y="${isUp ? y - 28 : y + 34}" text-anchor="middle" font-family="ui-sans-serif" font-size="9" fill="${s.tint}" font-weight="700" letter-spacing="0.06em">NEXT · ${s.num}</text>
  357. <text x="${x}" y="${isUp ? y - 15 : y + 46}" text-anchor="middle" font-family="ui-sans-serif" font-size="10" fill="var(--text-1)" font-weight="700">${esc(s.name)}</text>
  358. `;
  359. }).join('')}
  360. </svg>
  361. </div>
  362. <!-- 6 工作流卡片 -->
  363. <div class="fade-up" style="display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; margin-bottom:24px;">
  364. ${nextStages.map(s => `
  365. <div style="background:var(--bg-1); border:1px solid ${s.tint}44; border-top:4px solid ${s.tint}; border-radius:var(--radius-md); padding:18px;">
  366. <div style="display:flex; align-items:center; justify-content:space-between; margin-bottom:10px;">
  367. <div style="display:flex; align-items:center; gap:10px;">
  368. <div style="width:40px; height:40px; background:${s.tint}22; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.3rem;">${s.icon}</div>
  369. <div>
  370. <div class="text-mono text-xs" style="color:${s.tint}; letter-spacing:0.1em;">NEXT · ${s.num}</div>
  371. <div style="font-size:1rem; font-weight:800; color:var(--text-1);">${esc(s.name)}</div>
  372. </div>
  373. </div>
  374. <div style="padding:3px 8px; background:${s.priority === 'P0' ? BRAND.ROSE : BRAND.WARM_ORANGE}22; color:${s.priority === 'P0' ? BRAND.ROSE : BRAND.WARM_ORANGE}; border-radius:3px; font-family:var(--font-mono); font-size:0.7rem; font-weight:700;">${s.priority}</div>
  375. </div>
  376. <div style="padding:8px 10px; background:${s.tint}10; border-left:3px solid ${s.tint}; border-radius:4px; margin-bottom:10px;">
  377. <div style="font-size:0.78rem; color:var(--text-1); font-weight:600; line-height:1.45;">${esc(s.desc)}</div>
  378. </div>
  379. <div style="margin-bottom:10px;">
  380. <div class="text-mono text-xs" style="color:var(--text-3); letter-spacing:0.08em; margin-bottom:5px;">🔗 来自本方案输入</div>
  381. <ul style="margin:0; padding:0; list-style:none;">
  382. ${s.inputs.map(it => `<li style="padding:2px 0; font-size:0.72rem; color:var(--text-2); line-height:1.4; padding-left:12px; position:relative;"><span style="position:absolute; left:0; color:${s.tint};">▸</span>${esc(it)}</li>`).join('')}
  383. </ul>
  384. </div>
  385. <div style="margin-bottom:10px;">
  386. <div class="text-mono text-xs" style="color:var(--text-3); letter-spacing:0.08em; margin-bottom:5px;">📤 下阶段产出</div>
  387. <ul style="margin:0; padding:0; list-style:none;">
  388. ${s.outputs.map(ot => `<li style="padding:2px 0; font-size:0.72rem; color:var(--text-2); line-height:1.4; padding-left:12px; position:relative;"><span style="position:absolute; left:0; color:${s.tint};">✓</span>${esc(ot)}</li>`).join('')}
  389. </ul>
  390. </div>
  391. <div style="padding-top:8px; border-top:1px dashed var(--border); display:grid; grid-template-columns:1fr 1fr; gap:8px;">
  392. <div>
  393. <div class="text-mono text-xs" style="color:var(--text-3); letter-spacing:0.06em; margin-bottom:2px;">⏱️ 排期</div>
  394. <div style="font-size:0.72rem; color:var(--text-1); font-weight:600;">${esc(s.timeline)}</div>
  395. </div>
  396. <div>
  397. <div class="text-mono text-xs" style="color:var(--text-3); letter-spacing:0.06em; margin-bottom:2px;">🎯 KPI</div>
  398. <div style="font-size:0.72rem; color:${s.tint}; font-weight:700;">${esc(s.kpi)}</div>
  399. </div>
  400. </div>
  401. </div>
  402. `).join('')}
  403. </div>
  404. <!-- 最终封印 -->
  405. <div class="fade-up" style="background:linear-gradient(135deg, ${c.color}15, ${BRAND.JIANG_GREEN}10, ${BRAND.ROSE}10); border:2px solid ${c.color}44; border-radius:var(--radius-md); padding:32px; text-align:center;">
  406. <div class="text-mono text-xs" style="color:${c.color}; letter-spacing:0.2em; margin-bottom:10px;">THE COMPOUND IS READY · 产品复合体 · 方案封印</div>
  407. <h3 style="font-family:var(--font-head); font-weight:900; font-size:2rem; color:var(--text-1); margin:0 0 14px 0; line-height:1.2;">
  408. <span style="color:${BRAND.JIANG_GREEN};">产品</span> →
  409. <span style="color:${BRAND.WARM_ORANGE};">营销</span> →
  410. <span style="color:#8B5CF6;">海报</span> →
  411. <span style="color:${BRAND.TECH_BLUE};">数据</span>
  412. </h3>
  413. <div style="color:var(--text-2); font-size:0.95rem; line-height:1.7; max-width:820px; margin:0 auto 20px;">
  414. 江中肝纯片产品复合体方案以<strong style="color:${BRAND.LIVER_AMBER};">场景化复合护肝</strong>为心智锚点,串联 <strong>3 类真实 VOC 人群 → 4 重协同配方 → 4 层包装架构 → 3 版本 KV → 6 环价值链</strong>,为 2026 年新品上市奠定战略底座。本方案结束,下一阶段 <strong style="color:${c.color};">营销复合体</strong> 即刻承接启动。
  415. </div>
  416. <div style="display:inline-flex; align-items:center; gap:14px; padding:12px 22px; background:var(--bg-1); border:1px solid ${c.color}44; border-radius:999px;">
  417. <span style="font-size:1.4rem;">🎬</span>
  418. <span class="text-mono text-xs" style="color:${c.color}; letter-spacing:0.15em; font-weight:800;">READY TO LAUNCH · 2026</span>
  419. <span style="font-size:1.4rem;">🚀</span>
  420. </div>
  421. </div>
  422. </div>
  423. </section>`;
  424. }
  425. module.exports = { renderSynthesis1Elements, renderSynthesis2Inheritance, renderSynthesis3NextStage };