| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- // 江中猴菇饮 v2 · Ch4 产品适配(4 子章)
- // 4.1 产品力实事求是 · 猴头菇的真实效用边界
- // 4.2 米稀成功归因 × 可迁移因子 vs 饼干失败红线
- // 4.3 精准插入点 · 3大机会×无人地带坐标
- // 4.4 场景适配 · PPI伴侣/日常养护/药店推荐/礼品
- const HGY = require('./houguyin-analyze.js');
- const C = require('./houguyin-components.js');
- const { BRAND, esc, renderVocCard, renderSectionHead, renderMatrix2x2 } = C;
- // ================================================================
- // 4.1 · 产品力实事求是 · 猴头菇的真实效用边界
- // ================================================================
- function renderSub1(ctx) {
- const { chapter: c, subIdx, slideNum, slideTotal } = ctx;
- return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
- <div class="section-inner">
- ${renderSectionHead({
- eyebrow: `${c.num}.${subIdx} · 产品适配`,
- title: '产品力实事求是 · <span style="color:' + BRAND.HOUGU_TAN + ';">效用边界</span>在哪',
- subtitle: '不吹不黑——猴头菇(Hericium erinaceus)的真实功效研究和产品实际体验。',
- color: BRAND.HOUGU_TAN,
- })}
- <div style="margin-top:24px; display:grid; grid-template-columns:1fr 1fr; gap:20px;">
- <!-- 能做的 -->
- <div style="padding:20px; background:${BRAND.JIANG_GREEN}05; border:1px solid ${BRAND.JIANG_GREEN}30; border-radius:var(--radius-md);">
- <div class="text-mono text-xs" style="color:${BRAND.JIANG_GREEN}; letter-spacing:0.12em; margin-bottom:14px; font-weight:700;">✓ 产品能做到的</div>
- <div style="display:flex; flex-direction:column; gap:10px;">
- <div style="padding:10px 14px; background:white; border-radius:var(--radius-sm); border:1px solid ${BRAND.JIANG_GREEN}20;">
- <div style="font-weight:700; font-size:0.85rem; color:${BRAND.JIANG_GREEN};">温热液体的即时舒适感</div>
- <div style="font-size:0.78rem; color:var(--text-2); margin-top:4px;">喝完胃里暖暖的 → 这是用户可感知的"体感"</div>
- </div>
- <div style="padding:10px 14px; background:white; border-radius:var(--radius-sm); border:1px solid ${BRAND.JIANG_GREEN}20;">
- <div style="font-weight:700; font-size:0.85rem; color:${BRAND.JIANG_GREEN};">OTC 药品身份的信任背书</div>
- <div style="font-size:0.78rem; color:var(--text-2); margin-top:4px;">比食品可信、比处方温和 → 心理安慰有实际价值</div>
- </div>
- <div style="padding:10px 14px; background:white; border-radius:var(--radius-sm); border:1px solid ${BRAND.JIANG_GREEN}20;">
- <div style="font-weight:700; font-size:0.85rem; color:${BRAND.JIANG_GREEN};">猴头菇多糖的胃黏膜保护(文献支持)</div>
- <div style="font-size:0.78rem; color:var(--text-2); margin-top:4px;">动物实验和部分临床证据支持,但效力弱于药品</div>
- </div>
- <div style="padding:10px 14px; background:white; border-radius:var(--radius-sm); border:1px solid ${BRAND.JIANG_GREEN}20;">
- <div style="font-weight:700; font-size:0.85rem; color:${BRAND.JIANG_GREEN};">便携即饮的场景适应性</div>
- <div style="font-size:0.78rem; color:var(--text-2); margin-top:4px;">不需热水/碗/冲泡 → 办公室/差旅/应酬前后都能喝</div>
- </div>
- </div>
- </div>
- <!-- 不能做的 -->
- <div style="padding:20px; background:${BRAND.CORAL}05; border:1px solid ${BRAND.CORAL}30; border-radius:var(--radius-md);">
- <div class="text-mono text-xs" style="color:${BRAND.CORAL}; letter-spacing:0.12em; margin-bottom:14px; font-weight:700;">✗ 产品做不到的(红线)</div>
- <div style="display:flex; flex-direction:column; gap:10px;">
- <div style="padding:10px 14px; background:white; border-radius:var(--radius-sm); border:1px solid ${BRAND.CORAL}20;">
- <div style="font-weight:700; font-size:0.85rem; color:${BRAND.CORAL};">替代 PPI 的抑酸效果</div>
- <div style="font-size:0.78rem; color:var(--text-2); margin-top:4px;">绝不能宣称"可以停药" → 法规红线 + 医学风险</div>
- </div>
- <div style="padding:10px 14px; background:white; border-radius:var(--radius-sm); border:1px solid ${BRAND.CORAL}20;">
- <div style="font-weight:700; font-size:0.85rem; color:${BRAND.CORAL};">治愈胃溃疡/糜烂</div>
- <div style="font-size:0.78rem; color:var(--text-2); margin-top:4px;">这是药品领域 → 夸大宣称会毁品牌</div>
- </div>
- <div style="padding:10px 14px; background:white; border-radius:var(--radius-sm); border:1px solid ${BRAND.CORAL}20;">
- <div style="font-weight:700; font-size:0.85rem; color:${BRAND.CORAL};">快速止痛/立竿见影</div>
- <div style="font-size:0.78rem; color:var(--text-2); margin-top:4px;">不是止痛药 → 不能和达喜/铝碳酸镁比即时效果</div>
- </div>
- <div style="padding:10px 14px; background:white; border-radius:var(--radius-sm); border:1px solid ${BRAND.CORAL}20;">
- <div style="font-weight:700; font-size:0.85rem; color:${BRAND.CORAL};">显著可量化的疗效指标</div>
- <div style="font-size:0.78rem; color:var(--text-2); margin-top:4px;">"喝了一个月胃镜好转"——这个宣称做不到也不该做</div>
- </div>
- </div>
- </div>
- </div>
- <div style="margin-top:16px; padding:14px 20px; background:${BRAND.PURPLE}08; border-left:4px solid ${BRAND.PURPLE}; border-radius:0 var(--radius-sm) var(--radius-sm) 0;">
- <div style="font-size:0.85rem; color:var(--text-1); line-height:1.7;">
- <strong style="color:${BRAND.PURPLE};">核心策略判断</strong>:猴菇饮的产品力不在"疗效",在<strong>"体验+信任+便捷"</strong>的组合。定位方向不应该是"治胃病",而应该是"养胃日常"。这决定了 Ch5 定位推导的方向。
- </div>
- </div>
- </div>
- </section>`;
- }
- // ================================================================
- // 4.2 · 米稀成功归因 × 可迁移因子 vs 饼干失败红线
- // ================================================================
- function renderSub2(ctx) {
- const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx;
- const items = data.items || [];
- const h1Voc = HGY.getEvidence(items, { hypothesis: 'H1', top: 3, seed: 47, contentMatch: /米稀|猴姑|养胃|胃|早餐|暖胃/i });
- const h2Voc = HGY.getEvidence(items, { hypothesis: 'H2', top: 3, seed: 53, contentMatch: /饼干|胃胀|胃酸|硬|难吃/i });
- const vocCards = [...h1Voc, ...h2Voc].filter(Boolean).slice(0, 4);
- return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
- <div class="section-inner">
- ${renderSectionHead({
- eyebrow: `${c.num}.${subIdx} · 产品适配`,
- title: '米稀 <span style="color:' + BRAND.JIANG_GREEN + ';">7.5亿成功</span> vs 饼干<span style="color:' + BRAND.CORAL + ';">失败</span>的教训',
- subtitle: '同样是"江中+猴头菇",一个年销7.5亿一个无人买。什么因子可以迁移到猴菇饮?',
- color: BRAND.HOUGU_TAN,
- })}
- <div style="margin-top:24px; display:grid; grid-template-columns:1fr 1fr; gap:20px;">
- <!-- 米稀成功因子 -->
- <div style="padding:20px; background:var(--bg-1); border:1px solid var(--border); border-radius:var(--radius-md); border-top:4px solid ${BRAND.JIANG_GREEN};">
- <div class="text-mono text-xs" style="color:${BRAND.JIANG_GREEN}; letter-spacing:0.12em; margin-bottom:14px; font-weight:700;">🍚 米稀 7.5 亿成功因子</div>
- <div style="display:flex; flex-direction:column; gap:8px;">
- ${[
- { factor: '早餐场景固定', transferable: true, note: '饮的场景更广(全天)' },
- { factor: '口感好/好喝', transferable: true, note: '液态同样好喝' },
- { factor: '猴头菇心智占位', transferable: true, note: '同品牌同原料' },
- { factor: '超市渠道铺货', transferable: false, note: '猴菇饮走药店渠道' },
- { factor: '代餐属性(饱腹)', transferable: false, note: '饮品无饱腹感' },
- { factor: '价格亲民(~5元/餐)', transferable: '部分', note: 'OTC 定价更高' },
- ].map(f => `
- <div style="display:grid; grid-template-columns:24px 1fr 1fr; gap:8px; align-items:center; padding:6px 10px; background:var(--bg-2); border-radius:var(--radius-sm);">
- <span style="font-size:0.85rem;">${f.transferable === true ? '✅' : f.transferable === '部分' ? '⚠️' : '❌'}</span>
- <span style="font-size:0.82rem; font-weight:600; color:var(--text-1);">${esc(f.factor)}</span>
- <span style="font-size:0.72rem; color:var(--text-3);">${esc(f.note)}</span>
- </div>`).join('')}
- </div>
- </div>
- <!-- 饼干失败教训 -->
- <div style="padding:20px; background:var(--bg-1); border:1px solid var(--border); border-radius:var(--radius-md); border-top:4px solid ${BRAND.CORAL};">
- <div class="text-mono text-xs" style="color:${BRAND.CORAL}; letter-spacing:0.12em; margin-bottom:14px; font-weight:700;">🍪 饼干失败红线</div>
- <div style="display:flex; flex-direction:column; gap:8px;">
- ${[
- { lesson: '引发胃酸(产品反效果)', risk: '极高', avoid: '液态不会引发胃酸' },
- { lesson: '养胃宣称 vs 实际体验矛盾', risk: '高', avoid: '温热液体有即时舒适感' },
- { lesson: '饼干品类无"养护"联想', risk: '中', avoid: '饮品天然有养护联想' },
- { lesson: '价格太高(vs 普通饼干)', risk: '中', avoid: 'OTC 定位支撑溢价' },
- ].map(l => `
- <div style="padding:10px 14px; background:${BRAND.CORAL}05; border-left:3px solid ${BRAND.CORAL}; border-radius:0 var(--radius-sm) var(--radius-sm) 0;">
- <div style="font-weight:700; font-size:0.85rem; color:${BRAND.CORAL};">${esc(l.lesson)}</div>
- <div style="font-size:0.75rem; color:var(--text-2); margin-top:4px;">
- 风险: <span style="color:${BRAND.CORAL};">${l.risk}</span> · 猴菇饮规避: <span style="color:${BRAND.JIANG_GREEN};">${esc(l.avoid)}</span>
- </div>
- </div>`).join('')}
- </div>
- </div>
- </div>
- <div style="margin-top:16px; padding:14px 20px; background:${BRAND.HOUGU_TAN}08; border-left:4px solid ${BRAND.HOUGU_TAN}; border-radius:0 var(--radius-sm) var(--radius-sm) 0;">
- <div style="font-size:0.85rem; color:var(--text-1); line-height:1.7;">
- <strong style="color:${BRAND.HOUGU_TAN};">可迁移结论</strong>:米稀的 3 个核心成功因子(好喝+猴头菇心智+固定场景)中,前两个可直接迁移,第三个(场景)需要猴菇饮找到自己的"固定场景"——不是早餐,是什么?答案在 4.4。
- </div>
- </div>
- ${vocCards.length > 0 ? `
- <div style="margin-top:16px;">
- <div class="text-mono text-xs" style="color:var(--text-3); margin-bottom:8px;">VOC 原声 · 米稀/饼干用户</div>
- <div style="display:grid; grid-template-columns:1fr 1fr; gap:10px;">
- ${vocCards.map(v => renderVocCard(v, { compact: true })).join('')}
- </div>
- </div>` : ''}
- </div>
- </section>`;
- }
- // ================================================================
- // 4.3 · 精准插入点 · 3大机会×无人地带坐标
- // ================================================================
- function renderSub3(ctx) {
- const { chapter: c, subIdx, slideNum, slideTotal } = ctx;
- const quadrants = {
- q1: { title: '高需求 × 低竞争 → 无人地带', color: BRAND.JIANG_GREEN,
- items: ['PPI 减量过渡伴侣', '年轻人养胃日常饮', '办公室/差旅即饮养护'],
- note: '猴菇饮的精准插入点' },
- q2: { title: '高需求 × 高竞争 → 红海', color: BRAND.CORAL,
- items: ['急性胃痛缓解', '慢性胃炎治疗', '早餐养胃(米稀)'],
- note: '避开' },
- q3: { title: '低需求 × 高竞争 → 陷阱', color: '#9E9E9E',
- items: ['胃药品类正面对抗', '保健品价格战'],
- note: '绝不进入' },
- q4: { title: '低需求 × 低竞争 → 验证', color: BRAND.WARM_ORANGE,
- items: ['"送胃"礼品装', '糖友无糖版', '夜宵族专属'],
- note: '小规模验证后决定' },
- };
- return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
- <div class="section-inner">
- ${renderSectionHead({
- eyebrow: `${c.num}.${subIdx} · 产品适配`,
- title: '精准插入点 · <span style="color:' + BRAND.JIANG_GREEN + ';">3 大机会</span> × 无人地带坐标',
- subtitle: '结合 Ch3 的未满足需求 + Ch4.1 的产品力边界,在"需求强度×竞争烈度"四象限中找到猴菇饮的精准位置。',
- color: BRAND.JIANG_GREEN,
- })}
- <div style="margin-top:24px;">
- ${renderMatrix2x2({
- xLabel: '竞争烈度', yLabel: '需求强度',
- xLow: '低竞争', xHigh: '高竞争',
- yLow: '低需求', yHigh: '高需求',
- quadrants,
- accent: BRAND.JIANG_GREEN,
- })}
- </div>
- <!-- 3大机会详述 -->
- <div style="margin-top:20px; display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px;">
- ${[
- { num: '①', title: 'PPI 减量伴侣', target: '中度→轻度过渡人群', size: '~3000万潜在用户',
- value: '"安全减量的温和支撑"', color: BRAND.TECH_BLUE },
- { num: '②', title: '年轻代际养护', target: '25-40岁轻度胃不适', size: '~5000万潜在用户',
- value: '"比中成药好喝/比食品可信"', color: BRAND.JIANG_GREEN },
- { num: '③', title: '全天即饮场景', target: '办公室/差旅/应酬后', size: '~4000万潜在用户',
- value: '"米稀到不了的场景"', color: BRAND.WARM_ORANGE },
- ].map(o => `
- <div style="padding:16px; background:var(--bg-1); border:1px solid var(--border); border-radius:var(--radius-md); border-top:3px solid ${o.color};">
- <div style="font-family:var(--font-head); font-size:1.4rem; font-weight:900; color:${o.color};">${o.num}</div>
- <div style="font-weight:800; font-size:0.92rem; color:var(--text-1); margin-top:6px;">${esc(o.title)}</div>
- <div style="font-size:0.78rem; color:var(--text-2); margin-top:6px;">目标:${esc(o.target)}</div>
- <div style="font-size:0.78rem; color:var(--text-2);">规模:${esc(o.size)}</div>
- <div style="font-size:0.78rem; color:${o.color}; font-weight:700; margin-top:8px; font-style:italic;">"${esc(o.value)}"</div>
- </div>`).join('')}
- </div>
- </div>
- </section>`;
- }
- // ================================================================
- // 4.4 · 场景适配 · PPI伴侣/日常养护/药店推荐/礼品
- // ================================================================
- function renderSub4(ctx) {
- const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx;
- const items = data.items || [];
- const sceneVoc = HGY.getEvidence(items, { hypothesis: 'H5', top: 4, seed: 59, contentMatch: /养胃|胃|猴菇|饮|应酬|夜班|办公/i });
- const giftVoc = HGY.getEvidence(items, { hypothesis: 'H8', top: 2, seed: 61 });
- const vocCards = [...sceneVoc, ...giftVoc].filter(Boolean).slice(0, 4);
- const scenes = [
- { name: 'PPI 减量伴侣', when: '医生建议减量时', where: '家里/随身', trigger: '复诊后/自发想减药',
- script: '"在减药期间喝,温和养护胃黏膜"', score: 92, color: BRAND.TECH_BLUE },
- { name: '办公室日常养护', when: '工作日下午/加班', where: '办公桌', trigger: '胃不舒服/吃完外卖后',
- script: '"每天下午一瓶,养胃像喝水一样自然"', score: 88, color: BRAND.WARM_ORANGE },
- { name: '药店店员推荐', when: '顾客咨询胃药时', where: '药店', trigger: '买完胃药顺带推荐',
- script: '"吃药的同时搭配这个养护,减少对药的依赖"', score: 85, color: BRAND.JIANG_GREEN },
- { name: '"送胃"礼品', when: '节假日/探病', where: '走亲访友', trigger: '送礼需求+健康概念',
- script: '"送胃比送烟酒更有心意"', score: 75, color: BRAND.DEEP_AMBER },
- ];
- return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
- <div class="section-inner">
- ${renderSectionHead({
- eyebrow: `${c.num}.${subIdx} · 产品适配`,
- title: '场景适配 · <span style="color:' + BRAND.WARM_ORANGE + ';">4 大切入场景</span>',
- subtitle: '猴菇饮在什么时候、什么地方、被什么触发、用什么话术推荐给用户?',
- color: BRAND.WARM_ORANGE,
- })}
- <div style="margin-top:24px; display:flex; flex-direction:column; gap:12px;">
- ${scenes.map(s => `
- <div style="display:grid; grid-template-columns:160px 1fr 1fr 1fr 60px; gap:12px; align-items:center; padding:14px 16px; background:var(--bg-1); border:1px solid var(--border); border-radius:var(--radius-sm); border-left:4px solid ${s.color};">
- <div>
- <div style="font-weight:800; font-size:0.9rem; color:${s.color};">${esc(s.name)}</div>
- </div>
- <div>
- <div style="font-size:0.68rem; color:var(--text-3);">时间 × 空间</div>
- <div style="font-size:0.78rem; color:var(--text-1);">${esc(s.when)} · ${esc(s.where)}</div>
- </div>
- <div>
- <div style="font-size:0.68rem; color:var(--text-3);">触发事件</div>
- <div style="font-size:0.78rem; color:var(--text-1);">${esc(s.trigger)}</div>
- </div>
- <div>
- <div style="font-size:0.68rem; color:var(--text-3);">话术</div>
- <div style="font-size:0.75rem; color:${s.color}; font-style:italic;">${esc(s.script)}</div>
- </div>
- <div style="text-align:center;">
- <div style="font-family:var(--font-head); font-size:1.2rem; font-weight:900; color:${s.color};">${s.score}</div>
- <div style="font-size:0.6rem; color:var(--text-3);">适配分</div>
- </div>
- </div>`).join('')}
- </div>
- <div style="margin-top:16px; padding:14px 20px; background:${BRAND.HOUGU_TAN}08; border-left:4px solid ${BRAND.HOUGU_TAN}; border-radius:0 var(--radius-sm) var(--radius-sm) 0;">
- <div style="font-size:0.85rem; color:var(--text-1); line-height:1.7;">
- <strong style="color:${BRAND.HOUGU_TAN};">场景优先级</strong>:Y1 聚焦"药店推荐"(已有渠道)+"PPI 伴侣"(高痛点),Y2 扩展"办公室日常"(高频次),Y3 开发"礼品装"(高客单价)。
- </div>
- </div>
- ${vocCards.length > 0 ? `
- <div style="margin-top:16px;">
- <div class="text-mono text-xs" style="color:var(--text-3); margin-bottom:8px;">VOC 原声 · 场景需求</div>
- <div style="display:grid; grid-template-columns:1fr 1fr; gap:10px;">
- ${vocCards.map(v => renderVocCard(v, { compact: true })).join('')}
- </div>
- </div>` : ''}
- </div>
- </section>`;
- }
- module.exports = { renderSub1, renderSub2, renderSub3, renderSub4 };
|