烘焙排班主管:周排班表生成工具——技能标签加可用时间进,排班草稿和冲突标红一起出
请为我编写一个单文件 HTML 的烘焙门店周排班工具,浏览器直接打开
就能用,不联网、不装任何依赖、数据只存本地。把它做成一个排班
主管的草稿板,不是自动排班机。
需要录入的数据:
1. 员工名册:姓名、技能标签(多选:开炉/裱花/收银/理货)、
认证等级(独立操作/协助)、每周工时上限
2. 可用时间:每个员工本周哪些时段不可用(按天 + 时段勾选),
支持整段不可用和部分时段不可用
3. 时段需求:每个营业时段需要的总人数,以及必备技能
(该时段至少一名带此技能的独立操作级员工在场)
核心功能:
- 生成周排班草稿:人名 × 时段的表格,点击格子即可排入/移除/
换人,手动可改一切——工具出草稿,人做决定
- 冲突标红,四类,图例说明:
a 技能断档:该时段有必备技能但无独立操作级员工覆盖
b 超工时:某人本周排入小时数超过其上限(格子边角标数字)
c 撞可用时间:排进了该员工标记不可用的时段
d 班次间隔不足:某人闭店班与次日开炉班的间隔小于【间隔下限】
小时
- 只标红,不自动消解冲突——不允许「一键修复」按钮:排班的每个
权衡都应该由人做完,工具的职责是让人看不见的冲突看得见
- 每人周工时合计栏,随表格实时更新;周工时接近上限(距上限
【余量警示】小时以内)的用黄色提示,超了的红色
数据与导出:
- localStorage 保存,刷新不丢;提供「清空本周」和「复制为下周
模板」两个动作
- 一键复制为纯文本周表(给员工群发用,格式对齐,冲突不导出——
发出去的表是决定,不是讨论稿)
界面约束:
- 单屏放下,字号适合排班主管在手机上看
- 所有交互不弹窗、不跳页,行内完成
为什么这样写
「草稿板而不是自动排班机」是整个工具的定位:排班是技能结构、人情、法定边界和个人生活的混合权衡,全自动排班表看似省事,实际把排班主管变成和一个黑箱扯皮的人。工具出草稿、人点格子,每一步改动都是显式决定——冲突出了问题能追溯到是谁在什么时候改的,责任链清晰。
四类冲突标红里,「技能断档」和「班次间隔不足」是烘焙店特有的:前者是上一条审计器里「人头够但班开不了」的实时版;后者是烘焙早班的隐藏雷——开炉班凌晨到岗,前一天闭店班晚上十点走,同一个人连着排两个班,表上看是两个不同的格子,现实中是同一个员工二十小时没睡。间隔下限做成变量,因为各店班次结构不同,写死一个数反而没人信。
不做「一键修复」是刻意的设计克制:自动修复会同时动好几个人的班,每个动作都合理,合起来可能把某个员工的休息日拆碎——而这种碎裂只有人看得见。冲突标红把问题变成显眼的方块,决策留给人,这个分工才是工具和主管之间正确的责任边界。
发群导出「冲突不导出」也出于同一逻辑:发到员工群里的表是最终决定,红标是排班过程中的内部讨论材料。把讨论稿和决定混在一起发出去,员工看到的不是排班,是自己的休息日被公开讨论。
变量
| 变量 | 说明 |
|---|---|
| 班次间隔下限 | 闭店班到次日开炉班的最小间隔小时数——防「两个格子一个人连轴」 |
| 工时余量警示 | 距周工时上限还差几小时开始黄标——留出应对临时调班的缓冲 |
| 时段划分 | 工具按店内的营业时段结构建表(开炉准备/出炉早高峰/午后/晚市/闭店),建表时给出 |