| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- // ==============================================================================
- // 肝纯片 v2 · Ch4 场景×机会 · 四大独占场景
- // ==============================================================================
- // 4.1 场景#1 · 应酬解酒 × 液体应急
- // 4.2 场景#2 · 脂肪肝调理 × 日常养护
- // 4.3 场景#3 · 熬夜前后 × 便携快取
- // 4.4 场景#4 · 送长辈 × 孝心礼盒
- // ==============================================================================
- const LA = require('./liver-analyze.js');
- const C = require('./liver-components.js');
- const { BRAND, esc, renderSectionHead, renderVocCard, renderVocGrid,
- renderStatStrip, renderInsightHero, renderFindingCard, renderDecisionList, LIVER_CONTEXT_RE } = C;
- // 场景渲染通用模板
- function renderSceneSlide({ chapter: c, subIdx, sub, slideNum, slideTotal, data, meta, scene }) {
- const items = data?.items || [];
- // 双重过滤:场景 regex + 护肝上下文
- const matched = items.filter(it => {
- const txt = it.content || '';
- return scene.re.test(txt) && LIVER_CONTEXT_RE.test(txt);
- });
- const evidence = LA.getEvidence(matched, { top: 4, seed: 70 + subIdx, minChars: 15, contentMatch: scene.re });
- 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} · ${scene.eyebrow}`,
- title: sub,
- subtitle: scene.subtitle,
- color: c.color,
- })}
- ${renderStatStrip([
- { num: matched.length, label: '场景相关 VOC', color: scene.color },
- { num: scene.tamLabel, label: 'TAM 规模', color: BRAND.TECH_BLUE },
- { num: scene.score + '分', label: '场景适配度', color: scene.score >= 85 ? BRAND.JIANG_GREEN : BRAND.WARM_ORANGE },
- ])}
- <div style="display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-top:24px;">
- <!-- 场景画像 -->
- <div style="padding:20px; background:${scene.color}08; border:1px solid ${scene.color}33; border-radius:var(--radius-md);">
- <div class="text-mono text-xs" style="color:${scene.color}; font-weight:700; margin-bottom:12px;">${scene.icon} 场景画像</div>
- <div style="color:var(--text-1); font-size:0.86rem; line-height:1.7;">
- <strong>人群</strong>:${esc(scene.persona)}<br/>
- <strong>触发时刻</strong>:${esc(scene.trigger)}<br/>
- <strong>核心需求</strong>:${esc(scene.need)}<br/>
- <strong>产品形态</strong>:${esc(scene.productForm)}<br/>
- <strong>定价区间</strong>:${esc(scene.priceRange)}
- </div>
- </div>
- <!-- 话术 -->
- <div style="padding:20px; background:${BRAND.JIANG_GREEN}08; border:1px solid ${BRAND.JIANG_GREEN}33; border-radius:var(--radius-md);">
- <div class="text-mono text-xs" style="color:${BRAND.JIANG_GREEN}; font-weight:700; margin-bottom:12px;">💬 场景话术</div>
- <div style="color:var(--text-1); font-size:0.86rem; line-height:1.7;">
- <strong>药店</strong>:${esc(scene.talkPharm)}<br/>
- <strong>电商</strong>:${esc(scene.talkEcom)}<br/>
- <strong>种草</strong>:${esc(scene.talkSeed)}
- </div>
- </div>
- </div>
- ${evidence.length > 0 ? `
- <div style="margin-top:24px;">
- <div class="text-mono text-xs" style="color:${scene.color}; letter-spacing:0.15em; margin-bottom:14px; font-weight:700;">场景 VOC 原声</div>
- ${renderVocGrid(evidence, { columns: 2, accent: scene.color, compact: true })}
- </div>` : ''}
- ${renderFindingCard({
- icon: scene.icon,
- title: scene.finding,
- body: scene.findingBody,
- accent: scene.color,
- })}
- </div>
- </section>`;
- }
- // ============================================================
- // 4.1 应酬解酒
- // ============================================================
- function renderSub1(ctx) {
- return renderSceneSlide({ ...ctx, scene: {
- eyebrow: 'SCENE #1 · DRINKING',
- icon: '🍺',
- color: BRAND.WINE_RED,
- subtitle: '应酬解酒是声量最大的场景——但海王金樽已经把"解酒"做成了负面标签。',
- re: /应酬.*肝|酒局.*肝|喝酒.*肝|解酒|宿醉|酒后.*护|酒精肝|酒.*护肝|hangover.*liver/i,
- tamLabel: '~20亿',
- score: 90,
- persona: '30-45 岁男性·商务应酬/朋友聚餐·月均 2-4 次酒局',
- trigger: '酒局前/酒局后·宿醉第二天·体检发现酒精肝',
- need: '快速解酒·减轻宿醉·长期护肝',
- productForm: '液体/口服液(应急)+ 片剂(日常)',
- priceRange: '液体 ¥15-30/支 · 片剂 ¥128-198/盒',
- talkPharm: '"应酬多?这是藤茶做的天然护肝,比解酒糖靠谱"',
- talkEcom: '"千年藤茶·DMY 98%·酒局前后各一片"',
- talkSeed: '"老公应酬多,给他备了江中肝纯片,藤茶做的天然不伤胃"',
- finding: '应酬解酒场景:最肥但最危险',
- findingBody: `声量最大(抖音"醋真的解酒"2038 赞 = 土办法反向需求),但海王金樽已把"解酒"做成<strong style="color:${BRAND.CORAL};">智商税标签</strong>。肝纯片策略:<strong style="color:${BRAND.TENGCHA_GREEN};">不说"解酒",说"护肝"</strong>——从"解酒应急"升级到"应酬人群长期护肝"。`,
- }});
- }
- // ============================================================
- // 4.2 脂肪肝调理
- // ============================================================
- function renderSub2(ctx) {
- return renderSceneSlide({ ...ctx, scene: {
- eyebrow: 'SCENE #2 · FATTY LIVER',
- icon: '📊',
- color: BRAND.WARM_ORANGE,
- subtitle: '脂肪肝人群 2 亿+,体检后焦虑是最强购买触发器。',
- re: /脂肪肝|转氨酶|肝功|ALT|AST|谷丙|体检.*肝|B超.*肝/i,
- tamLabel: '~15亿',
- score: 88,
- persona: '25-50 岁·体检异常人群·BMI偏高·久坐办公',
- trigger: '体检报告"脂肪肝"/"转氨酶偏高"·医生嘱咐"注意肝"',
- need: '降转氨酶·逆转脂肪肝·日常养护·安全长期吃',
- productForm: '片剂(日常)· 28天/盒疗程装',
- priceRange: '¥128-168/盒(28天量)',
- talkPharm: '"体检转氨酶高?藤茶天然护肝,长期吃也安心"',
- talkEcom: '"脂肪肝不用慌·千年藤茶·日常养护从今天开始"',
- talkSeed: '"体检查出脂肪肝,医生说注意肝,同事推荐了这个藤茶护肝片"',
- finding: '脂肪肝场景:最稳定的日常养护市场',
- findingBody: `中国脂肪肝患者 <strong>2 亿+</strong>,年轻化趋势明显。这是一个<strong>长期复购场景</strong>——不像解酒是偶发需求。肝纯片在这个场景的核心卖点 = <strong style="color:${BRAND.TENGCHA_GREEN};">"天然安全·可以长期吃"</strong>(vs 易善复"不能长期吃"的焦虑)。`,
- }});
- }
- // ============================================================
- // 4.3 熬夜前后
- // ============================================================
- function renderSub3(ctx) {
- return renderSceneSlide({ ...ctx, scene: {
- eyebrow: 'SCENE #3 · LATE NIGHT',
- icon: '🌙',
- color: BRAND.PURPLE,
- subtitle: '打工人/学生的熬夜护肝焦虑——年轻化的增量市场。',
- re: /熬夜.*肝|通宵.*肝|打工人.*肝|加班.*肝|肝.*熬夜|护肝.*熬夜/i,
- tamLabel: '~8亿',
- score: 82,
- persona: '22-35 岁·打工人/互联网/学生·经常加班/通宵',
- trigger: '通宵加班后·看到"熬夜伤肝"科普·感觉身体发出信号',
- need: '便携随身·快速见效·年轻化不像药',
- productForm: '小包装便携片剂 · 办公桌/背包常备',
- priceRange: '¥68-98/小盒(14天量)',
- talkPharm: '"经常熬夜?备一盒藤茶护肝片,天然温和"',
- talkEcom: '"打工人护肝神器·千年藤茶·办公桌常备"',
- talkSeed: '"互联网人必备·熬夜后来一片·千年藤茶天然护肝"',
- finding: '熬夜场景:年轻化入口·品牌年轻化的关键',
- findingBody: `熬夜人群是<strong>最年轻的护肝用户</strong>(22-35 岁),也是<strong>社交媒体声量最高</strong>的群体。这个场景的价值不只是销量——更是<strong style="color:${BRAND.PURPLE};">品牌年轻化的入口</strong>。通过"打工人护肝"话题切入,建立年轻用户心智,再向"脂肪肝/送礼"场景延伸。`,
- }});
- }
- // ============================================================
- // 4.4 送长辈
- // ============================================================
- function renderSub4(ctx) {
- return renderSceneSlide({ ...ctx, scene: {
- eyebrow: 'SCENE #4 · GIFT',
- icon: '🎁',
- color: BRAND.GOLD,
- subtitle: '护肝品类的"送礼"场景几乎空白——对标东阿阿胶"送气血"的成功。',
- re: /送.*护肝|护肝.*礼|送.*肝片|礼盒.*肝|孝心.*肝|买给.*爸.*肝|送爸.*肝|护肝.*送|肝.*礼盒/i,
- tamLabel: '~10亿',
- score: 85,
- persona: '25-40 岁·有孝心的子女·节日/体检后触发',
- trigger: '父亲节/中秋/春节·父母体检报告·"不知道送什么"焦虑',
- need: '包装好看·有面子·品牌可信·安全天然',
- productForm: '高端礼盒(双瓶/四瓶装)· 新中式设计',
- priceRange: '¥298-898(礼盒装)',
- talkPharm: '"给爸妈的护肝礼·千年藤茶·天然安心"',
- talkEcom: '"父亲节送什么?千年藤茶护肝礼盒·有面子有心意"',
- talkSeed: '"今年父亲节送了江中肝纯片礼盒,爸爸应酬多,藤茶天然的放心"',
- finding: '送礼场景:最高客单价·品类蓝海',
- findingBody: `护肝品类的送礼场景<strong>几乎空白</strong>——片仔癀太贵(¥590/粒),Swisse 太"外国",葵花太"药"。<strong style="color:${BRAND.GOLD};">"千年藤茶·天然护肝"的新中式礼盒</strong>可以成为"<strong>送肝 = 送江中</strong>"的品类代名词,对标东阿阿胶"送气血"的成功路径。`,
- }});
- }
- module.exports = { renderSub1, renderSub2, renderSub3, renderSub4 };
|