liver-ch6-competitor.js 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  1. // ==============================================================================
  2. // 江中肝纯片 · Ch6 竞品三轴图谱(3 子章)
  3. // ==============================================================================
  4. // 6.1 三轴定位图谱·保健品 / OTC 药 / 食品
  5. // 6.2 无人地带坐标·肝纯片独占位
  6. // 6.3 6 竞品精对标·VOC 差异化 MOAT
  7. // ==============================================================================
  8. const LA = require('./liver-analyze.js');
  9. const C = require('./liver-components.js');
  10. const { BRAND, esc, fmtLikes } = C;
  11. // ==========================================================
  12. // 6.1 · 三轴定位图谱
  13. // ==========================================================
  14. function renderSub6_1(ctx) {
  15. const { chapter: c, subIdx, sub, slideNum, slideTotal } = ctx;
  16. const axes = [
  17. {
  18. name: '保健品轴', color: BRAND.PURPLE, icon: '💊',
  19. top: 'Swisse / 汤臣倍健 / 康恩贝',
  20. mid: '葵花护肝片(兼)/ 片仔癀(兼)',
  21. bottom: '自发食补 / 代茶饮',
  22. insight: '痛点:吸收差 / 同质化 / 剂量话术失信',
  23. },
  24. {
  25. name: 'OTC 药轴', color: BRAND.TECH_BLUE, icon: '💉',
  26. top: '易善复(处方) / 水飞蓟宾胶囊',
  27. mid: '护肝片(中成药) / 葵花护肝片',
  28. bottom: '复方甘草酸苷 / 五酯胶囊',
  29. insight: '痛点:医嘱门槛 / 副作用 / 不日常',
  30. },
  31. {
  32. name: '食品 / 茶饮轴', color: BRAND.TENGCHA_GREEN, icon: '🍵',
  33. top: '藤茶 / 莓茶 / 代用茶(张家界 GI)',
  34. mid: '蜂王浆 / 黄芪精 / 食补汤方',
  35. bottom: '普通茶水 / 温开水',
  36. insight: '痛点:不便携 / 不科学 / 无标准',
  37. },
  38. ];
  39. return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
  40. <div class="section-inner">
  41. ${C.renderSectionHead({
  42. eyebrow: `${c.num}.${subIdx} · 三轴图谱`,
  43. title: '<span style="color:' + BRAND.ROSE + ';">保健品 ↔ OTC 药 ↔ 食品</span> 三轴图谱',
  44. subtitle: '护肝赛道不是单一品类,是<strong>三个重叠的市场</strong>。每一轴都有玩家、都有痛点、都有用户——三轴交汇处就是肝纯片的<strong>独家地带</strong>。',
  45. color: BRAND.ROSE,
  46. })}
  47. <div class="grid" style="grid-template-columns:repeat(3, 1fr); gap:20px; margin-top:24px;">
  48. ${axes.map((a) => `
  49. <div style="padding:22px; background:var(--bg-1); border:1px solid var(--border); border-top:4px solid ${a.color}; border-radius:var(--radius-md);">
  50. <div style="display:flex; align-items:center; gap:10px; margin-bottom:16px;">
  51. <div style="font-size:1.8rem;">${a.icon}</div>
  52. <div>
  53. <div class="text-mono text-xs" style="color:${a.color}; letter-spacing:0.15em; font-weight:700;">AXIS</div>
  54. <div style="color:var(--text-1); font-weight:800; font-size:1.12rem;">${esc(a.name)}</div>
  55. </div>
  56. </div>
  57. <div style="display:flex; flex-direction:column; gap:10px; margin-bottom:16px;">
  58. <div style="padding:10px 12px; background:${a.color}14; border-radius:4px;">
  59. <div class="text-mono text-xs" style="color:${a.color}; font-weight:700; margin-bottom:2px;">TOP TIER</div>
  60. <div style="color:var(--text-1); font-size:0.84rem; line-height:1.5;">${a.top}</div>
  61. </div>
  62. <div style="padding:10px 12px; background:${a.color}0C; border-radius:4px;">
  63. <div class="text-mono text-xs" style="color:${a.color}; font-weight:700; margin-bottom:2px;">MID TIER</div>
  64. <div style="color:var(--text-2); font-size:0.84rem; line-height:1.5;">${a.mid}</div>
  65. </div>
  66. <div style="padding:10px 12px; background:${a.color}06; border-radius:4px;">
  67. <div class="text-mono text-xs" style="color:${a.color}; font-weight:700; margin-bottom:2px;">BOTTOM</div>
  68. <div style="color:var(--text-3); font-size:0.84rem; line-height:1.5;">${a.bottom}</div>
  69. </div>
  70. </div>
  71. <div style="padding:12px 14px; background:${BRAND.CORAL}0A; border-left:3px solid ${BRAND.CORAL}; border-radius:4px;">
  72. <div class="text-mono text-xs" style="color:${BRAND.CORAL}; letter-spacing:0.1em; margin-bottom:4px; font-weight:700;">PAIN POINT</div>
  73. <div style="color:var(--text-1); font-size:0.82rem; line-height:1.5;">${esc(a.insight)}</div>
  74. </div>
  75. </div>`).join('')}
  76. </div>
  77. <div class="fade-up" style="margin-top:28px;">
  78. ${C.renderInsightHero({
  79. eyebrow: 'THREE-AXIS OVERLAP · 三轴重叠',
  80. color: BRAND.ROSE,
  81. title: `<strong style="color:${BRAND.ROSE};">任何单一轴上都有老玩家</strong>。肝纯片要做的不是在保健品轴上跟 Swisse 拼、也不是在 OTC 轴上跟易善复拼——而是<strong style="color:${BRAND.JIANG_GREEN};">把三轴最有利的心智资产全部拉到一起</strong>:<br/>保健品的<em>便捷</em> + OTC 的<em>信任</em> + 食品的<em>日常</em>。`,
  82. subtitle: `下一节 6.2 将展示"三轴重叠点"的坐标——那就是肝纯片的<strong>独家地带</strong>。`,
  83. })}
  84. </div>
  85. ${C.renderDecisionList([
  86. `<strong>保健品轴战术</strong>:用 DMY 真差异化压 Swisse 同质化 + 价格便宜 20-30%`,
  87. `<strong>OTC 药轴战术</strong>:用"无医嘱自由购" 绕开易善复 + 强调 OTC 合规背书`,
  88. `<strong>食品轴战术</strong>:用张家界藤茶地理背书升级民间"野茶"认知`,
  89. `<strong>三轴共识</strong>:所有宣传都要同时踩稳三个脚 —— "像食物一样安全,像药一样有效,像进口一样体面"`,
  90. ], { title: '落地决策 · 三轴战术协同', accent: BRAND.ROSE, columns: 2 })}
  91. </div>
  92. </section>`;
  93. }
  94. // ==========================================================
  95. // 6.2 · 无人地带坐标
  96. // ==========================================================
  97. function renderSub6_2(ctx) {
  98. const { chapter: c, subIdx, sub, slideNum, slideTotal } = ctx;
  99. return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
  100. <div class="section-inner">
  101. ${C.renderSectionHead({
  102. eyebrow: `${c.num}.${subIdx} · 无人地带坐标`,
  103. title: '<span style="color:' + BRAND.JIANG_GREEN + ';">无人地带</span>:肝纯片的独家定位坐标',
  104. subtitle: '三轴 × 两维(功能 / 情感)= 六象限。5/6 象限都有强竞品盘踞,<strong>只剩一个象限没人占——那就是肝纯片的坐标</strong>。',
  105. color: BRAND.JIANG_GREEN,
  106. })}
  107. ${C.renderMatrix2x2({
  108. xLabel: '使用频次 × 场景门槛',
  109. yLabel: '专业感 vs 日常感',
  110. xLow: '应急(单次) · 高门槛',
  111. xHigh: '日常(长期) · 低门槛',
  112. yLow: '生活化(轻)',
  113. yHigh: '专业化(重)',
  114. accent: BRAND.JIANG_GREEN,
  115. quadrants: {
  116. q1: {
  117. title: '右上 · 专业 × 日常(有竞品)',
  118. color: BRAND.TECH_BLUE,
  119. items: [
  120. '<strong>易善复</strong>(磷脂胆碱·OTC)',
  121. '<strong>水飞蓟宾胶囊</strong>',
  122. '<strong>汤臣倍健</strong>(同质化)',
  123. ],
  124. note: '痛点:医嘱门槛 / 同质化',
  125. },
  126. q2: {
  127. title: '左上 · 专业 × 应急(有竞品)',
  128. color: BRAND.WINE_RED,
  129. items: [
  130. '<strong>护肝片</strong>(中成药)',
  131. '<strong>熊胆粉</strong>(稀缺中药)',
  132. '<strong>片仔癀</strong>(味苦)',
  133. ],
  134. note: '痛点:口感差 / 贵 / 不便携',
  135. },
  136. q3: {
  137. title: '左下 · 生活 × 应急(有竞品)',
  138. color: BRAND.WARM_ORANGE,
  139. items: [
  140. '<strong>解酒饮料</strong>(RU-21)',
  141. '<strong>海王金樽</strong>(硬广透支)',
  142. '<strong>民间土办法</strong>(醋/酸奶)',
  143. ],
  144. note: '痛点:硬广 / 无品牌 / 不信任',
  145. },
  146. q4: {
  147. title: '右下 · 生活 × 日常 <strong style="color:' + BRAND.JIANG_GREEN + ';">(✨ 无人地带)</strong>',
  148. color: BRAND.JIANG_GREEN,
  149. items: [
  150. '<strong style="color:' + BRAND.JIANG_GREEN + ';">✨ 肝纯片(独占位)</strong>',
  151. '(Swisse 部分覆盖但价贵)',
  152. '(张家界莓茶但无品牌)',
  153. ],
  154. note: '✅ 机会:真差异化 + 日常 + 亲民',
  155. },
  156. },
  157. })}
  158. <div class="fade-up" style="margin-top:28px;">
  159. <div style="padding:24px 28px; background:linear-gradient(135deg, ${BRAND.JIANG_GREEN}10, ${BRAND.TENGCHA_GREEN}06); border:2px solid ${BRAND.JIANG_GREEN}44; border-radius:var(--radius-lg);">
  160. <div class="text-mono text-xs" style="color:${BRAND.JIANG_GREEN}; letter-spacing:0.2em; margin-bottom:10px; font-weight:700;">🎯 POSITIONING STATEMENT · 定位宣言</div>
  161. <div style="font-size:1.2rem; line-height:1.8; color:var(--text-1); font-weight:600;">
  162. <strong style="color:${BRAND.JIANG_GREEN};">江中肝纯片</strong> 是为<br/>
  163. <em style="color:var(--text-2);">「有护肝需求但又不想当病人 / 想日常保养但不想吃进口贵货 / 有 OTC 信任但要便捷生活化」</em><br/>
  164. 的<strong style="color:${BRAND.TENGCHA_GREEN};">中国都市 25-45 岁中产群体</strong>准备的<br/>
  165. <strong style="color:${BRAND.LIVER_AMBER};">藤茶 DMY 日常护肝养饮片剂</strong>。<br/>
  166. <br/>
  167. 不同于<strong style="color:${BRAND.TECH_BLUE};">OTC 处方药</strong>需要医嘱,<br/>
  168. 不同于<strong style="color:${BRAND.PURPLE};">进口保健品</strong>的吸收差和价格贵,<br/>
  169. 不同于<strong style="color:${BRAND.WINE_RED};">解酒专项饮料</strong>的硬广透支,<br/>
  170. 肝纯片提供<strong style="color:${BRAND.JIANG_GREEN};">"中国千年藤茶 × OTC 国民品牌 × 日常便捷片剂"</strong>的三重复合心智。
  171. </div>
  172. </div>
  173. </div>
  174. ${C.renderDecisionList([
  175. `<strong>锁定象限 Q4</strong>:生活化 × 日常长期 × 真差异化 × 亲民价格`,
  176. `<strong>瓦解 Q1 易善复</strong>:无医嘱 + 价格便宜 + 东方文化感`,
  177. `<strong>瓦解 Q2 片仔癀</strong>:好吞服 + 现代包装 + 便携日常`,
  178. `<strong>瓦解 Q3 海王金樽</strong>:真体感 + 真场景 + 不硬广`,
  179. `<strong>瓦解 Q1 Swisse</strong>:东方草本 > 西方进口 + 价格便宜 20-30%`,
  180. `<strong>章节假设验证</strong>:H1 ✓ / H2 ✓ / H3 ✓ / H5 ✓`,
  181. ], { title: '落地决策 · 定位坐标及战术', accent: BRAND.JIANG_GREEN, columns: 2 })}
  182. </div>
  183. </section>`;
  184. }
  185. // ==========================================================
  186. // 6.3 · 6 竞品精对标 · VOC 差异化 MOAT
  187. // ==========================================================
  188. function renderSub6_3(ctx) {
  189. const { chapter: c, subIdx, sub, slideNum, slideTotal, data } = ctx;
  190. const items = data.items || [];
  191. // 每个竞品 1 条代表性 VOC + 1 条差异化 MOAT
  192. const sw = LA.getEvidence(items, { keyword: 'swisse护肝片', minChars: 18, top: 1, seed: 5 })[0];
  193. const ys = LA.getEvidence(items, { keyword: '易善复', minChars: 15, top: 1, seed: 9 })[0];
  194. const kh = LA.getEvidence(items, { keyword: '葵花护肝片', minChars: 15, top: 1, seed: 13 })[0];
  195. const pzh = LA.getEvidence(items, { keyword: '片仔癀护肝', minChars: 15, top: 1, seed: 17 })[0];
  196. const hw = LA.getEvidence(items, { keyword: '海王金樽',
  197. contentMatch: /广告|老哒|电解质|秘密/,
  198. minChars: 15, top: 1, seed: 21 })[0];
  199. const tc = LA.getEvidence(items, { keyword: '汤臣倍健护肝', minChars: 15, top: 1, seed: 25 })[0];
  200. const moatRows = [
  201. { name: 'Swisse 护肝片', axis: '保健品轴', color: BRAND.PURPLE,
  202. moat: '<strong>东方草本叙事</strong> > 西方进口神话 · <strong>价格便宜 20-30%</strong> · <strong>国人代谢适配</strong>',
  203. voc: sw },
  204. { name: '易善复', axis: 'OTC 药轴', color: BRAND.TECH_BLUE,
  205. moat: '<strong>OTC 免医嘱</strong> · <strong>日常长期服用</strong>安全 · 覆盖<strong>预防型</strong>(不必等异常)',
  206. voc: ys },
  207. { name: '葵花护肝片', axis: 'OTC 药轴', color: BRAND.SAGE,
  208. moat: '<strong>食品级安全</strong>消除"天天吃担忧" · <strong>现代包装</strong>摆脱药盒感 · <strong>场景化</strong>不止"肝损"',
  209. voc: kh },
  210. { name: '片仔癀 护肝', axis: 'OTC 药轴', color: BRAND.DEEP_AMBER,
  211. moat: '<strong>好吞服</strong>解决口感壁垒 · <strong>价格 40% 折扣</strong> · <strong>日常化</strong>不止稀缺品',
  212. voc: pzh },
  213. { name: '海王金樽', axis: '保健品 / 解酒', color: BRAND.WINE_RED,
  214. moat: '<strong>真 DMY 成分</strong>替代硬广 · <strong>XHS 种草</strong>替代 TVC · <strong>多场景</strong>不止解酒',
  215. voc: hw },
  216. { name: '汤臣倍健 护肝', axis: '保健品轴', color: BRAND.LIVER_AMBER,
  217. moat: '<strong>DMY 真差异化</strong>打破同质化 · <strong>张家界故事</strong>建讲故事资本 · <strong>细分场景</strong>(应酬/脂肪肝/熬夜/送长辈)',
  218. voc: tc },
  219. ];
  220. return `<section class="report-section" id="${c.key}-${subIdx}" data-tone="${c.tone}" data-slide-num="${slideNum}/${slideTotal}">
  221. <div class="section-inner">
  222. ${C.renderSectionHead({
  223. eyebrow: `${c.num}.${subIdx} · 6 竞品精对标`,
  224. title: '<span style="color:' + BRAND.ROSE + ';">VOC 差异化 MOAT</span>·每个竞品一条护城河',
  225. subtitle: '逐个竞品列出:<strong>(1) 代表性 VOC / (2) 肝纯片的差异化 MOAT</strong>——6 条护城河共同构成肝纯片的竞争壁垒。',
  226. color: BRAND.ROSE,
  227. })}
  228. <div class="grid" style="grid-template-columns:1fr; gap:16px; margin-top:20px;">
  229. ${moatRows.map((r) => `
  230. <div style="padding:18px 22px; background:var(--bg-1); border:1px solid var(--border); border-left:4px solid ${r.color}; border-radius:var(--radius-md);">
  231. <div style="display:grid; grid-template-columns:200px 1.3fr 1.3fr; gap:20px; align-items:center;">
  232. <div>
  233. <div class="text-mono text-xs" style="color:${r.color}; letter-spacing:0.15em; margin-bottom:4px; font-weight:700;">${esc(r.axis.toUpperCase())}</div>
  234. <div style="color:var(--text-1); font-weight:800; font-size:1.1rem;">${esc(r.name)}</div>
  235. </div>
  236. <div>
  237. <div class="text-mono text-xs" style="color:${BRAND.CORAL}; letter-spacing:0.1em; margin-bottom:6px; font-weight:700;">VOC 代表性声音</div>
  238. ${r.voc ? C.renderVocCard(r.voc, { accent: r.color, compact: true, maxChars: 140 }) : '<div style="color:var(--text-3); font-size:0.82rem; padding:10px; background:var(--bg-2); border-radius:4px;">— VOC 暂缺 —</div>'}
  239. </div>
  240. <div>
  241. <div class="text-mono text-xs" style="color:${BRAND.JIANG_GREEN}; letter-spacing:0.1em; margin-bottom:6px; font-weight:700;">肝纯片差异化 MOAT</div>
  242. <div style="padding:14px 16px; background:${BRAND.JIANG_GREEN}0A; border:1px solid ${BRAND.JIANG_GREEN}33; border-radius:4px; color:var(--text-1); font-size:0.88rem; line-height:1.72;">
  243. ${r.moat}
  244. </div>
  245. </div>
  246. </div>
  247. </div>`).join('')}
  248. </div>
  249. <div class="fade-up" style="margin-top:28px;">
  250. ${C.renderInsightHero({
  251. eyebrow: 'MOAT SUMMARY · 护城河总结',
  252. color: BRAND.JIANG_GREEN,
  253. title: `<strong style="color:${BRAND.JIANG_GREEN};">6 条 MOAT = 6 种替换场景</strong>。肝纯片不争单一赛道冠军,而是<strong>在每个赛道赢 10-15% 的替换份额</strong>——累计就是<strong>250 亿 × 10% = 25 亿</strong>的可达市场。`,
  254. subtitle: `关键是每条护城河都是<strong>真材实料</strong>(DMY 真成分 / 江中真品牌 / 张家界真原产地),而不是营销话术——这是肝纯片与海王金樽路径的根本区别。`,
  255. })}
  256. </div>
  257. ${C.renderDecisionList([
  258. `<strong>精准 MOAT 投放</strong>:6 条护城河 = 6 条内容 / KOL / 渠道的精准攻击路径`,
  259. `<strong>MOAT 优先级</strong>:Swisse + 易善复优先(市场份额最大)· 海王金樽次之(解酒场景)`,
  260. `<strong>避免对冲</strong>:不做全赛道正面对决,只在每个赛道抢"痛点替换"`,
  261. `<strong>章节假设验证</strong>:H5 ✓ 五大竞品心智地图清晰 / H2 ✓ 海王金樽警示成立`,
  262. ], { title: '落地决策 · MOAT 组合战术', accent: BRAND.ROSE, columns: 2 })}
  263. </div>
  264. </section>`;
  265. }
  266. module.exports = {
  267. 'competitor-1': renderSub6_1,
  268. 'competitor-2': renderSub6_2,
  269. 'competitor-3': renderSub6_3,
  270. };