Files
vela/slides/scene-02.js
秋芝2046 818798a2e4 feat: add Vela scenarios PPT based on reference docs
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>
2026-04-14 19:01:15 +08:00

131 lines
4.3 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// 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 };