Files
vela/slides/scene-09.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

81 lines
2.3 KiB
JavaScript

// scene-09.js — Section Divider 03 (Content Factory)
const pptxgen = require("pptxgenjs");
const slideConfig = { type: 'divider', index: 9 };
function createSlide(pres, theme) {
const slide = pres.addSlide();
// Full-bleed image
slide.addImage({
path: "./imgs/content-studio_001.jpg",
x: 0, y: 0, w: 10, h: 5.625
});
// Dark overlay
slide.addShape(pres.shapes.RECTANGLE, {
x: 0, y: 0, w: 10, h: 5.625,
fill: { color: "0a0a0a", transparency: 45 },
line: { color: "0a0a0a", transparency: 45 }
});
// Left gold vertical bar
slide.addShape(pres.shapes.RECTANGLE, {
x: 0.55, y: 0.7, w: 0.07, h: 4.2,
fill: { color: theme.accent },
line: { color: theme.accent }
});
// "03" large number
slide.addText("03", {
x: 0.85, y: 0.65, w: 2, h: 1.3,
fontSize: 80, bold: true, color: theme.accent,
fontFace: "Arial", valign: "middle"
});
// "第三幕"
slide.addText("第三幕", {
x: 0.85, y: 2.05, w: 7, h: 0.75,
fontSize: 48, bold: true, color: "FFFFFF",
fontFace: "Microsoft YaHei", valign: "middle"
});
// "内容工厂,全天候不停歇"
slide.addText("内容工厂,全天候不停歇", {
x: 0.85, y: 2.8, w: 8, h: 0.75,
fontSize: 40, bold: true, color: theme.accent,
fontFace: "Microsoft YaHei", valign: "middle"
});
// Subtitle
slide.addText("每天 6-8 条朋友圈,招商视频,培训材料——多智能体协同完成", {
x: 0.85, y: 3.68, w: 8, h: 0.55,
fontSize: 16, color: "AAAAAA",
fontFace: "Microsoft YaHei", valign: "middle"
});
// Page badge (blue)
slide.addShape(pres.shapes.ROUNDED_RECTANGLE, {
x: 9.3, y: 5.1, w: 0.4, h: 0.4,
fill: { color: theme.secondary },
line: { color: theme.secondary },
rectRadius: 0.06
});
slide.addText("9", {
x: 9.3, y: 5.1, w: 0.4, h: 0.4,
fontSize: 11, bold: true, color: "FFFFFF",
align: "center", valign: "middle",
fontFace: "Arial"
});
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-09-preview.pptx" });
}
module.exports = { createSlide, slideConfig };