airlabs-manage/AirLabs Project PRD.md
seaislee1209 dc42306c24
All checks were successful
Build and Deploy Backend / build-and-deploy (push) Successful in 1m22s
Build and Deploy Web / build-and-deploy (push) Successful in 55s
feat: V2.1 三阶段损耗前端增强 + 路由修复 + 演示数据重写
- 仪表盘双色进度条(超100%蓝红分段)、工时损耗展示、chart tooltip增强
- 修复 Submissions.vue 延期原因字段始终显示的Bug
- 修复 SPA catch-all 路由拦截 API 请求(去尾部斜杠)
- seed_demo.py 重写:5项目/4类型/32里程碑/124提交,真实时间线
- 三阶段损耗计算(前期工时/制作秒数/后期工时)
- ContentType 扩展为11种,里程碑增强(预估天数/开始日期/超期检测)
- 更新 PRD 和项目总结文档

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 18:32:07 +08:00

22 KiB
Raw Blame History

内容组 · 项目制周期 / 成本 / 产出管理系统

AirLabs · Project

V1 产品需求文档PRD


1. 产品背景与使用场景

本系统服务于一家以 AI 动画 / 视觉内容为核心产出的内容团队(团队规模 30 人以内)。

团队真实工作方式

  • 团队以项目制运作
  • 项目类型包括:
    • 原创动画项目(季播 / 单季)
    • 客户项目TVC / 定制广告 / 内容委托)
  • 每个项目在开始时即可明确:
    • 单集成片时长
    • 集数
    • 最终目标总时长
  • 制作过程中:
    • 大量使用 AI 工具(动画、图像、视频)
    • 单日可能产出大量动画片段
    • 最终在剪辑软件中拼接为完整成片
  • 项目过程中普遍存在:
    • 测试 / 试错
    • 重做
    • 内部制作 + 外包混合

内容组阶段分工

内容组按制作阶段分为三个小组,各组产出物与计量方式不同:

阶段组 主要产出物 能否用秒数衡量
前期组 剧本、策划方案、角色/场景设定图
制作组(中期) 动画片段、部分图片
后期组 剪辑成片、补拍修改镜头≤10% 部分可以

2. 当前管理问题

现有日报 / 表格方式无法解决以下问题:

  • 一个项目到底投入了多少成本
  • 实际产出是否匹配项目目标
  • 测试与损耗占比情况
  • 项目是否超期
  • 项目结束后是否盈利

3. 产品目标

构建一个:

以项目为核心,
以内容提交为最小记录单位,
自动汇总产出、进度、成本与损耗,
支持项目完成后统一结算的内部系统。


4. 使用范围V1

覆盖范围

  • 内容组
  • 内容类项目
  • 动画 / 视觉内容生产
  • PC 端 Web 应用预留响应式结构V2 适配移动端)

不包含

  • 产品研发周期管理
  • 精细工时系统
  • 人事绩效考核
  • 审批 / 验收流程(保持提交轻量化)
  • 移动端专属适配V2

5. 核心设计原则

  1. 项目是最高层级单位
  2. 内容提交是真实发生的工作记录
  3. 员工只填"发生了什么",计算交给系统
  4. 提交过程尽量简单,不给制作人员增加负担
  5. 项目完成前不展示财务结果
  6. 项目完成后统一结算

6. 核心对象与逻辑结构


6.1 项目Project

项目在创建时即明确目标,用于后续一切对照与计算。

项目字段:

  • 项目名称
  • 项目类型
    • 客户正式项目(已签约,有合同金额)
    • 客户测试项目(为甲方做测试/提案,未签约,无回款)
    • 内部原创项目(自主立项的内容作品)
    • 内部测试项目(技术测试、风格探索等)
  • 项目状态
    • 制作中
    • 已完成(结算)
    • 废弃(中途停止,全部产出记为损耗)
  • 项目负责人
  • 项目阶段结构
    • 前期 / 制作 / 后期
  • 项目目标产出
    • 单集正片时长(分钟)
    • 集数
    • 系统自动计算目标总时长 = 单集时长 × 集数(换算为秒)
  • 项目预估完成时间(日期)
    • 由管理层基于前期测试后填写
  • 客户回款金额(仅客户正式项目)
    • 项目创建时即填写
    • 其他类型项目此字段不显示
  • 项目创建日期(系统自动记录)

6.2 用户User

  • 姓名
  • 所属团队(内容组)
  • 所属阶段组
    • 前期 / 制作 / 后期
    • 用于后台按组筛选和统计
    • 不影响成本分摊逻辑(分摊由提交内容自动决定)
  • 角色权限
    • 成员 / 组长 / 主管 / Owner
  • 月度人力成本(工资)
  • 日成本(系统自动计算)
    • 日成本 = 月薪 ÷ 22 个工作日

6.3 内容提交Submission【系统核心】

一条内容提交 = 一次真实发生的内容交付或试错

设计原则:成员只需如实填写"做了什么、产出多少",系统自动完成分类与计算。
MVP 阶段不设审批流程,提交即生效。

提交字段:

  • 提交人(自动关联当前用户)
  • 所属项目(下拉选择当前参与的项目)
  • 项目阶段
    • 前期 / 制作 / 后期
  • 工作类型
    • 制作 / 测试 / 方案
  • 内容制作类型(按阶段分组,共 11 种)
    • 前期:策划案 / 剧本 / 分镜 / 人设图 / 场景图
    • 制作:动画制作
    • 后期:配音 / 音效 / 修补镜头 / 剪辑
    • 其他
    • 选择内容类型时系统自动设置对应的项目阶段
  • 产出时长输入
    • 分钟(可选)
    • 秒(可选)
    • 系统自动换算为总秒数
    • 若无产出可填 0
  • 投入时长(可选)
    • 单位:小时
    • 非必填,鼓励填写
    • 用于后续效率分析
  • 提交对象
    • 组长 / 制片 / 内部 / 外部
  • 制作描述(简要说明)
  • 提交日期(默认当天,可修改为过去日期补填)
  • 里程碑关联(系统自动)
    • 根据内容类型自动匹配同名里程碑
    • 如"策划案"提交自动关联"策划案"里程碑
  • 延期原因
    • 当关联的里程碑已超期时,必须填写延期原因
    • 用于后续 AI 分析和管理复盘

6.4 项目里程碑ProjectMilestone

每个项目创建时自动生成一套默认里程碑,对应各阶段的工作环节。

里程碑字段:

  • 所属项目
  • 名称(如:策划案、剧本、分镜、配音等)
  • 所属阶段(前期 / 后期)
  • 是否完成(勾选)
  • 完成日期(系统自动记录)
  • 预估工作日(管理员填写)
  • 开始日期(管理员填写)
  • 实际工作日(系统自动计算 = 开始日期到完成日期的工作日数,排除周末)
  • 是否超期(计算值 = 实际工作日 > 预估工作日)

默认里程碑:

阶段 里程碑
前期 策划案、剧本、分镜、人设图、场景图
后期 配音、音效、修补镜头、剪辑、杂项

制作阶段不使用里程碑,以秒数进度为度量。

操作:

  • 管理员可添加/删除里程碑
  • 管理员可设置预估工作日和开始日期
  • 勾选完成后系统记录完成日期

7. 成本结构设计


7.1 人力成本(自动计算)

基础规则

  • 日成本 = 月薪 ÷ 22
  • 项目人力成本 = 参与该项目的所有人员日成本按分摊规则累计

分摊核心规则

系统根据提交的产出秒数自动判定分摊方式,成员无需额外操作。

规则一:有产出秒数 → 按秒数比例分摊
适用于:制作组动画产出、后期组补拍镜头等有秒数的提交

示例:
小王(制作组)日成本 909 元,某天提交情况:

  • A 项目:产出 60 秒
  • B 项目:产出 30 秒

分摊结果:

  • A 项目承担909 × (60/90) = 606 元
  • B 项目承担909 × (30/90) = 303 元

规则二:无产出秒数(秒数为 0 → 按提交条数比例分摊
适用于:前期组策划/剧本/设定、后期组剪辑等无秒数产出的提交

示例:
小李(前期组)日成本 682 元,某天提交情况:

  • A 项目:提交 2 条(剧本 + 角色设定)
  • B 项目:提交 1 条(策划方案)

分摊结果:

  • A 项目承担682 × (2/3) = 455 元
  • B 项目承担682 × (1/3) = 227 元

规则三:混合情况(同一天既有有秒数的提交,又有无秒数的提交)

  • 有秒数的提交按秒数参与分摊
  • 无秒数的提交按 1 条 = 该日平均每秒对应的成本折算
  • 简化处理:全部按提交条数比例分摊

其他规则:

  • 若某天仅为一个项目提交 → 全部日成本归该项目
  • 管理员可在后台手动修改任意一天的分摊结果

各阶段组成本分摊方式汇总

阶段组 典型提交 产出秒数 分摊方式
前期组 剧本、策划、设定图 0 按提交条数比例
制作组 动画片段 按产出秒数比例
后期组 — 剪辑 剪辑成片 0 按提交条数比例
后期组 — 补拍 修改镜头≤10% 按产出秒数比例

7.2 AI 工具成本(订阅类,可扩展)

设计要求

  • 后台支持自定义添加 AI 工具
  • 工具种类可随时扩展
  • 由主管或组长录入,每月录入一次或每次购买时录入

字段:

  • 工具名称(自定义)
  • 订阅周期(月 / 年)
  • 费用金额
  • 录入日期
  • 录入人
  • 成本归属方式
    • 指定项目100% 归属某项目)
    • 内容组整体(按当月各项目产出秒数比例自动分摊)
    • 手动分摊比例(自定义各项目占比)

7.3 外包成本(项目级)

字段:

  • 所属项目
  • 外包类型
    • 动画 / 剪辑 / 整集
  • 外包范围
    • 第 XY 集
  • 外包金额
  • 录入人
  • 录入日期

7.4 内制 + 外包混合项目处理逻辑

  • 项目目标仍按全集数计算
  • 外包部分:
    • 直接计入外包成本
    • 不产生内部内容提交
  • 内制部分:
    • 通过内容提交产生动画时长
    • 计入人力成本

8. 损耗与亏损(核心概念区分)


8.0 概念定义

损耗Waste亏损Loss 是两个独立指标,必须区分。

概念 定义 性质 何时产生
损耗 生产过程中的浪费(测试试错 + 超产废片) 生产效率指标 制作过程中持续产生,盈利项目也有
亏损 项目总成本超过回款金额 财务结果指标 仅客户正式项目结算后才计算

关系:损耗大 → 成本上升 → 可能导致亏损。但盈利的项目也会有损耗。


8.1 三阶段损耗计算体系

不同阶段的工作性质不同,采用不同的损耗衡量方式:

阶段 计算方式 损耗指标 度量单位
前期 工时制 里程碑超期工时 小时(h)
制作 秒数制 测试损耗 + 超产损耗 秒(s)
后期 工时制 里程碑超期工时 小时(h)

前期损耗(工时制)

前期工作(策划案、剧本、分镜、人设图、场景图)无法用秒数衡量,改为按里程碑工期计算:

  • 遍历前期里程碑,对有 预估工作日 且已完成的里程碑
  • 实际工作日 = 完成日期 开始日期 的工作日数(排除周末)
  • 超出天数 = max(0, 实际工作日 预估工作日)
  • 损耗工时 = 超出天数 × 8 小时
  • 未完成但已超期的里程碑也计入(用当前日期代替完成日期)

制作损耗(秒数制,保持现有逻辑)

  • 测试损耗 = 工作类型为"测试"且项目阶段为"制作"的提交总秒数
  • 制作产出 = 项目阶段为"制作"的非测试总秒数 + 内容类型为"修补镜头"的总秒数
  • 超产损耗 = max(0, 制作产出 目标秒数)
  • 制作总损耗 = 测试损耗 + 超产损耗
  • 秒数损耗率 = 制作总损耗 ÷ 目标秒数 × 100%

后期损耗(工时制)

后期里程碑中:

  • 剪辑等有预估工期的里程碑:与前期同理,按工时计算超期损耗
  • 修补镜头:秒数已计入制作损耗(与目标对比)
  • 配音 / 音效:外包或 AI 生成,不计损耗

项目总损耗

秒数类总损耗 = 测试损耗 + 超产损耗 工时类总损耗 = 前期超期工时 + 后期超期工时 秒数损耗率 = 秒数类总损耗 ÷ 目标秒数 × 100%

注意:损耗仅统计生产层面的浪费,不含 AI 工具成本

示例: 项目目标13 集 × 5 分钟 = 3,900 秒 前期:策划案预估 5 天 / 实际 8 天 → 超 3 天 = 24h 损耗 制作:测试 500 秒 + 制作产出 4,800 秒 → 超产 900 秒 → 秒数损耗 1,400 秒 后期:剪辑预估 3 天 / 实际 3 天 → 无超期 秒数损耗率1,400 ÷ 3,900 = 35.9% 工时损耗24h


8.2 亏损的计算(仅客户正式项目)

亏损 = 项目总成本 回款金额(仅当总成本 > 回款时)

  • 仅客户正式项目有回款,因此仅客户正式项目计算盈亏
  • 原创项目:只看成本和损耗,不算盈亏(未来回款未知)
  • 客户测试项目 / 内部测试项目:无回款,全部成本视为经营投入

8.3 各项目类型的损耗与亏损适用性

项目类型 计算损耗 计算盈亏 说明
客户正式项目 损耗看效率,盈亏看财务结果
客户测试项目 无回款,损耗 = 全部产出(本身就是试错)
内部原创项目 只看成本和损耗,未来回款未知
内部测试项目 无回款,损耗 = 全部产出

8.4 团队效率追踪V1 粗暴方案)

核心问题:同样的工作量分下去,谁的废片率高?

V1 不做逐条通过率标记(太复杂),采用人均基准对比法

计算逻辑

  • 人均基准 = 项目目标总秒数 ÷ 参与制作的人数
  • 超出基准 = 个人提交总秒数 人均基准
  • 超出比例 = 超出基准 ÷ 人均基准 × 100%
  • 超出多的人 → 产出的废片多 → 效率相对低

示例

项目目标 3,900 秒4 人参与制作:

成员 提交总秒数 人均基准 超出基准 超出比例
小王 1,300 975 +325 +33%
小李 1,100 975 +125 +13%
小张 950 975 25 3%
小赵 850 975 125 13%
合计 4,200 3,900 +300

此方案基于"工作量基本均分"的前提,无需额外标记,纯靠提交数据自动计算。


8.5 各阶段组损耗说明

阶段组 损耗方式 说明
前期组 工时制 按里程碑预估 vs 实际天数,超期部分 × 8h 计为损耗
制作组 秒数制 核心损耗来源:测试损耗 + 超出目标秒数的超产损耗
后期组 — 剪辑 工时制 按里程碑预估 vs 实际天数
后期组 — 补拍 秒数制 补拍秒数计入制作损耗(与目标对比)
后期组 — 配音/音效 外包或 AI 生成,不计损耗

9. 项目进度与时间管理


9.1 进度计算逻辑

  • 完成百分比 = 当前累计提交秒数(有秒数的提交)÷ 项目目标总秒数 × 100%
  • 仅统计有产出秒数的提交(制作组 + 后期补拍)
  • 前期组和后期剪辑的工作不影响进度百分比(但其成本计入项目总成本)
  • 进度上限不封顶(可超过 100%,超出部分即为损耗)

说明:前期全部完成但制作未开始时,进度仍为 0%。
这是合理的——进度条反映的是"内容产出进度",不是"项目整体工作量进度"。


9.2 进度条可视化

  • 显示项目进度条
  • 预估完成时间作为基准
  • 当前时间位置实时标注

颜色规则

  • 进度 ≤100%:蓝色进度条
  • 进度 >100%双色进度条 — 蓝色表示目标内占比,红色表示超出占比(如 258% 时蓝色占 38.8%,红色占 61.2%
  • 百分比数字超过 100% 时变为红色

9.3 预估 vs 实际完成

  • 项目完成后记录:
    • 实际完成日期
    • 与预估完成日期的偏差(天)

10. 项目完成与结算机制

规则

  • 项目是否完成:
    • 仅由 Owner 或指定高权限角色手动确认
  • 系统可提示但不自动结算:
    • 已达到目标产出
    • 已超过预估完成时间
  • 在手动确认前:
    • 项目始终处于制作阶段
    • 不触发任何结算逻辑

11. 项目结算(仅项目完成后)

结算内容(仅 Owner 可见)

所有项目类型均展示:

  • 项目总人力成本
  • 项目 AI 工具成本
  • 项目外包成本
  • 项目总成本 = 人力 + AI 工具 + 外包
  • 项目总损耗(秒数 + 损耗率)
  • 团队效率排行(人均基准对比)

仅客户正式项目额外展示:

  • 项目回款金额(创建时已填写)
  • 项目盈亏 = 回款金额 项目总成本
  • 盈利 → 绿色标注
  • 亏损 → 红色标注

其他项目类型:

  • 客户测试项目:展示总成本 + 损耗,无盈亏
  • 内部原创项目:展示总成本 + 损耗,无盈亏
  • 内部测试项目:展示总成本 + 损耗,无盈亏

项目进行中不展示任何盈利或亏损信息。


12. 仪表盘Dashboard

全局总览Owner 可见)

提供公司级一目了然的运营视图:

项目概览

  • 当前进行中项目数量(按类型分类统计)
  • 各项目进度条一览
  • 超期项目高亮提醒

成本视角

  • 本月总人力成本
  • 本月 AI 工具总成本
  • 各项目成本排行
  • 按项目类型汇总成本分布

产出与效率视角

  • 本月总产出秒数
  • 各项目产出对比
  • 团队人均日产出秒数

损耗视角

  • 总损耗率 + 总工时损耗卡片
  • 各项目进度条下方显示损耗率与工时损耗
  • 各项目损耗率排行柱状图tooltip 显示秒数损耗 + 工时损耗)
  • 损耗不含工具成本,仅反映生产效率

盈亏视角(仅客户正式项目)

  • 已结算客户项目盈亏列表
  • 客户项目盈亏汇总
  • 亏损项目高亮标红

13. 权限与历史记录

权限层级

角色 可见范围 可操作
Owner 全量数据 + 结算 + 仪表盘 一切操作、确认结算、修改历史
主管 / 制片 所有项目进度与产出数据 录入 AI 工具成本、外包成本
组长 所负责项目 + 组内成员提交 查看组员提交、录入成本
成员 本人提交记录 + 所属项目公开信息 提交内容、查看项目进度

历史修改规则

  • 普通成员不可修改已提交的历史记录
  • 高权限角色(组长及以上)修改时:
    • 必须填写修改原因
    • 系统自动生成版本记录
    • Owner 接收修改通知
  • 页面默认显示最新版本
  • 支持查看历史版本对比

14. 技术架构V1

技术栈

层级 技术选型 说明
前端 Vue 3 + Element Plus + Vite 成熟的后台管理 UI 组件库
后端 Python FastAPI 高性能 API 框架
数据库 MySQL 8.0(阿里云 RDS 生产环境;本地开发可回退 SQLite
图表 ECharts 仪表盘可视化
认证 JWT Token 登录鉴权与权限控制
AI 模型 豆包(火山引擎 ARK 报告摘要生成
消息推送 飞书自建应用 报告卡片消息
定时任务 APScheduler 日报/周报/月报定时触发

部署方式

  • CI/CDGitea Actions 自动构建,推代码即部署
  • 镜像Docker 构建,推送到华为云 SWR
  • 运行K3s 集群,通过 Ingress 暴露服务
  • 前端:静态构建后由后端统一托管(/ 路径返回 index.html
  • 数据库:阿里云 RDS MySQL通过环境变量配置连接

后续扩展路径

  • V3移动端响应式适配
  • V3数据导出Excel / PDF
  • V3AI 智能问答助手(自然语言查询系统数据)

15. MVP 开发优先级

优先级 模块 内容
P0 登录与权限 4 级角色登录、鉴权、权限控制
P0 项目管理 项目创建 / 编辑 / 状态管理 / 目标设定
P0 内容提交 成员提交表单(核心功能)
P0 项目详情 进度条、提交记录列表、损耗统计
P1 成本管理 人力成本自动计算、AI 工具成本录入、外包成本录入
P1 仪表盘 全局总览:项目进度、成本、损耗、收益
P1 项目结算 Owner 手动结算、盈亏计算
P2 历史修改记录 版本追溯、修改原因、通知
P2 用户管理 新增 / 编辑成员、薪资设定

16. 系统最终产出价值

通过该系统,管理层可以清晰看到:

  • 项目是否超期
  • 项目节奏是否失控
  • 各项目实际成本与损耗
  • 内容组真实生产能力
  • 客户项目是否盈利
  • 项目结束后是否值得继续投入

17. AI 能力V2

17.1 概述

V2 接入 AI 大模型能力,为管理层提供自动化报告和智能分析:

  • AI 模型豆包Doubao— 字节跳动大语言模型,火山引擎 ARK 平台
  • 报告推送:飞书自建应用,私聊推送给指定管理人员
  • 定时调度APScheduler 集成

17.2 自动报告

报告类型 推送时间 数据范围
日报 每天 20:00 当天数据
周报 每周五 20:00 本周一至周五
月报 每月1日 10:00 上月完整数据

报告内容由系统汇总数据 + AI 生成自然语言摘要与建议。

17.3 项目风险预警

基于规则引擎自动识别风险项目,在仪表盘展示预警:

风险维度 判定规则
超期风险 距截止 ≤7天且进度 <80%
进度风险 实际进度严重落后于时间线
损耗风险 损耗率 >50%
产出停滞 近7天无提交

17.4 后续迭代V3

  • AI 智能问答助手(自然语言查询系统数据)
  • 按权限分级推送(不同角色看到不同内容)
  • 团队效率 AI 深度分析

18. 飞书集成

接入方式

  • 飞书自建应用(非 Webhook 群机器人)
  • 私聊发送消息给指定管理人员

所需权限

  • im:message:send_as_bot — 以应用身份发消息
  • contact:user.id:readonly — 通过手机号获取用户 ID

消息格式

  • 飞书交互式卡片Interactive Card
  • 内容为 markdown 格式

最终定义

这是一个让内容生产过程保持自由, 但让项目进度、成本与结果无法模糊的系统。