| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428 |
- // 江中猴菇饮 · Ch2 米稀归因学(4 子章)
- // 2.1 7.5 亿成功归因 · 6 大要素解构
- // 2.2 米稀差评挖机会 · 局限性即空白
- // 2.3 猴菇饼干失败复盘 · 辅料+场景错配
- // 2.4 可迁移 vs 不可迁移 · 饮的心智锚点
- const HGY = require('./houguyin-analyze.js');
- const C = require('./houguyin-components.js');
- const { BRAND, esc, renderVocCard, renderVocGrid, renderInsightHero, renderDecisionList, renderTheoryBox, renderTagCloud, renderStatStrip, renderBarChart, renderSectionHead } = C;
- // ================================================================
- // 2.1 · 7.5 亿成功归因 · 6 大要素解构
- // ================================================================
- function renderSub2_1(ctx) {
- const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx;
- const items = data.items || [];
- // 6 大成功要素
- const factors = [
- {
- key: 'F1', title: '养胃认知', color: BRAND.HOUGU_TAN,
- desc: '猴头菇养胃 ≈ 20 年医学/民间共识,免教育成本',
- evidence: HGY.getEvidence(items, { hypothesis: 'H1', tag: '猴头菇信任', top: 1, seed: 2 }),
- portable: true,
- },
- {
- key: 'F2', title: '暖胃体感', color: BRAND.WARM_ORANGE,
- desc: '糊状 + 热饮 = 直接可感知的温度体感',
- evidence: HGY.getEvidence(items, { hypothesis: 'H1', tag: '温度依赖', top: 1, seed: 3 }),
- portable: false,
- },
- {
- key: 'F3', title: '早餐场景', color: BRAND.TECH_BLUE,
- desc: '替代白粥/外卖早餐 · 打工人 + 老人刚需',
- evidence: HGY.getEvidence(items, { hypothesis: 'H1', tag: '早餐场景', top: 1, seed: 5 }),
- portable: false,
- },
- {
- key: 'F4', title: '江中品牌', color: BRAND.JIANG_GREEN,
- desc: '老字号 · 专业度 · 父辈级信任资产',
- evidence: HGY.getEvidence(items, { hypothesis: 'H1', tag: '品牌背书', top: 1, seed: 7 }),
- portable: true,
- },
- {
- key: 'F5', title: '糊状温和', color: BRAND.SAGE,
- desc: '糊状剂型 = 温和无刺激 = 对胃友好的直觉',
- evidence: HGY.getEvidence(items, { hypothesis: 'H1', tag: '糊状温和', top: 1, seed: 11 }),
- portable: false,
- },
- {
- key: 'F6', title: '日服成本', color: BRAND.PURPLE,
- desc: '30-50 元/盒 · 日均 ~1-2 元 · 比外卖早餐便宜',
- evidence: HGY.getEvidence(items, { hypothesis: 'H1', tag: '性价比', top: 1, seed: 13 }),
- portable: true,
- },
- ];
- const growth = [
- { label: '2013 上市', value: 10, valueLabel: '0.1亿', color: BRAND.HOUGU_TAN },
- { label: '2015 爆发', value: 120, valueLabel: '1.2亿', color: BRAND.HOUGU_TAN },
- { label: '2018 稳态', value: 400, valueLabel: '4.0亿', color: BRAND.DEEP_AMBER },
- { label: '2022 峰值', value: 750, valueLabel: '7.5亿', color: BRAND.DEEP_AMBER },
- { label: '2024 维持', value: 720, valueLabel: '7.2亿', 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.HOUGU_TAN + ';">7.5 亿</span>不是偶然:拆解米稀成功的 <span style="color:' + BRAND.DEEP_AMBER + ';">6 大要素</span>',
- subtitle: '从 VOC 里反推因果链:用户为什么买、为什么复购、为什么认江中——这些要素里,哪些可以借给"饮"?',
- color: BRAND.HOUGU_TAN,
- })}
- ${renderStatStrip([
- { num: '7.5亿', label: '米稀峰值年销', color: BRAND.HOUGU_TAN },
- { num: '10年', label: '持续正增长', color: BRAND.JIANG_GREEN },
- { num: '40%+', label: '40+ 女性主购', color: BRAND.WARM_ORANGE },
- { num: '65%', label: '年复购率', color: BRAND.TECH_BLUE },
- { num: '38', label: '米稀 positive VOC', color: BRAND.HOUGU_TAN },
- ], { accent: BRAND.HOUGU_TAN })}
- <div style="margin-top:24px;">
- ${renderBarChart(growth, { accent: BRAND.DEEP_AMBER, title: '米稀 10 年增长轨迹 · 从 0.1 亿到 7.5 亿', height: 200 })}
- </div>
- <div class="section-head rise-in" style="margin-top:32px; margin-bottom:20px;">
- <div class="text-mono text-xs" style="color:${BRAND.HOUGU_TAN}; letter-spacing:0.18em; font-weight:700;">6 大成功要素 · 每个要素都附 VOC 证据 + 可迁移性评估</div>
- </div>
- <div class="grid" style="grid-template-columns:repeat(3, 1fr); gap:16px;">
- ${factors.map((f) => `
- <div style="padding:20px 22px; background:var(--bg-1); border:1px solid var(--border); border-top:4px solid ${f.color}; border-radius:var(--radius-md);">
- <div style="display:flex; justify-content:space-between; align-items:center; margin-bottom:12px;">
- <div class="text-mono text-xs" style="color:${f.color}; letter-spacing:0.18em; font-weight:700;">${f.key} · FACTOR</div>
- <span style="padding:2px 8px; background:${f.portable ? BRAND.JIANG_GREEN : BRAND.CORAL}18; color:${f.portable ? BRAND.JIANG_GREEN : BRAND.CORAL}; border-radius:10px; font-size:0.64rem; font-weight:700; font-family:var(--font-mono);">
- ${f.portable ? '✓ 可迁移' : '× 米稀独有'}
- </span>
- </div>
- <div style="color:var(--text-1); font-size:1.04rem; font-weight:700; margin-bottom:6px;">${esc(f.title)}</div>
- <div style="color:var(--text-2); font-size:0.82rem; line-height:1.6; margin-bottom:14px;">${esc(f.desc)}</div>
- ${f.evidence.length ? renderVocCard(f.evidence[0], { accent: f.color, compact: true }) : `<div style="color:var(--text-3); font-size:0.8rem; font-style:italic;">(暂无单条高赞证据,见该假设其他 VOC)</div>`}
- </div>`).join('')}
- </div>
- ${renderInsightHero({
- eyebrow: 'KEY INSIGHT · 关键识别',
- color: BRAND.DEEP_AMBER,
- title: `6 要素中 <strong style="color:${BRAND.JIANG_GREEN};">3 个"可迁移"</strong>(养胃认知 / 江中品牌 / 日服成本)是猴菇饮的天然资产;<strong style="color:${BRAND.CORAL};">3 个"米稀独有"</strong>(暖胃体感 / 早餐场景 / 糊状温和)必须另起炉灶。`,
- subtitle: `如果饮试图复刻"暖胃 + 早餐 + 糊状"这三条,就会变成米稀 2.0 互相蚕食;反之,只继承<strong style="color:${BRAND.HOUGU_TAN};">"养胃认知 × 江中背书 × 亲民成本"</strong>三大资产,就能把米稀没覆盖的场景完整接走。`,
- })}
- ${renderDecisionList([
- `<strong>继承 F1/F4/F6</strong>:养胃认知 / 江中品牌 / 亲民日服成本 → 必须写进猴菇饮定位`,
- `<strong>放弃 F2/F3/F5</strong>:暖胃体感 / 早餐场景 / 糊状剂型 → 饮不要强求,找新场景`,
- `<strong>不做米稀 2.0</strong>:避免两个 SKU 互相蚕食,饮 = 米稀覆盖之外的补充`,
- `<strong>饮的定位公式</strong>:养胃认知(F1)× 江中背书(F4)× 日服亲民(F6)× <em>新场景</em> × <em>新剂型</em>`,
- ], { title: '决策 · 借力米稀 3 要素 + 新开 2 要素', accent: BRAND.DEEP_AMBER, columns: 2 })}
- </div>
- </section>`;
- }
- // ================================================================
- // 2.2 · 米稀差评挖机会 · 局限性即空白
- // ================================================================
- function renderSub2_2(ctx) {
- const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx;
- const items = data.items || [];
- // 米稀差评:匹配多类"局限性"标签 + negative/conflicted 真实 VOC
- // 明确的局限性词(避免"场景"这种宽泛词误匹配正面内容)
- const LIMITATION_TAG_RE = /局限|限制|不便|不匹配|不适合|场景限|冲泡|甜度问题|糖尿|差旅不便|代替不了|不在身边|结块|吃腻|味觉疲劳|嚼不动|糊状质地抗性|剂型升级|替代品缺失|甜腻|油腻|早餐限制|夏季不适|应急不及时|多工具依赖|非冲泡|水不便|米稀代替不了|米稀不匹配|米稀不在身边|通勤场景不匹配|应酬场景不匹配|产品缺位|缺参照/;
- const mixiAll = HGY.filterByProduct(items, '猴姑米稀');
- // 1. 标签匹配局限性 && 排除 positive(positive 的"早餐场景"等不是差评)
- const limitByTag = mixiAll.filter((it) => {
- if (it.sentiment === 'positive') return false;
- return Array.isArray(it.tags) && it.tags.some((t) => LIMITATION_TAG_RE.test(t));
- });
- // 2. 明确 negative/conflicted
- const limitBySentiment = mixiAll.filter((it) => it.sentiment === 'negative' || it.sentiment === 'conflicted');
- const mergedLimit = [...limitByTag, ...limitBySentiment]
- .filter((it, i, arr) => arr.findIndex((x) => x.id === it.id) === i);
- const topLimit = HGY.topByLikes(mergedLimit, 8);
- const limitItems = mergedLimit;
- const tagClusters = HGY.groupByTag(limitItems.length ? limitItems : mixiAll);
- // 机会分类
- const opportunities = [
- { key: 'O1', title: '非早餐场景', color: BRAND.WARM_ORANGE,
- pains: ['冲泡要求热水', '早晨时间竞争', '早餐以外', '办公室无微波炉'],
- solution: '液体饮 · 开盖即饮 · 覆盖中午/半夜/应酬/差旅 4 大非早餐时段' },
- { key: 'O2', title: '便携化', color: BRAND.TECH_BLUE,
- pains: ['差旅不便', '包装笨重', '旅行装不了箱', '希望铝箔装'],
- solution: '单支 50-100ml 铝膜包装 · 包里常备 · 解决"米稀带不出门"问题' },
- { key: 'O3', title: '糖尿病友版', color: BRAND.PURPLE,
- pains: ['甜度问题', '糖尿病禁忌', '血糖高不敢喝'],
- solution: '无糖/木糖醇版 SKU · 切走糖尿病+胃病重合人群(H7)' },
- { key: 'O4', title: '即时饮用', color: BRAND.ROSE,
- pains: ['冲泡成本高', '要找热水+杯子', '结块问题', '应急不及时'],
- solution: '液体饮 · 常温/冰镇/加热三态皆宜 · 场景无限制' },
- ];
- 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.CORAL + ';">局限性</span> = 猴菇饮的 <span style="color:' + BRAND.JIANG_GREEN + ';">空白机会</span>',
- subtitle: '不看米稀的好评,专看中性/负面 VOC——每一个差评都是猴菇饮的产品设计输入。',
- color: BRAND.CORAL,
- })}
- <div class="grid" style="grid-template-columns:1.4fr 1fr; gap:24px; margin-top:24px;">
- <div>
- <div class="text-mono text-xs" style="color:${BRAND.CORAL}; letter-spacing:0.18em; margin-bottom:14px; font-weight:700;">米稀中性/负面 VOC · Top 4 最集中的痛点</div>
- <div style="display:flex; flex-direction:column; gap:12px;">
- ${topLimit.slice(0, 4).map((it) => renderVocCard(it, { accent: BRAND.CORAL, compact: true })).join('')}
- </div>
- </div>
- <div>
- ${renderTagCloud(tagClusters, { accent: BRAND.CORAL, title: '米稀差评主题词频 · VOC Tag 分布', top: 14 })}
- <div style="margin-top:14px; padding:14px 16px; background:${BRAND.CORAL}0A; border-left:3px solid ${BRAND.CORAL}; border-radius:4px;">
- <div class="text-mono text-xs" style="color:${BRAND.CORAL}; letter-spacing:0.15em; margin-bottom:6px; font-weight:700;">PATTERN · 痛点规律</div>
- <div style="color:var(--text-1); font-size:0.86rem; line-height:1.7;">
- ${limitItems.length} 条米稀局限性 VOC 里,<strong style="color:${BRAND.CORAL};">"冲泡不便"</strong>、<strong style="color:${BRAND.CORAL};">"场景限制"</strong>、<strong style="color:${BRAND.CORAL};">"糖友排斥"</strong>、<strong style="color:${BRAND.CORAL};">"携带难"</strong> 构成四大高频 cluster——这四个词几乎就是猴菇饮的产品说明书。
- </div>
- </div>
- </div>
- </div>
- <div class="section-head rise-in" style="margin-top:32px; margin-bottom:18px;">
- <div class="text-mono text-xs" style="color:${BRAND.JIANG_GREEN}; letter-spacing:0.18em; font-weight:700;">从痛点 → 机会 · 4 条直接翻转的设计输入</div>
- </div>
- <div class="grid" style="grid-template-columns:repeat(2, 1fr); gap:16px;">
- ${opportunities.map((o) => `
- <div style="padding:22px 24px; background:var(--bg-1); border:1px solid var(--border); border-left:4px solid ${o.color}; border-radius:var(--radius-md);">
- <div style="display:flex; align-items:center; gap:10px; margin-bottom:12px;">
- <div class="text-mono text-xs" style="color:${o.color}; letter-spacing:0.18em; font-weight:700;">${o.key} · OPPORTUNITY</div>
- <h3 style="color:var(--text-1); font-size:1.12rem; font-weight:700; margin:0;">${esc(o.title)}</h3>
- </div>
- <div style="display:flex; flex-wrap:wrap; gap:6px; margin-bottom:12px;">
- ${o.pains.map((p) => `<span style="padding:3px 10px; background:${BRAND.CORAL}12; color:${BRAND.CORAL}; border-radius:12px; font-size:0.72rem; font-weight:600;">痛点 · ${esc(p)}</span>`).join('')}
- </div>
- <div style="padding:10px 14px; background:${o.color}10; border-left:3px solid ${o.color}; border-radius:4px; color:var(--text-1); font-size:0.88rem; line-height:1.64;">
- <strong style="color:${o.color};">→ 机会:</strong>${esc(o.solution)}
- </div>
- </div>`).join('')}
- </div>
- ${renderInsightHero({
- eyebrow: 'STRATEGY · 战略识别',
- color: BRAND.JIANG_GREEN,
- title: `米稀差评不是缺点,是<strong style="color:${BRAND.JIANG_GREEN};">产品路标</strong>——它告诉我们:<strong>液体化 × 便携化 × 糖友版 × 即饮化</strong> 是猴菇饮必须同时回答的 4 个问题。`,
- subtitle: `这 4 条翻转机会<strong style="color:${BRAND.HOUGU_TAN};">直接决定 SKU 矩阵</strong>:主力饮(液体+便携+即饮)+ 糖友特供版(无糖)+ 应酬装(小支铝膜)——这是从 VOC 倒推出来的产品路线图。`,
- })}
- ${renderDecisionList([
- `<strong>SKU 1 · 主力饮</strong>:100ml 单支 · 常温即饮 · 日常养护场景`,
- `<strong>SKU 2 · 应酬装</strong>:50ml 小支铝膜 · 包里/口袋可携 · 饭局前后场景`,
- `<strong>SKU 3 · 糖友无糖版</strong>:木糖醇 · 面向糖尿病+胃病重合人群`,
- `<strong>SKU 4 · 礼盒装</strong>:12-24 支 · 送父母/送老板 · 类比阿胶`,
- ], { title: '决策 · 从米稀差评反推的 4 款 SKU', accent: BRAND.HOUGU_TAN, columns: 2 })}
- </div>
- </section>`;
- }
- // ================================================================
- // 2.3 · 猴菇饼干失败复盘 · 辅料+场景错配
- // ================================================================
- function renderSub2_3(ctx) {
- const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx;
- const items = data.items || [];
- const failureVoc = HGY.getEvidence(items, { hypothesis: 'H2', top: 6, seed: 17 });
- const bgTags = HGY.groupByTag(HGY.filterByHypothesis(items, 'H2'));
- // 失败归因 3 大维度
- const failures = [
- { key: 'E1', title: '剂型错配', color: BRAND.CORAL,
- detail: '饼干 = 硬 + 油 + 糖 → 胃不好的人吃完更胃酸/胃胀。<strong>饼干本身在消化科共识里就不养胃</strong>。',
- voc: '"饼干个头大 咀嚼多次才能咽下 胃空的时候特别难受"',
- lesson: '养胃产品必须剂型本身就"对胃友好",不是加了猴头菇就能洗白' },
- { key: 'E2', title: '场景错配', color: BRAND.WARM_ORANGE,
- detail: '饼干定位零食/加餐,使用场景重合米稀(早餐)但剂型不占优。<strong>既没独立场景、又没温和体感</strong>。',
- voc: '"早餐米稀下午饼干晚上药 组合太复杂 最后饼干被放弃"',
- lesson: '产品必须有独占场景;否则会被更温和的替代品淘汰' },
- { key: 'E3', title: '宣传错配', color: BRAND.ROSE,
- detail: '猴姑饼干广告打"养胃"概念,但<strong>饼干品类按卫健委规定不能宣传功效</strong>——宣传与产品不一致,陷入"暧昧"。',
- voc: '"猴姑饼干广告说养胃 但卫健委明确饼干不能宣传功效 这个就很暧昧"',
- lesson: '健康宣称必须与剂型+监管身份一致;OTC 属性比食品更有说服力' },
- ];
- 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.CORAL + ';">同为江中 + 猴头菇</span>,饼干为什么失败?',
- subtitle: '饼干是最直接的反面教材:同样的品牌、同样的原料、同样的"养胃"叙事,为何不仅没火还被用户吐槽<strong>反胃酸</strong>?',
- color: BRAND.CORAL,
- })}
- ${renderInsightHero({
- eyebrow: '反面教材 · 防止重蹈覆辙',
- color: BRAND.CORAL,
- title: `猴姑饼干失败的核心<strong style="color:${BRAND.CORAL};">不是品牌力不足</strong>,是<strong>"剂型 × 场景 × 宣传"三层错配</strong>——把养胃概念套在一个天生不养胃的品类上,消费者立刻识破。`,
- subtitle: `这个教训对猴菇饮至关重要:<strong style="color:${BRAND.HOUGU_TAN};">饮要成立,剂型、场景、宣传三个维度必须同时对齐</strong>,缺一个都会重复饼干的失败路径。`,
- })}
- <div class="grid" style="grid-template-columns:1.1fr 1fr; gap:24px; margin-top:24px;">
- <div>
- <div class="text-mono text-xs" style="color:${BRAND.CORAL}; letter-spacing:0.18em; margin-bottom:14px; font-weight:700;">VOC · 饼干失败的真实归因(6 条高赞)</div>
- <div style="display:flex; flex-direction:column; gap:12px;">
- ${failureVoc.slice(0, 4).map((it) => renderVocCard(it, { accent: BRAND.CORAL, compact: true })).join('')}
- </div>
- </div>
- <div>
- ${renderTagCloud(bgTags, { accent: BRAND.CORAL, title: '饼干差评词频 · Top 14', top: 14 })}
- </div>
- </div>
- <div class="section-head rise-in" style="margin-top:32px; margin-bottom:18px;">
- <div class="text-mono text-xs" style="color:${BRAND.ROSE}; letter-spacing:0.18em; font-weight:700;">三层错配 · 每层都是猴菇饮的"不可重犯"</div>
- </div>
- <div class="grid" style="grid-template-columns:repeat(3, 1fr); gap:16px;">
- ${failures.map((f) => `
- <div style="padding:22px 24px; background:${f.color}06; border:1px solid ${f.color}30; border-left:4px solid ${f.color}; border-radius:var(--radius-md);">
- <div class="text-mono text-xs" style="color:${f.color}; letter-spacing:0.2em; margin-bottom:10px; font-weight:700;">${f.key} · 错配维度</div>
- <h3 style="color:var(--text-1); font-size:1.12rem; font-weight:700; margin:0 0 10px;">${esc(f.title)}</h3>
- <div style="color:var(--text-2); font-size:0.86rem; line-height:1.66; margin-bottom:12px;">${f.detail}</div>
- <div style="padding:8px 12px; background:var(--bg-1); border-radius:4px; margin-bottom:10px; color:var(--text-1); font-size:0.78rem; line-height:1.55; font-style:italic;">${esc(f.voc)}</div>
- <div style="padding-top:10px; border-top:1px dashed ${f.color}40; color:${f.color}; font-size:0.82rem; line-height:1.64; font-weight:600;">
- <span style="font-size:0.72rem; opacity:0.7;">LESSON</span><br/>${esc(f.lesson)}
- </div>
- </div>`).join('')}
- </div>
- ${renderTheoryBox({
- theory: '失败学公式 · 三对齐 = 产品成立的最低门槛',
- accent: BRAND.CORAL,
- mapping: `<strong style="color:${BRAND.CORAL};">产品成立公式</strong> =
- <em style="color:${BRAND.HOUGU_TAN};">剂型对齐需求</em>(饮 → 温和液体 ✓)×
- <em style="color:${BRAND.WARM_ORANGE};">场景对齐用户</em>(米稀以外场景 ✓)×
- <em style="color:${BRAND.ROSE};">宣传对齐监管</em>(OTC身份 > 食品身份 ✓)。
- 猴菇饼干因三层全错被淘汰;猴菇饮在 Batch 2 已验证<strong>3 条都有可对齐方案</strong>,具备成立条件。`,
- })}
- ${renderDecisionList([
- `<strong>反面检查 1</strong>:饮的剂型(液体/糊状)是否本身"对胃友好"?→ ✓ 液体温和是常识`,
- `<strong>反面检查 2</strong>:饮是否有独立于米稀的场景?→ ✓ 应酬/熬夜/差旅是米稀触不到的`,
- `<strong>反面检查 3</strong>:饮的宣传是否匹配监管身份?→ 必须拿 OTC 批文,不走食品路径`,
- `<strong>反面检查 4</strong>:饮是否同时拿下米稀 3 要素?→ 养胃认知+江中品牌+日服成本都要继承`,
- `<strong>饼干 vs 饮 · 最关键差别</strong>:饼干重(硬+油+甜),饮轻(液+温+清)——本质是给胃的负担对冲`,
- `<strong>饼干真正的价值</strong>:作为反面案例写进立项书,让管理层看到"同为江中猴头菇"的边界`,
- ], { title: '反面教材 · 饼干失败转化为饮的 6 条自律', accent: BRAND.CORAL, columns: 2 })}
- </div>
- </section>`;
- }
- // ================================================================
- // 2.4 · 可迁移 vs 不可迁移 · 饮的心智锚点
- // ================================================================
- function renderSub2_4(ctx) {
- const { chapter: c, subIdx, slideNum, slideTotal, data } = ctx;
- const portabilityMatrix = [
- { factor: '养胃认知(猴头菇)', mixi: '✓ 强', portable: 'full', drink: '✓ 直接继承', reason: '20 年公共认知,饮天然受益' },
- { factor: '江中品牌资产', mixi: '✓ 强', portable: 'full', drink: '✓ 直接继承', reason: '品牌背书对饮同等有效,甚至更强(OTC 比食品更需要信任)' },
- { factor: '亲民日服成本', mixi: '✓ 强', portable: 'full', drink: '✓ 直接继承', reason: '日均 1-2 元是用户心理锚点,饮定价 10-15 元/日符合' },
- { factor: '暖胃体感', mixi: '✓ 强', portable: 'partial', drink: '△ 部分继承', reason: '冷饮无暖感,但加热/冬季仍可打暖胃' },
- { factor: '早餐场景', mixi: '✓ 强', portable: 'none', drink: '✗ 另立场景', reason: '早餐已被米稀占满,强行介入会自我蚕食' },
- { factor: '糊状剂型', mixi: '✓ 强', portable: 'none', drink: '✗ 放弃', reason: '饮的核心优势正是<strong>液体化</strong>,若糊化就退回米稀' },
- { factor: '40+ 女性主购', mixi: '✓ 强', portable: 'partial', drink: '△ 扩展', reason: '40+ 女性可继续主购,但饮要延展到年轻人和男性应酬' },
- { factor: '老人友好度', mixi: '✓ 强', portable: 'partial', drink: '△ 延续', reason: '饮对老人也友好,但不再是老人专属,需覆盖全年龄' },
- ];
- const portabilityColors = { full: BRAND.JIANG_GREEN, partial: BRAND.WARM_ORANGE, none: BRAND.CORAL };
- const portabilityLabels = { full: '完全可迁移', partial: '部分可迁移', none: '不可迁移' };
- 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 + ';">哪些可借</span>,<span style="color:' + BRAND.CORAL + ';">哪些要自立</span>',
- subtitle: '把前三节的分析收束成一张迁移矩阵:饮的"心智锚点"= 可迁移要素 + 新增要素的组合公式。',
- color: BRAND.DEEP_AMBER,
- })}
- <div style="margin-top:24px; padding:24px; background:var(--bg-1); border:1px solid var(--border); border-radius:var(--radius-md);">
- <div class="text-mono text-xs" style="color:${BRAND.DEEP_AMBER}; letter-spacing:0.18em; margin-bottom:16px; font-weight:700;">迁移矩阵 · 8 个米稀成功要素 × 可迁移性评估</div>
- <table style="width:100%; border-collapse:collapse; font-size:0.88rem;">
- <thead>
- <tr style="border-bottom:2px solid var(--border);">
- <th style="text-align:left; padding:10px 12px; color:var(--text-3); font-weight:600; font-size:0.76rem; width:24%;">米稀要素</th>
- <th style="text-align:center; padding:10px 12px; color:var(--text-3); font-weight:600; font-size:0.76rem; width:10%;">米稀强度</th>
- <th style="text-align:center; padding:10px 12px; color:var(--text-3); font-weight:600; font-size:0.76rem; width:16%;">可迁移性</th>
- <th style="text-align:center; padding:10px 12px; color:var(--text-3); font-weight:600; font-size:0.76rem; width:16%;">饮的承接方式</th>
- <th style="text-align:left; padding:10px 12px; color:var(--text-3); font-weight:600; font-size:0.76rem;">理由 / VOC 证据</th>
- </tr>
- </thead>
- <tbody>
- ${portabilityMatrix.map((r, i) => `
- <tr style="border-bottom:1px solid var(--border); ${i % 2 === 0 ? '' : 'background:rgba(0,0,0,0.02);'}">
- <td style="padding:12px; color:var(--text-1); font-weight:600;">${esc(r.factor)}</td>
- <td style="text-align:center; padding:12px; color:${BRAND.HOUGU_TAN}; font-weight:700;">${r.mixi}</td>
- <td style="text-align:center; padding:12px;">
- <span style="padding:4px 10px; background:${portabilityColors[r.portable]}18; color:${portabilityColors[r.portable]}; border-radius:12px; font-size:0.74rem; font-weight:700; font-family:var(--font-mono);">${portabilityLabels[r.portable]}</span>
- </td>
- <td style="text-align:center; padding:12px; color:${portabilityColors[r.portable]}; font-weight:600;">${esc(r.drink)}</td>
- <td style="padding:12px; color:var(--text-2); font-size:0.82rem; line-height:1.6;">${r.reason}</td>
- </tr>`).join('')}
- </tbody>
- </table>
- </div>
- <div class="grid" style="grid-template-columns:1fr 1fr; gap:22px; margin-top:28px;">
- <div style="padding:26px 28px; background:${BRAND.JIANG_GREEN}0A; border:1px solid ${BRAND.JIANG_GREEN}33; border-radius:var(--radius-md);">
- <div class="text-mono text-xs" style="color:${BRAND.JIANG_GREEN}; letter-spacing:0.2em; margin-bottom:12px; font-weight:700;">✓ 继承 · 可迁移资产</div>
- <h3 style="color:var(--text-1); font-size:1.22rem; font-weight:800; margin:0 0 14px;">3 + 2 个米稀资产直接继承给饮</h3>
- <ul style="color:var(--text-1); font-size:0.92rem; line-height:1.8; padding-left:22px; margin:0;">
- <li><strong style="color:${BRAND.HOUGU_TAN};">养胃认知</strong>(猴头菇免教育)</li>
- <li><strong style="color:${BRAND.HOUGU_TAN};">江中品牌</strong>(老字号信任)</li>
- <li><strong style="color:${BRAND.HOUGU_TAN};">亲民日服</strong>(1-2 元/日)</li>
- <li><strong style="color:${BRAND.WARM_ORANGE};">暖胃体感</strong>(部分 · 加热版)</li>
- <li><strong style="color:${BRAND.WARM_ORANGE};">中老年友好</strong>(部分 · 扩展到全龄)</li>
- </ul>
- </div>
- <div style="padding:26px 28px; background:${BRAND.CORAL}0A; border:1px solid ${BRAND.CORAL}33; border-radius:var(--radius-md);">
- <div class="text-mono text-xs" style="color:${BRAND.CORAL}; letter-spacing:0.2em; margin-bottom:12px; font-weight:700;">✗ 自立 · 饮必须新开的</div>
- <h3 style="color:var(--text-1); font-size:1.22rem; font-weight:800; margin:0 0 14px;">2 + 2 个新锚点</h3>
- <ul style="color:var(--text-1); font-size:0.92rem; line-height:1.8; padding-left:22px; margin:0;">
- <li><strong style="color:${BRAND.TECH_BLUE};">新剂型</strong>:液体即饮 vs 糊状冲泡</li>
- <li><strong style="color:${BRAND.TECH_BLUE};">新场景</strong>:应酬/熬夜/差旅/办公室 vs 早餐</li>
- <li><strong style="color:${BRAND.PURPLE};">新人群</strong>:年轻打工人 + 应酬男 + 糖尿病 vs 40+ 女性</li>
- <li><strong style="color:${BRAND.ROSE};">新身份</strong>:OTC 正规背书 vs 食品身份</li>
- </ul>
- </div>
- </div>
- ${renderInsightHero({
- eyebrow: 'CORE FORMULA · 猴菇饮心智锚点',
- color: BRAND.DEEP_AMBER,
- title: `<strong style="color:${BRAND.DEEP_AMBER};">猴菇饮 = </strong>
- <strong style="color:${BRAND.HOUGU_TAN};">(养胃认知 + 江中品牌 + 日服亲民)</strong>
- <span style="color:${BRAND.DEEP_AMBER};">×</span>
- <strong style="color:${BRAND.TECH_BLUE};">(液体即饮 + 米稀外场景 + 新人群 + OTC 身份)</strong>`,
- subtitle: `前半截继承米稀已验证的 3 大资产,保证消费者"秒懂";<strong>后半截是反向定位挖出的 4 个新机会</strong>,保证 SKU 不与米稀互相蚕食、并独占一条赛道。这是<strong style="color:${BRAND.HOUGU_TAN};">"借力不复刻"</strong>的最优解。`,
- })}
- ${renderDecisionList([
- `<strong>立项书写法</strong>:把"继承米稀 3 资产 × 新开 4 机会"明确写进 Slogan 草案`,
- `<strong>包装设计</strong>:视觉与米稀有家族感(养胃+江中)但剂型形态差异化(液体瓶)`,
- `<strong>品类定位</strong>:不叫"米稀升级"、不叫"米稀 Lite"——要叫"猴菇饮 OTC"(新品类)`,
- `<strong>渠道陈列</strong>:药店陈列在"养胃"区域(借米稀同货架),但独立 SKU 码位`,
- `<strong>推广话术</strong>:米稀解决早餐/在家,猴菇饮解决外出/日常/应急——两款产品互补`,
- `<strong>测试指标</strong>:上市 12 个月内监测"饮销量 / 米稀销量"是否 >0.15,避免自杀式蚕食`,
- ], { title: '落地决策 · 继承与自立的 6 条执行纪律', accent: BRAND.DEEP_AMBER, columns: 2 })}
- </div>
- </section>`;
- }
- module.exports = {
- 'mixi-1': renderSub2_1,
- 'mixi-2': renderSub2_2,
- 'mixi-3': renderSub2_3,
- 'mixi-4': renderSub2_4,
- };
|