14-slide PPT showcasing real operational scenarios derived from 新雨池 franchisee management manuals (售后指导流程手册 + 美容师服务流程): Scenarios covered: - 第一幕: 新加盟商入驻自动化 (7-step auto onboarding) - 场景二: 培训进度智能监控 + 预警触发 - 第二幕: 微信皮肤照片 → AI 分析 → 话术建议 - 场景四: 第一天接待话术库实时提示 - 第三幕: 多智能体内容工厂全流程 - 第四幕: 系统主动预警阶段卡顿 Assets: - 5 new MiniMax images (franchise-welcome, skin-ai, content-studio, training-digital, smart-alert) - 14 scene slide modules (scene-01~14.js) - compile-scenes.js build script - output: vela-scenarios.pptx Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
131 lines
4.3 KiB
JavaScript
131 lines
4.3 KiB
JavaScript
// 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 };
|