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>
173 lines
6.1 KiB
JavaScript
173 lines
6.1 KiB
JavaScript
// scene-04.js — Onboarding Automation
|
||
const pptxgen = require("pptxgenjs");
|
||
const slideConfig = { type: 'content', index: 4 };
|
||
|
||
function createSlide(pres, theme) {
|
||
const slide = pres.addSlide();
|
||
|
||
slide.background = { color: theme.bg };
|
||
|
||
// Section label "场景一" gold pill
|
||
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
|
||
x: 0.6, y: 0.28, w: 1.1, h: 0.32,
|
||
fill: { color: theme.accent },
|
||
line: { color: theme.accent },
|
||
rectRadius: 0.5
|
||
});
|
||
slide.addText("场景一", {
|
||
x: 0.6, y: 0.28, w: 1.1, h: 0.32,
|
||
fontSize: 11, bold: true, color: theme.primary,
|
||
fontFace: "Microsoft YaHei", align: "center", valign: "middle"
|
||
});
|
||
|
||
// Title
|
||
slide.addText("签约当天:系统自动完成 7 步入驻流程", {
|
||
x: 0.6, y: 0.73, w: 8.8, h: 0.5,
|
||
fontSize: 22, bold: true, color: theme.primary,
|
||
fontFace: "Microsoft YaHei", align: "left", valign: "middle"
|
||
});
|
||
|
||
// Gold accent line
|
||
slide.addShape(pres.shapes.RECTANGLE, {
|
||
x: 0.6, y: 1.28, w: 8.8, h: 0.04,
|
||
fill: { color: theme.accent },
|
||
line: { color: theme.accent }
|
||
});
|
||
|
||
// ── Step 1 ──────────────────────────────────────────────
|
||
slide.addShape(pres.shapes.OVAL, {
|
||
x: 0.6, y: 1.45, w: 0.42, h: 0.42,
|
||
fill: { color: theme.secondary },
|
||
line: { color: theme.secondary }
|
||
});
|
||
slide.addText("1", {
|
||
x: 0.6, y: 1.45, w: 0.42, h: 0.42,
|
||
fontSize: 12, bold: true, color: "FFFFFF",
|
||
fontFace: "Arial", align: "center", valign: "middle"
|
||
});
|
||
slide.addText("企业微信群自动创建", {
|
||
x: 1.15, y: 1.45, w: 3.3, h: 0.38,
|
||
fontSize: 13, bold: true, color: theme.primary,
|
||
fontFace: "Microsoft YaHei", align: "left", valign: "middle"
|
||
});
|
||
slide.addText("群名按规范自动生成:新雨池+省市区+老板名+专营门店指导群", {
|
||
x: 1.15, y: 1.83, w: 3.3, h: 0.38,
|
||
fontSize: 10, color: "555555",
|
||
fontFace: "Microsoft YaHei", align: "left", valign: "top"
|
||
});
|
||
|
||
// Connector 1→2
|
||
slide.addShape(pres.shapes.RECTANGLE, {
|
||
x: 0.80, y: 1.87, w: 0.02, h: 0.43,
|
||
fill: { color: "CCCCCC" },
|
||
line: { color: "CCCCCC" }
|
||
});
|
||
|
||
// ── Step 2 ──────────────────────────────────────────────
|
||
slide.addShape(pres.shapes.OVAL, {
|
||
x: 0.6, y: 2.35, w: 0.42, h: 0.42,
|
||
fill: { color: theme.accent },
|
||
line: { color: theme.accent }
|
||
});
|
||
slide.addText("2", {
|
||
x: 0.6, y: 2.35, w: 0.42, h: 0.42,
|
||
fontSize: 12, bold: true, color: "FFFFFF",
|
||
fontFace: "Arial", align: "center", valign: "middle"
|
||
});
|
||
slide.addText("标准欢迎话术自动发出", {
|
||
x: 1.15, y: 2.35, w: 3.3, h: 0.38,
|
||
fontSize: 13, bold: true, color: theme.primary,
|
||
fontFace: "Microsoft YaHei", align: "left", valign: "middle"
|
||
});
|
||
slide.addText("10条品牌介绍、订货系统注册引导、置顶群操作提示,逐步推送", {
|
||
x: 1.15, y: 2.73, w: 3.3, h: 0.38,
|
||
fontSize: 10, color: "555555",
|
||
fontFace: "Microsoft YaHei", align: "left", valign: "top"
|
||
});
|
||
|
||
// Connector 2→3
|
||
slide.addShape(pres.shapes.RECTANGLE, {
|
||
x: 0.80, y: 2.77, w: 0.02, h: 0.38,
|
||
fill: { color: "CCCCCC" },
|
||
line: { color: "CCCCCC" }
|
||
});
|
||
|
||
// ── Step 3 ──────────────────────────────────────────────
|
||
slide.addShape(pres.shapes.OVAL, {
|
||
x: 0.6, y: 3.2, w: 0.42, h: 0.42,
|
||
fill: { color: theme.secondary },
|
||
line: { color: theme.secondary }
|
||
});
|
||
slide.addText("3", {
|
||
x: 0.6, y: 3.2, w: 0.42, h: 0.42,
|
||
fontSize: 12, bold: true, color: "FFFFFF",
|
||
fontFace: "Arial", align: "center", valign: "middle"
|
||
});
|
||
slide.addText("6份培训资料按序发送", {
|
||
x: 1.15, y: 3.2, w: 3.3, h: 0.38,
|
||
fontSize: 13, bold: true, color: theme.primary,
|
||
fontFace: "Microsoft YaHei", align: "left", valign: "middle"
|
||
});
|
||
slide.addText("一期课程资料、皮肤专业知识、产品功能搭配、服务流程指引", {
|
||
x: 1.15, y: 3.58, w: 3.3, h: 0.38,
|
||
fontSize: 10, color: "555555",
|
||
fontFace: "Microsoft YaHei", align: "left", valign: "top"
|
||
});
|
||
|
||
// Connector 3→4
|
||
slide.addShape(pres.shapes.RECTANGLE, {
|
||
x: 0.80, y: 3.62, w: 0.02, h: 0.38,
|
||
fill: { color: "CCCCCC" },
|
||
line: { color: "CCCCCC" }
|
||
});
|
||
|
||
// ── Step 4 ──────────────────────────────────────────────
|
||
slide.addShape(pres.shapes.OVAL, {
|
||
x: 0.6, y: 4.05, w: 0.42, h: 0.42,
|
||
fill: { color: "4CAF50" },
|
||
line: { color: "4CAF50" }
|
||
});
|
||
slide.addText("4", {
|
||
x: 0.6, y: 4.05, w: 0.42, h: 0.42,
|
||
fontSize: 12, bold: true, color: "FFFFFF",
|
||
fontFace: "Arial", align: "center", valign: "middle"
|
||
});
|
||
slide.addText("品牌老师收到入驻完成通知", {
|
||
x: 1.15, y: 4.05, w: 3.3, h: 0.38,
|
||
fontSize: 13, bold: true, color: theme.primary,
|
||
fontFace: "Microsoft YaHei", align: "left", valign: "middle"
|
||
});
|
||
slide.addText("无需手动跟进,系统完成后推送摘要到工作台", {
|
||
x: 1.15, y: 4.43, w: 3.3, h: 0.38,
|
||
fontSize: 10, color: "555555",
|
||
fontFace: "Microsoft YaHei", align: "left", valign: "top"
|
||
});
|
||
|
||
// Right image panel
|
||
slide.addImage({ path: "./imgs/franchise-welcome_001.jpg", x: 5.1, y: 1.4, w: 4.6, h: 3.8 });
|
||
|
||
// Page badge — gold
|
||
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("4", {
|
||
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-04-preview.pptx" });
|
||
}
|
||
module.exports = { createSlide, slideConfig };
|