// scene-02.js — Stakes Slide (Pain Points) const pptxgen = require("pptxgenjs"); const slideConfig = { type: 'content', index: 2 }; function createSlide(pres, theme) { const slide = pres.addSlide(); slide.background = { color: theme.bg }; // Section title slide.addText("50页运营手册,靠人工执行的代价", { x: 0.6, y: 0.3, w: 8.5, h: 0.55, fontSize: 24, bold: true, color: theme.primary, fontFace: "Microsoft YaHei", align: "left", valign: "middle" }); // Gold accent line below title slide.addShape(pres.shapes.RECTANGLE, { x: 0.6, y: 0.92, w: 8.8, h: 0.04, fill: { color: theme.accent }, line: { color: theme.accent } }); // Big "50" slide.addText("50", { x: 0.6, y: 1.15, w: 2.5, h: 2.2, fontSize: 96, bold: true, color: theme.primary, fontFace: "Arial", align: "left", valign: "middle" }); // Label below "50" slide.addText("页运营规范手册", { x: 0.6, y: 3.2, w: 2.5, h: 0.4, fontSize: 14, bold: true, color: theme.secondary, fontFace: "Microsoft YaHei", align: "left", valign: "middle" }); // ── Card 1 ── slide.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 3.4, y: 1.1, w: 5.9, h: 1.15, fill: { color: "FFF3CD" }, line: { color: "D4AF37", pt: 1.5 }, rectRadius: 0.12 }); slide.addText("01", { x: 3.6, y: 1.2, w: 0.5, h: 0.35, fontSize: 18, bold: true, color: theme.accent, fontFace: "Arial", align: "left", valign: "middle" }); slide.addText("每条话术靠手动执行", { x: 4.15, y: 1.15, w: 4.9, h: 0.38, fontSize: 14, bold: true, color: theme.primary, fontFace: "Microsoft YaHei", align: "left", valign: "middle" }); slide.addText("30个加盟商,每个阶段的跟进话术、资料推送、产品指导全需手动完成", { x: 3.6, y: 1.57, w: 5.5, h: 0.55, fontSize: 11, color: "555555", fontFace: "Microsoft YaHei", align: "left", valign: "top" }); // ── Card 2 ── slide.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 3.4, y: 2.35, w: 5.9, h: 1.15, fill: { color: "E8F0FE" }, line: { color: "0070F3", pt: 1.5 }, rectRadius: 0.12 }); slide.addText("02", { x: 3.6, y: 2.45, w: 0.5, h: 0.35, fontSize: 18, bold: true, color: theme.secondary, fontFace: "Arial", align: "left", valign: "middle" }); slide.addText("阶段回访全凭记忆与表格", { x: 4.15, y: 2.40, w: 4.9, h: 0.38, fontSize: 14, bold: true, color: theme.primary, fontFace: "Microsoft YaHei", align: "left", valign: "middle" }); slide.addText("哪个加盟商进入了第几阶段、什么时候该做回访、谁的培训进度落后,全靠品牌部老师自己盯", { x: 3.6, y: 2.82, w: 5.5, h: 0.55, fontSize: 11, color: "555555", fontFace: "Microsoft YaHei", align: "left", valign: "top" }); // ── Card 3 ── slide.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 3.4, y: 3.58, w: 5.9, h: 1.0, fill: { color: "F0F0F0" }, line: { color: "888888", pt: 1.5 }, rectRadius: 0.12 }); slide.addText("03", { x: 3.6, y: 3.68, w: 0.5, h: 0.35, fontSize: 18, bold: true, color: "888888", fontFace: "Arial", align: "left", valign: "middle" }); slide.addText("内容产出消耗大量精力", { x: 4.15, y: 3.63, w: 4.9, h: 0.38, fontSize: 14, bold: true, color: theme.primary, fontFace: "Microsoft YaHei", align: "left", valign: "middle" }); slide.addText("每天 6-8 条朋友圈,招商图文,抖音脚本,纯靠人写,品牌部老师成了内容打工人", { x: 3.6, y: 4.05, w: 5.5, h: 0.45, fontSize: 11, color: "555555", fontFace: "Microsoft YaHei", align: "left", valign: "top" }); // Page badge slide.addShape(pres.shapes.ROUNDED_RECTANGLE, { x: 9.3, y: 5.1, w: 0.4, h: 0.4, fill: { color: theme.accent }, line: { color: theme.accent }, rectRadius: 0.2 }); slide.addText("2", { x: 9.3, y: 5.1, w: 0.4, h: 0.4, fontSize: 11, bold: true, color: "FFFFFF", fontFace: "Arial", align: "center", valign: "middle" }); return slide; } if (require.main === module) { const pres = new pptxgen(); pres.layout = 'LAYOUT_16x9'; const theme = { primary: "0a0a0a", secondary: "0070F3", accent: "D4AF37", light: "f5f5f5", bg: "ffffff" }; createSlide(pres, theme); pres.writeFile({ fileName: "scene-02-preview.pptx" }); } module.exports = { createSlide, slideConfig };