员工排班表生成器
触发词
排班表、班次安排、员工排班、排班网格、值班表
适用场景
- 门店/客服一周排班
- 早中晚班可视化
- 临时调班记录
不适用场景(边界)
- 需要自动排班算法/冲突检测(本产出是手动填的表格)
- 需要对接考勤系统
工作流(输入 → 产出)
- 确认员工名单与排班周期(天/周)
- 生成自包含单文件 HTML 网格(可编辑单元格+班次配色+打印)
- 自检零外链/移动端可横屏看
- 交付并说明存档方式
HTML 产出规范(强制)
- 自包含单文件:所有 CSS 写在
<style>、所有 JS 写在<script>,零外部 CDN / 零外链字体 / 零外链脚本,双击即开。 - 多端可开:Windows/Mac/iOS Safari/安卓 Chrome 直接打开;移动端响应式(
@media已内置)。 - 本地持久化:需保存的数据用
localStorage(键名带skill_z-shift-schedule-html前缀),刷新不丢;不依赖任何后端。 - 可打印:含
@media print隐藏按钮、保留内容,便于导出 PDF / 纸质。 - 公网策略(A 分层):默认只产出自包含单文件(已多端可用);仅当用户明确说"要链接 / 发公网"时,才调用
本地HTML公网发布器(z-html-public-deploy)部署出 URL——不得擅自公开。
输出模板(直接生成的 HTML 骨架,按需填充)
<!doctype html><html lang="zh"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>排班表</title><style>
:root{--p:#2563eb;--p2:#1e40af;--bg:#f7f8fa;--card:#fff;--t:#1f2937;--m:#6b7280;--ok:#16a34a;--w:#d97706;--b:#e5e7eb;}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'PingFang SC','Microsoft YaHei',sans-serif;background:var(--bg);color:var(--t);line-height:1.6;padding:16px}
.wrap{max-width:880px;margin:0 auto;background:var(--card);border-radius:14px;padding:22px;box-shadow:0 4px 20px rgba(0,0,0,.06)}
h1{font-size:22px;margin-bottom:6px}
h2{font-size:17px;margin:18px 0 8px;color:var(--p2)}
p.lead{color:var(--m);margin-bottom:14px}
label{display:block;font-size:14px;margin:10px 0 4px;font-weight:600}
input,select,textarea{width:100%;padding:10px;border:1px solid var(--b);border-radius:8px;font-size:14px;font-family:inherit;background:#fff}
textarea{min-height:80px;resize:vertical}
button{background:var(--p);color:#fff;border:0;border-radius:8px;padding:10px 18px;font-size:14px;cursor:pointer;margin:8px 6px 0 0}
button.sec{background:#fff;color:var(--p);border:1px solid var(--p)}
button:hover{opacity:.92}
.row{display:flex;gap:10px;flex-wrap:wrap}
.row>div{flex:1;min-width:160px}
.card{border:1px solid var(--b);border-radius:10px;padding:12px;margin:8px 0;background:#fff}
.grid{display:grid;gap:8px}
table{width:100%;border-collapse:collapse;margin:10px 0;font-size:13px}
th,td{border:1px solid var(--b);padding:8px;text-align:left}
th{background:#eef2ff}
.tag{display:inline-block;background:#eef2ff;color:var(--p2);border-radius:6px;padding:2px 8px;font-size:12px;margin:2px}
.note{background:#fffbeb;border:1px solid #fde68a;color:#92400e;padding:10px;border-radius:8px;font-size:13px;margin:10px 0}
ul{margin:6px 0 6px 18px}
@media(max-width:560px){.wrap{padding:14px}body{padding:8px}}
@media print{body{background:#fff}.wrap{box-shadow:none;max-width:100%}button{display:none}}
td input{width:100%;border:0;background:transparent}.s-A{background:#dcfce7}.s-B{background:#fef9c3}.s-C{background:#fee2e2}@media print{td input{color:#000}}</style></head><body><div class="wrap"><h1>员工排班表</h1><p class="lead">点击单元格填写班次(早/中/晚),可打印。</p><div id="board"></div><button onclick="window.print()">打印</button><button class="sec" onclick="save()">存本地</button></div><script>var EMP=['张三','李四','王五'];var DAYS=['周一','周二','周三','周四','周五','周六','周日'];var key='skill_z_shift_schedule_html';function render(){var h='<table><tr><th>员工</th>'+DAYS.map(d=>'<th>'+d+'</th>').join('')+'</tr>';EMP.forEach((e,i)=>{h+='<tr><td>'+e+'</td>'+DAYS.map((d,j)=>'<td><input data-i='+i+'-'+j+'></td>').join('')+'</tr>'});h+='</table>';document.getElementById('board').innerHTML=h;var saved=JSON.parse(localStorage.getItem(key)||'null');if(saved)EMP.forEach((e,i)=>DAYS.forEach((d,j)=>{var el=document.querySelector('[data-i="'+i+'-'+j+'"]');if(el)el.value=saved[i][j]}));}function save(){var d=EMP.map((e,i)=>DAYS.map((x,j)=>document.querySelector('[data-i="'+i+'-'+j+'"]').value));localStorage.setItem(key,JSON.stringify(d));}render();</script></body></html>
使用示例
输入:给5个客服排一周早中晚班,能打印出来贴墙上
产出:生成 shift.html,5行×7列网格,填班次自动配色,一键打印
红线(不可违反)
- 禁止外部依赖
- 禁止编造员工/班次数据
- 打印必须保留内容隐藏按钮
与其他技能区分
区别于「日程排期(D2)」——本技能是“人力排班网格”,按员工×日期;D2 是按时间轴的团队日程。
大白话介绍
排班不用 Excel 来回发,这网页打开就能填班次、早中晚自动上色,打印贴墙或发群里都行。