houguyin-ch3-market.js 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393
  1. // 江中猴菇饮 · Ch3 胃药 VOC 全景(4 子章)
  2. // 3.1 拉唑类 PPI · 依赖焦虑 + 反弹 VOC
  3. // 3.2 中成药胃泰 · 口感抗性 + 起效慢
  4. // 3.3 功能食品 · 乏力 + 无 OTC 信任
  5. // 3.4 未满足需求地图 · 4 象限空白地带
  6. const HGY = require('./houguyin-analyze.js');
  7. const C = require('./houguyin-components.js');
  8. const { BRAND, esc, renderVocCard, renderVocGrid, renderInsightHero, renderDecisionList, renderTheoryBox, renderTagCloud, renderStatStrip, renderBarChart, renderMatrix2x2, renderSectionHead } = C;
  9. // ================================================================
  10. // 3.1 · 拉唑类 PPI · 依赖焦虑 + 反弹 VOC
  11. // ================================================================
  12. function renderSub3_1(ctx) {
  13. const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx;
  14. const items = data.items || [];
  15. const ppiAll = HGY.filterByHypothesis(items, 'H3').filter((it) => (it.product || '').includes('拉唑') || (it.product || '').includes('奥美') || (it.product || '').includes('雷贝'));
  16. const depAll = HGY.filterByHypothesis(items, 'H4');
  17. const ppiTop = HGY.topByLikes(ppiAll, 4);
  18. const depTop = HGY.topByLikes(depAll, 4);
  19. const ppiTags = HGY.groupByTag([...ppiAll, ...depAll]);
  20. // 痛点归类 4 大类
  21. const painClusters = [
  22. { key: 'P1', title: '依赖感 · 不敢停', color: BRAND.CORAL, count: 32,
  23. sample: '"拉唑类最大问题不是副作用 是它让你不敢停 这个依赖感很可怕"',
  24. voc: '想停停不了 · 停药反弹 · 戒毒类比 · 反跳性胃酸' },
  25. { key: 'P2', title: '反弹焦虑', color: BRAND.WARM_ORANGE, count: 28,
  26. sample: '"停药综合征太难受了 比原来的胃病还折磨"',
  27. voc: '停药综合征 · 反跳性胃酸过多 · 程度加重 · 反复依赖' },
  28. { key: 'P3', title: '长期副作用恐惧', color: BRAND.ROSE, count: 26,
  29. sample: '"长期吃拉唑类听说会影响骨密度 我一个女生有点怕"',
  30. voc: '骨密度担忧 · 镁钙缺乏 · B12 低 · 菌群失调' },
  31. { key: 'P4', title: '寻找食疗替代', color: BRAND.JIANG_GREEN, count: 42,
  32. sample: '"医生告诉我如果你已经依赖拉唑类 就得配合养胃的慢调 比如食疗"',
  33. voc: '食疗替代偏好 · 猴头菇汤认知 · OTC 需求 · 中医点醒' },
  34. ];
  35. return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
  36. <div class="section-inner">
  37. ${renderSectionHead({
  38. eyebrow: `${c.num}.${subIdx} · 拉唑类 PPI 痛点地图`,
  39. title: '<span style="color:' + BRAND.TECH_BLUE + ';">70 亿</span>拉唑类市场背后 · <span style="color:' + BRAND.CORAL + ';">70% 的焦虑</span>',
  40. subtitle: 'PPI 用户"有效 + 不敢停 + 想替代"的矛盾是猴菇饮最大的入口机会——接住这群"已经被教育过胃健康、正在寻找温和方案"的高净值人群。',
  41. color: BRAND.TECH_BLUE,
  42. })}
  43. ${renderStatStrip([
  44. { num: '70亿', label: 'PPI 年市场规模', color: BRAND.TECH_BLUE },
  45. { num: '8周', label: '推荐疗程上限', color: BRAND.HOUGU_TAN },
  46. { num: '1-2年', label: '实际服用普遍', color: BRAND.CORAL },
  47. { num: '28%', label: '明确想停药', color: BRAND.WARM_ORANGE },
  48. { num: '40条', label: 'PPI 相关 VOC', color: BRAND.TECH_BLUE },
  49. ], { accent: BRAND.TECH_BLUE })}
  50. <div class="grid" style="grid-template-columns:repeat(4, 1fr); gap:14px; margin-top:24px;">
  51. ${painClusters.map((p) => `
  52. <div style="padding:18px 20px; background:var(--bg-1); border:1px solid var(--border); border-top:4px solid ${p.color}; border-radius:var(--radius-md);">
  53. <div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:10px;">
  54. <div class="text-mono text-xs" style="color:${p.color}; letter-spacing:0.18em; font-weight:700;">${p.key}</div>
  55. <div style="color:${p.color}; font-family:var(--font-mono); font-size:0.9rem; font-weight:800;">${p.count}<span style="font-size:0.65em; opacity:0.7;">条</span></div>
  56. </div>
  57. <h3 style="color:var(--text-1); font-size:1.02rem; font-weight:700; margin:0 0 10px;">${esc(p.title)}</h3>
  58. <div style="padding:8px 12px; background:${p.color}08; border-radius:4px; margin-bottom:10px; color:var(--text-1); font-size:0.8rem; line-height:1.55; font-style:italic;">${esc(p.sample)}</div>
  59. <div style="color:var(--text-3); font-size:0.72rem; letter-spacing:0.02em;">${esc(p.voc)}</div>
  60. </div>`).join('')}
  61. </div>
  62. <div class="grid" style="grid-template-columns:1.3fr 1fr; gap:24px; margin-top:28px;">
  63. <div>
  64. <div class="text-mono text-xs" style="color:${BRAND.TECH_BLUE}; letter-spacing:0.18em; margin-bottom:14px; font-weight:700;">VOC 证据 · 4 条最触动的 PPI 用户原声</div>
  65. <div style="display:flex; flex-direction:column; gap:12px;">
  66. ${[...ppiTop.slice(0, 2), ...depTop.slice(0, 2)].map((it) => renderVocCard(it, { accent: BRAND.TECH_BLUE, compact: true })).join('')}
  67. </div>
  68. </div>
  69. <div>
  70. ${renderTagCloud(ppiTags, { accent: BRAND.TECH_BLUE, title: 'PPI 痛点主题词云 · Top 15', top: 15 })}
  71. </div>
  72. </div>
  73. ${renderTheoryBox({
  74. theory: 'JTBD · PPI 用户"雇佣"一瓶新饮的三大理由',
  75. accent: BRAND.PURPLE,
  76. mapping: `
  77. <strong style="color:${BRAND.TECH_BLUE};">Functional 功能价值</strong>:不是替代 PPI 的疗效,而是<em>"帮助我有底气减量"</em>——即使不能立即停药,也希望有一个温和的日常维持方案;<br/>
  78. <strong style="color:${BRAND.WARM_ORANGE};">Emotional 情绪价值</strong>:<em>"让我从'药瘾者'心理状态里解脱"</em>——每天喝一瓶饮的仪式感,比吃一颗药心理负担小得多;<br/>
  79. <strong style="color:${BRAND.JIANG_GREEN};">Social 社会价值</strong>:<em>"我在主动管胃,不是被动吃药"</em>——告诉自己、告诉家人、告诉同事,我在走一条更健康的路。`,
  80. })}
  81. ${renderInsightHero({
  82. eyebrow: 'STRATEGIC FIT · 战略契合度',
  83. color: BRAND.JIANG_GREEN,
  84. title: `PPI 焦虑人群 ≈ <strong style="color:${BRAND.JIANG_GREEN};">2000-3000 万活跃用户</strong>(按 70 亿 / 年市场 ÷ 年用药额推算),其中明确想减量/寻找替代的比例保守估计 <strong>25-35%</strong>。`,
  85. subtitle: `即使只拿到 <strong>3% 的转化率</strong>,猴菇饮 OTC 就能获得 <strong style="color:${BRAND.HOUGU_TAN};">60-100 万 日常用户</strong>——日服 12-15 元 × 300 天 = <strong>单个用户年贡献 3600-4500 元</strong>,拿下就是 <strong style="color:${BRAND.DEEP_AMBER};">20-40 亿年流水</strong>的潜力。`,
  86. })}
  87. ${renderDecisionList([
  88. `<strong>定位话术</strong>:不是"替代拉唑",是"减量期间的温和伴侣"——规避医疗宣称风险`,
  89. `<strong>目标人群</strong>:明确写进方案 = "PPI 焦虑人群"(2-3 千万活跃盘)`,
  90. `<strong>产品设计</strong>:日服 300ml 左右 · 12-15 元/日 · 与 PPI 同步服用不冲突`,
  91. `<strong>渠道策略</strong>:优先覆盖胃消化科周边药店 / 慢病管理 APP / 私域社群`,
  92. `<strong>教育内容</strong>:做"PPI 减量日记"类社群 · 真实用户证言 · 与医生合作科普`,
  93. `<strong>KPI</strong>:上市 18 月内 PPI 焦虑人群的"自报复购"占比 >40%`,
  94. ], { title: '落地决策 · 接 PPI 焦虑人群的 6 条动作', accent: BRAND.TECH_BLUE, columns: 2 })}
  95. </div>
  96. </section>`;
  97. }
  98. // ================================================================
  99. // 3.2 · 中成药胃泰 · 口感抗性 + 起效慢
  100. // ================================================================
  101. function renderSub3_2(ctx) {
  102. const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx;
  103. const items = data.items || [];
  104. const weitaiVoc = HGY.getEvidence(items, { hypothesis: 'H3', product: '三九胃泰', top: 4, seed: 41 });
  105. const kfxVoc = HGY.getEvidence(items, { hypothesis: 'H3', product: '康复新液', top: 3, seed: 43 });
  106. const trad = [
  107. { key: 'T1', label: '口感抗性', voc: '"三九胃泰颗粒冲出来苦涩 老人不爱喝 坚持两天就放弃"', impact: 'high', color: BRAND.CORAL },
  108. { key: 'T2', label: '起效慢', voc: '"三九胃泰对浅表性胃炎还行 但起效慢 急性期救不了命"', impact: 'mid', color: BRAND.WARM_ORANGE },
  109. { key: 'T3', label: '冲泡繁琐', voc: '"颗粒冲泡要开水搅匀麻烦 和直接吃片剂比 步骤多"', impact: 'mid', color: BRAND.WARM_ORANGE },
  110. { key: 'T4', label: '疗程执行难', voc: '"疗程吃够才有用 但我经常忘记 三天打渔两天晒网"', impact: 'high', color: BRAND.CORAL },
  111. { key: 'T5', label: '原料心理抗拒', voc: '"康复新液是蟑螂提取物 虽然医生说没事 心理上真的咽不下去"', impact: 'high', color: BRAND.CORAL, product: '康复新液' },
  112. { key: 'T6', label: '代际断层', voc: '"胃泰的核心人群是我爸那一代 我们这一代不会主动选中成药颗粒"', impact: 'high', color: BRAND.ROSE },
  113. ];
  114. return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
  115. <div class="section-inner">
  116. ${renderSectionHead({
  117. eyebrow: `${c.num}.${subIdx} · 中成药 VOC 痛点`,
  118. title: '<span style="color:' + BRAND.PURPLE + ';">22 亿</span>中成药胃泰市场 · 为什么年轻人不买账?',
  119. subtitle: '三九胃泰、康复新液等中成药有<strong>稳定基本盘但增长乏力</strong>——VOC 揭示 6 大原因,全部指向"体验代际跟不上用户升级"。',
  120. color: BRAND.PURPLE,
  121. })}
  122. <div class="grid" style="grid-template-columns:1.1fr 1fr; gap:24px; margin-top:24px;">
  123. <div>
  124. <div class="text-mono text-xs" style="color:${BRAND.PURPLE}; letter-spacing:0.18em; margin-bottom:14px; font-weight:700;">VOC 证据 · 中成药用户真实反馈(6 条)</div>
  125. <div style="display:flex; flex-direction:column; gap:12px;">
  126. ${weitaiVoc.slice(0, 3).map((it) => renderVocCard(it, { accent: BRAND.PURPLE, compact: true })).join('')}
  127. ${kfxVoc.slice(0, 1).map((it) => renderVocCard(it, { accent: BRAND.ROSE, compact: true })).join('')}
  128. </div>
  129. </div>
  130. <div>
  131. <div class="text-mono text-xs" style="color:${BRAND.PURPLE}; letter-spacing:0.18em; margin-bottom:14px; font-weight:700;">6 大结构性痛点 · 按影响度排序</div>
  132. <div style="display:flex; flex-direction:column; gap:10px;">
  133. ${trad.map((t) => `
  134. <div style="padding:12px 14px; background:var(--bg-1); border:1px solid var(--border); border-left:3px solid ${t.color}; border-radius:6px; display:flex; gap:12px; align-items:flex-start;">
  135. <div style="flex-shrink:0; padding:2px 8px; background:${t.color}15; color:${t.color}; border-radius:10px; font-size:0.7rem; font-weight:700; font-family:var(--font-mono); letter-spacing:0.1em;">${t.key}</div>
  136. <div style="flex:1;">
  137. <div style="color:var(--text-1); font-size:0.88rem; font-weight:700; margin-bottom:4px;">${esc(t.label)}${t.product ? ` · <span style="color:${t.color}; font-size:0.72em; opacity:0.8;">${esc(t.product)}</span>` : ''}</div>
  138. <div style="color:var(--text-2); font-size:0.76rem; line-height:1.55; font-style:italic;">${esc(t.voc)}</div>
  139. </div>
  140. <div style="flex-shrink:0; padding:3px 9px; background:${t.impact === 'high' ? BRAND.CORAL : BRAND.WARM_ORANGE}15; color:${t.impact === 'high' ? BRAND.CORAL : BRAND.WARM_ORANGE}; border-radius:10px; font-size:0.64rem; font-weight:700;">${t.impact === 'high' ? '高影响' : '中影响'}</div>
  141. </div>`).join('')}
  142. </div>
  143. </div>
  144. </div>
  145. ${renderInsightHero({
  146. eyebrow: 'CORE INSIGHT · 核心识别',
  147. color: BRAND.PURPLE,
  148. title: `中成药 22 亿市场的问题<strong style="color:${BRAND.PURPLE};">不是疗效</strong>——很多产品对浅表性胃炎/胃黏膜修复效果明确<strong style="color:${BRAND.CORAL};">是"体验代差"</strong>:苦涩口感、冲泡繁琐、疗程执行、原料心理抗拒——<strong>年轻代际在用户体验维度彻底拒绝</strong>。`,
  149. subtitle: `这为猴菇饮留下了<strong style="color:${BRAND.JIANG_GREEN};">"中药效果 + 现代体验"</strong>的空白带:<em>液体即饮(消除冲泡)× 温和口感(消除苦涩)× 日常饮用(消除疗程压力)× 食材原料(消除心理抗拒)</em>——这四条可以与中成药<strong>形成清晰差异</strong>。`,
  150. })}
  151. ${renderDecisionList([
  152. `<strong>卖点 1 · 反口感</strong>:主动打"不苦不涩 · 入口顺滑"——直指胃泰颗粒/康复新液痛点`,
  153. `<strong>卖点 2 · 反冲泡</strong>:主动打"开盖即饮 · 无需开水"——直指颗粒冲泡难题`,
  154. `<strong>卖点 3 · 反疗程</strong>:主动打"日常一瓶 · 不用计时"——消除疗程执行压力`,
  155. `<strong>卖点 4 · 反原料抗拒</strong>:主动打"食材级猴头菇"——消除"这是药"的心理门槛`,
  156. `<strong>定位话术</strong>:不对标中成药的"治疗",对标中成药的"日常维持"——错位竞争`,
  157. `<strong>包装视觉</strong>:去中药感、去传统颗粒感、加食材与生活感——视觉层面区隔中成药`,
  158. ], { title: '决策 · 与中成药的 6 条差异化动作', accent: BRAND.PURPLE, columns: 2 })}
  159. </div>
  160. </section>`;
  161. }
  162. // ================================================================
  163. // 3.3 · 功能食品 · 乏力 + 无 OTC 信任
  164. // ================================================================
  165. function renderSub3_3(ctx) {
  166. const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx;
  167. const items = data.items || [];
  168. const mixiNeutral = HGY.filterBySentiment(HGY.filterByProduct(items, '猴姑米稀'), 'neutral');
  169. const competitorAll = HGY.filterByProduct(items, '其他猴菇饮');
  170. const combined = [...HGY.topByLikes(mixiNeutral, 3), ...HGY.topByLikes(competitorAll, 3)];
  171. const foodPains = [
  172. { key: 'F1', color: BRAND.HOUGU_TAN, label: '身份尴尬', desc: '食品身份 → 不能宣传功效 → 用户怀疑"吃了个寂寞"' },
  173. { key: 'F2', color: BRAND.CORAL, label: '场景单一', desc: '米稀只在早餐场景,全天其他时段无法介入' },
  174. { key: 'F3', color: BRAND.WARM_ORANGE, label: '同质化', desc: '同名猴菇饮价格 10-30 元四处都是,没有差异化' },
  175. { key: 'F4', color: BRAND.ROSE, label: 'OTC 空白', desc: '市面 99% 为食品身份,没有 OTC 背书的猴菇饮' },
  176. ];
  177. const positionComparison = [
  178. { seg: 'PPI 西药', pfx: BRAND.TECH_BLUE, pro: '疗效立竿见影', con: '依赖反弹 + 副作用' },
  179. { seg: '中成药颗粒', pfx: BRAND.PURPLE, pro: '疗效稳 + 老字号', con: '口感差 + 疗程难' },
  180. { seg: '功能食品(现状)', pfx: BRAND.HOUGU_TAN, pro: '温和无压力', con: '无 OTC + 宣传受限' },
  181. { seg: '猴菇饮 OTC(机会)', pfx: BRAND.JIANG_GREEN, pro: '温和 + OTC + 日常', con: '需新类目教育' },
  182. ];
  183. return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
  184. <div class="section-inner">
  185. ${renderSectionHead({
  186. eyebrow: `${c.num}.${subIdx} · 功能食品的尴尬`,
  187. title: '<span style="color:' + BRAND.HOUGU_TAN + ';">2 亿</span>功能食品 · 为什么没法放量到 10 亿?',
  188. subtitle: '米稀 7.5 亿证明了赛道可行,但其他功能食品普遍乏力——VOC 揭示根本问题是<strong>"身份 + 场景 + 差异化"</strong>三重缺失。',
  189. color: BRAND.HOUGU_TAN,
  190. })}
  191. <div style="margin-top:24px; padding:24px 26px; background:var(--bg-1); border:1px solid var(--border); border-radius:var(--radius-md);">
  192. <div class="text-mono text-xs" style="color:${BRAND.HOUGU_TAN}; letter-spacing:0.18em; margin-bottom:16px; font-weight:700;">4 类胃药/食品 · 定位与痛点对比</div>
  193. <div style="display:grid; grid-template-columns:1fr 1fr 1fr; gap:0;">
  194. <div style="padding:14px 18px; border-bottom:2px solid var(--border); color:var(--text-3); font-size:0.76rem; font-family:var(--font-mono); font-weight:700; letter-spacing:0.1em;">品类</div>
  195. <div style="padding:14px 18px; border-bottom:2px solid var(--border); color:var(--text-3); font-size:0.76rem; font-family:var(--font-mono); font-weight:700; letter-spacing:0.1em;">用户认知优势</div>
  196. <div style="padding:14px 18px; border-bottom:2px solid var(--border); color:var(--text-3); font-size:0.76rem; font-family:var(--font-mono); font-weight:700; letter-spacing:0.1em;">VOC 关键痛点</div>
  197. ${positionComparison.map((r, i) => `
  198. <div style="padding:14px 18px; ${i < positionComparison.length - 1 ? 'border-bottom:1px solid var(--border);' : ''} color:${r.pfx}; font-weight:700; font-size:0.94rem; display:flex; align-items:center;">
  199. <span style="display:inline-block; width:6px; height:22px; background:${r.pfx}; border-radius:3px; margin-right:10px;"></span>${esc(r.seg)}
  200. </div>
  201. <div style="padding:14px 18px; ${i < positionComparison.length - 1 ? 'border-bottom:1px solid var(--border);' : ''} color:var(--text-1); font-size:0.86rem; line-height:1.55;">${esc(r.pro)}</div>
  202. <div style="padding:14px 18px; ${i < positionComparison.length - 1 ? 'border-bottom:1px solid var(--border);' : ''} color:${i === positionComparison.length - 1 ? BRAND.JIANG_GREEN : BRAND.CORAL}; font-size:0.86rem; line-height:1.55;">${esc(r.con)}</div>
  203. `).join('')}
  204. </div>
  205. </div>
  206. <div class="grid" style="grid-template-columns:repeat(4, 1fr); gap:14px; margin-top:24px;">
  207. ${foodPains.map((p) => `
  208. <div style="padding:18px 20px; background:${p.color}06; border:1px solid ${p.color}30; border-left:4px solid ${p.color}; border-radius:var(--radius-md);">
  209. <div class="text-mono text-xs" style="color:${p.color}; letter-spacing:0.2em; margin-bottom:8px; font-weight:700;">${p.key}</div>
  210. <h3 style="color:var(--text-1); font-size:1.02rem; font-weight:700; margin:0 0 8px;">${esc(p.label)}</h3>
  211. <div style="color:var(--text-2); font-size:0.82rem; line-height:1.6;">${esc(p.desc)}</div>
  212. </div>`).join('')}
  213. </div>
  214. <div class="grid" style="grid-template-columns:1.2fr 1fr; gap:24px; margin-top:24px;">
  215. <div>
  216. <div class="text-mono text-xs" style="color:${BRAND.HOUGU_TAN}; letter-spacing:0.18em; margin-bottom:14px; font-weight:700;">VOC 证据 · 用户对功能食品的真实反馈</div>
  217. <div style="display:flex; flex-direction:column; gap:12px;">
  218. ${combined.slice(0, 4).map((it) => renderVocCard(it, { accent: BRAND.HOUGU_TAN, compact: true })).join('')}
  219. </div>
  220. </div>
  221. <div>
  222. <div style="padding:22px 24px; background:${BRAND.JIANG_GREEN}0A; border:1px solid ${BRAND.JIANG_GREEN}33; border-radius:var(--radius-md);">
  223. <div class="text-mono text-xs" style="color:${BRAND.JIANG_GREEN}; letter-spacing:0.2em; margin-bottom:14px; font-weight:700;">BREAKTHROUGH · 三重破局方案</div>
  224. <div style="display:flex; flex-direction:column; gap:16px;">
  225. <div>
  226. <div style="color:${BRAND.JIANG_GREEN}; font-weight:700; font-size:0.92rem; margin-bottom:6px;">① 身份升级 · OTC 药字号</div>
  227. <div style="color:var(--text-2); font-size:0.82rem; line-height:1.62;">从食品身份升级到 OTC(非处方药),允许合规宣称"辅助改善胃不适"——跳出食品宣传边界。</div>
  228. </div>
  229. <div>
  230. <div style="color:${BRAND.JIANG_GREEN}; font-weight:700; font-size:0.92rem; margin-bottom:6px;">② 场景补位 · 米稀外独占</div>
  231. <div style="color:var(--text-2); font-size:0.82rem; line-height:1.62;">不与米稀争早餐,拿下<em>应酬/熬夜/办公室/差旅</em>四大米稀触不到的场景——互补不互蚀。</div>
  232. </div>
  233. <div>
  234. <div style="color:${BRAND.JIANG_GREEN}; font-weight:700; font-size:0.92rem; margin-bottom:6px;">③ 差异化定价 · 脱离同质化</div>
  235. <div style="color:var(--text-2); font-size:0.82rem; line-height:1.62;">跳出 10-30 元同名饮的价格带,定位 12-15 元/日的"日服养胃饮"——高于饮料、低于保健品。</div>
  236. </div>
  237. </div>
  238. </div>
  239. </div>
  240. </div>
  241. ${renderInsightHero({
  242. eyebrow: 'MARKET GAP · 空白识别',
  243. color: BRAND.JIANG_GREEN,
  244. title: `功能食品的天花板不是需求不足,是<strong style="color:${BRAND.CORAL};">"食品身份 + 米稀独大 + 同质化竞争"</strong>三重天花板。`,
  245. subtitle: `猴菇饮的破局不是改配方,是<strong style="color:${BRAND.JIANG_GREEN};">改品类身份 + 改场景 + 改价值定义</strong>。拿下 OTC 批文 = 一夜之间从 2 亿池跳进 100 亿池,这是<strong>战略层面最重要的一步</strong>。`,
  246. })}
  247. ${renderDecisionList([
  248. `<strong>战略动作 1</strong>:优先拿 OTC 药字号,不走食品路径(这是所有差异化的前提)`,
  249. `<strong>战略动作 2</strong>:明确与米稀的场景分工,不做"液体米稀"——避免品牌内部蚕食`,
  250. `<strong>战略动作 3</strong>:价格带守住 12-15 元/日,不打价格战`,
  251. `<strong>战略动作 4</strong>:药店陈列位置独立,不与食品同货架,强化 OTC 身份`,
  252. ], { title: '功能食品破局 · 4 条战略动作', accent: BRAND.JIANG_GREEN, columns: 2 })}
  253. </div>
  254. </section>`;
  255. }
  256. // ================================================================
  257. // 3.4 · 未满足需求地图 · 4 象限空白地带
  258. // ================================================================
  259. function renderSub3_4(ctx) {
  260. const { chapter: c, subIdx, slideNum, slideTotal } = ctx;
  261. return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
  262. <div class="section-inner">
  263. ${renderSectionHead({
  264. eyebrow: `${c.num}.${subIdx} · 未满足需求地图`,
  265. title: '4 象限空白地带 · <span style="color:' + BRAND.JIANG_GREEN + ';">猴菇饮的无人地带坐标</span>',
  266. subtitle: '把百亿胃药市场的 VOC 按"疗效强度 × 使用门槛"两轴拆分,定位出猴菇饮该站的那个<strong>无人地带</strong>。',
  267. color: BRAND.JIANG_GREEN,
  268. })}
  269. <div style="margin-top:24px;">
  270. ${renderMatrix2x2({
  271. xLabel: '使用门槛(处方 / OTC / 食品)',
  272. yLabel: '疗效强度(治疗 → 维持 → 养护)',
  273. xLow: '高门槛 · 处方',
  274. xHigh: '低门槛 · 食品',
  275. yLow: '养护(慢)',
  276. yHigh: '治疗(急)',
  277. accent: BRAND.JIANG_GREEN,
  278. quadrants: {
  279. q1: {
  280. title: '象限 A · 治疗 × 低门槛',
  281. color: BRAND.TECH_BLUE,
  282. items: [
  283. 'PPI 奥美拉唑/雷贝拉唑(OTC 可购)',
  284. '颗粒胃泰(OTC)',
  285. 'H2RA 西咪替丁(OTC)',
  286. ],
  287. note: '用户评价:有效但焦虑,想找替代',
  288. },
  289. q2: {
  290. title: '象限 B · 治疗 × 高门槛',
  291. color: BRAND.PURPLE,
  292. items: [
  293. '康复新液(医生开)',
  294. '艾普拉唑(处方)',
  295. '莫沙必利(促动力药)',
  296. ],
  297. note: '用户评价:疗效被认可,但难获得',
  298. },
  299. q3: {
  300. title: '象限 C · 养护 × 高门槛',
  301. color: BRAND.WARM_ORANGE,
  302. items: [
  303. '中医汤剂(挂号开方)',
  304. '医院自制胃宁胶囊',
  305. '私人中医食疗方',
  306. ],
  307. note: '用户评价:温和但太麻烦,坚持难',
  308. },
  309. q4: {
  310. title: '象限 D · 养护 × 低门槛 · <strong>无人地带</strong>',
  311. color: BRAND.JIANG_GREEN,
  312. items: [
  313. '猴菇米稀(食品 · 只早餐)',
  314. '同名猴菇饮(食品 · 同质化)',
  315. '★ <strong>猴菇饮 OTC</strong>:养护强度 + OTC 低门槛',
  316. ],
  317. note: '★ 这是猴菇饮的战略坐标 · 没有竞品直接对位',
  318. },
  319. },
  320. })}
  321. </div>
  322. ${renderInsightHero({
  323. eyebrow: 'STRATEGIC COORDINATE · 战略坐标',
  324. color: BRAND.JIANG_GREEN,
  325. title: `猴菇饮 OTC 的战略坐标 = <strong style="color:${BRAND.JIANG_GREEN};">"养护强度 × OTC 低门槛"</strong>这个第四象限。`,
  326. subtitle: `这个坐标上<strong style="color:${BRAND.JIANG_GREEN};">目前没有直接竞品</strong>——米稀是食品(缺 OTC 身份),中医食疗是高门槛(缺便捷),PPI 治疗是治疗属性(不是养护)。猴菇饮如果能同时拿到「OTC 身份 × 养护定位 × 便捷剂型」,就站在了一个<strong style="color:${BRAND.HOUGU_TAN};">独占赛道</strong>的起点。`,
  327. })}
  328. <div class="grid" style="grid-template-columns:repeat(3, 1fr); gap:16px; margin-top:24px;">
  329. ${[
  330. { key: 'M1', title: '养护人群', color: BRAND.HOUGU_TAN, num: '8000万', detail: '胃功能差但未达治疗门槛 · 长期养护需求' },
  331. { key: 'M2', title: 'PPI 减量人群', color: BRAND.TECH_BLUE, num: '500-1000万', detail: 'PPI 焦虑 · 寻找非药过渡方案' },
  332. { key: 'M3', title: '送礼用户', color: BRAND.ROSE, num: '2亿+节日潮', detail: '春节中秋 · "送胃"品类空白,对标阿胶' },
  333. ].map((m) => `
  334. <div style="padding:22px 26px; background:var(--bg-1); border:1px solid var(--border); border-left:4px solid ${m.color}; border-radius:var(--radius-md);">
  335. <div class="text-mono text-xs" style="color:${m.color}; letter-spacing:0.2em; margin-bottom:8px; font-weight:700;">${m.key} · 人群</div>
  336. <h3 style="color:var(--text-1); font-size:1.14rem; font-weight:700; margin:0 0 4px;">${esc(m.title)}</h3>
  337. <div style="color:${m.color}; font-family:var(--font-head); font-size:1.66rem; font-weight:800; letter-spacing:-0.02em; margin-bottom:8px;">${esc(m.num)}</div>
  338. <div style="color:var(--text-2); font-size:0.82rem; line-height:1.6;">${esc(m.detail)}</div>
  339. </div>`).join('')}
  340. </div>
  341. ${renderDecisionList([
  342. `<strong>战略选择</strong>:专注象限 D(养护 × OTC 低门槛),不与象限 A/B 争治疗`,
  343. `<strong>目标人群组合</strong>:养护人群(M1)+ PPI 减量(M2)+ 送礼人群(M3)= 3 条赛道的 VOC 基础`,
  344. `<strong>第一年目标</strong>:先在象限 D 建立"唯一有 OTC 身份的猴菇饮"认知 · 确立位置`,
  345. `<strong>第二年动作</strong>:用 M2 + M3 两个赛道做细分 SKU · 每个赛道独立包装话术`,
  346. `<strong>第三年扩张</strong>:有了根据地再<em>向象限 A 侧翼渗透</em>(PPI 减量辅助饮)`,
  347. `<strong>失败条件</strong>:若 18 个月内还没拿下 OTC 批文 → 策略失败 → 回退功能食品路径`,
  348. ], { title: '路径规划 · 三年占据无人地带', accent: BRAND.JIANG_GREEN, columns: 2 })}
  349. </div>
  350. </section>`;
  351. }
  352. module.exports = {
  353. 'market-1': renderSub3_1,
  354. 'market-2': renderSub3_2,
  355. 'market-3': renderSub3_3,
  356. 'market-4': renderSub3_4,
  357. };